CDM Readiness Assessment

Find out what your tags actually mean.

A fixed-scope sprint that maps your equipment tags to a canonical data model, names every unit conflict and sentinel value hiding in your historian, and hands you the schema your platform should have been built on.

One week·Fixed price·Measured, not promised

See the tiers What you get

Scope and price

Three sizes. Same deliverables.

Pick the tier that matches your fleet. Every tier ends with the same five deliverables, and you keep all five whatever the measurement says.

Starter
$5,000
  • 5 machines
  • 3 vendors
  • 1 week
Start Sprint →
Standard
$10,000
  • 20 machines
  • 5 vendors
  • 1 week
Start Sprint →
Full PilotCredited
$25,000
Start Sprint →

Full Pilot is credited in full against year one of a platform license.

“Supported equipment” means the vendor packs loaded by the production kernel and reported by its /health endpoint as vendor_packs and verticals at the time of the reference. It is a list of what the engine ships mappings for. It is not a coverage promise for any particular tag set.


What we commit to

Fixed price, fixed scope, and a measured number, not a number we promised you before we had seen your tags.

All five deliverables land whatever the measurement says. There is no coverage floor and no coverage-contingent fee, and the reason is the most useful thing we can tell you before you decide anything.


Why there is no floor

We already ran this measurement on ourselves.

In September 2026 we put 3,734 distinct tag names through this engine, taken verbatim out of Haas, FANUC, Siemens, MTConnect and OPC UA’s own published manuals, across twelve cohorts of which seven are shown below. Names only, with no values and no vendor hint beyond the family, which is exactly what a historian export gives you, and exactly what a coverage promise would have to be made against.

Haas MDC40.0% 12 of 30 names. Mill Operator’s Manual (NGC) 2022, §9.2.11, Machine Data Collection query labels.
FANUC FOCAS13.6% 17 of 125. Documented struct members in fwlib32.h.
MTConnect13.4% 29 of 216 observation types, Standard Part 2.0.
Haas macros7.1% 7 of 98 numbered system variables, same manual, §6.13.7.
OPC UA3.8% 9 of 237 nodes, OPC 40501-1 Machine Tool nodeset. With no OEM hint at all: zero at high confidence.
Siemens0.68% 12 of 1,774 system variables, SINUMERIK 840D sl / 828D Parameter Manual (LIS3, 03/2013).
Our own corpus100.0% 869 of 869 pack-native keys across Haas, FANUC and Siemens. This is the number a vendor quotes you when they have only ever tested themselves.

Those are two different languages, and that is the finding. The string SPINDEL appears zero times in Siemens’ 1,774-variable manual, and we resolve 29 spellings of SPINDEL_AUSLASTUNG. That tag never came from Siemens. It came from an integrator naming a screen.

Which is the thing worth paying to find out: the tag names in your historian were almost never written by the company that built the machine. They were written by whoever wired it up, in whatever language they think in, at 2am, years ago. So coverage is a property of your plant’s naming, not of our corpus. Anybody who quotes you a percentage before they have seen your tag list is quoting you their own dictionary.

Measuring yours is the work, and it is what you are buying. If the number comes back low, that is not a failed sprint: it is the first time anyone has told you, and the remediation plan in deliverable 05 is written against it.

Full per-cohort reports, including every abstention and why, are available on request before you buy.


Deliverables

Five documents. Yours to keep.

Every tier ends the same way: a written account of what your data says, what it hides, and what to do about it.

01

Coverage report

Every tag we saw, what it mapped to, at what confidence, and by which layer. The tags that did not map are listed too, because that list is the useful one.

02

Unit conflict map

Where the same measurement arrives in different units across your fleet. Fahrenheit stored as Celsius, inches as millimetres, kilowatts as watts. Each one named, with the machines it affects.

03

Sentinel exposure

The placeholder values your historian is treating as real readings. 65535, 9999, and the rest, with every field and machine currently carrying them into your averages.

04

Canonical schema

The field list your fleet actually needs, with types, units and physical bounds. Portable. It is yours whether or not you license anything.

05

Implementation plan

What to fix first, what it costs to leave alone, and how the mapping gets maintained once your tag set changes. Written for your engineers, not for a procurement deck.

 

Delivered as

Written documents plus the machine-readable schema. No dashboard to log into and no dependency on us to read your own results.


Questions

foundrynet@proton.me

Tell us your fleet size and which vendors you run. We will tell you which tier fits and what we expect your coverage number to be before you commit to anything.

Evaluate it yourself first: docker pull ghcr.io/foundrynet/forge-sandbox