The assurance record

Free forever

In short: the assurance record is the document the specification describes, attached to a result. It shows how the result was produced, so it can be checked now or in ten years.

The metadata that must accompany a result for it to be considered conformant: molecule type and marker, collection time and preservation, filter type, replicate structure, assay coverage, control results, thresholds applied, and pipeline and reference database versions. Planned: bait panel identity and version (hybridization capture).

STATUS
Draft
VERSION
0.1
UPDATED
September 2026
LICENSE
CC BY 4.0

Check a record against this specification → /specification/validator

Who supplies each field. Fields in sections 4.1 through 4.4 — sample, collection, preservation and laboratory — are declared by the submitting party at the point of upload. Fields in 4.5 through 4.9 — analysis, controls, thresholds, sensitivity and provenance — are either declared or generated by Common Measure during processing, and the specification states which for each field.

01 · SCOPE

What the record is, and is not

An assurance record describes one sample analyzed with one assay. It records what was done, what was controlled for, and which decisions were applied to turn sequence into a name. It does not contain the sequence data itself, and it does not contain an interpretation of what the result means.

It is not a quality mark. A conformant record can describe a badly collected sample held four hours before preservation with no field blank. What conformance guarantees is that a reader can see that, rather than having to ask.

Every field below exists because its absence makes a specific comparison impossible. Where we could not defend a field on that basis, we left it out.

02 · REQUIREMENT LEVELS

Two levels, and no SHOULD

The key words MUST, MUST NOT and MAY are used as defined in RFC 2119 and RFC 8174. SHOULD is not used. A field that a record ought to carry is either mandatory or it is advice, and advice is what produced the present situation.

Required

MUST

The field is present in every conformant record, carrying a value of the stated type. Nine fields sit here alone and admit no substitute: the two coordinates, collection time, assay type, marker, pipeline version, reference database version, record hash and specification version. A record without those describes nothing.

Required, or declared

MUST, or `not recorded`

The field is present in every conformant record, carrying either a value or the literal string `not recorded`. Sixteen fields sit here. Answering is mandatory; having the answer is not. A declared gap is conformant, appears in the completeness score, and tells a reader exactly what they cannot conclude.

Sixteen fields that were previously optional or conditional are now mandatory with a permitted declared unknown. Nothing has been made harder to supply. What has changed is that a reader can now tell the difference between a value that was measured, one that was not, and a record that never addressed the question at all.

Why we made this change →

03 · NORMATIVE REFERENCES

What this specification adopts rather than restates

Where a published standard already covers a step, we adopt it by reference. This specification covers only what no published standard currently covers.

ReferenceTitleHow it is used here
ISO 17805:2026Water quality — Environmental DNA sampling and preservation from waterAdopted by reference for collection and preservation from water. This specification does not restate it and does not compete with it.
ISO/IEC 17025:2017General requirements for the competence of testing and calibration laboratoriesReferenced for laboratory competence. Conformance to this specification is not a substitute for accreditation and does not imply it.
ISO 8601-1:2019Date and time representationsNormative for every timestamp. A time without a UTC offset is ambiguous and is rejected.
WGS 84 (EPSG:4326)World Geodetic System 1984Normative for coordinates. Decimal degrees, no other datum.
RFC 2119 / RFC 8174Key words for use in RFCs to indicate requirement levelsMUST, MUST NOT, SHOULD and MAY are used in this specification with the meanings given there.
JSON Schema draft 2020-12JSON Schema core and validation vocabulariesThe machine-readable form of this specification is expressed as a draft 2020-12 schema.

04 · FIELDS

The record, in nine groups

Field names are given exactly as they appear in a record. The machine-readable form is published at /schema/assurance-record-0.1.schema.json and is generated from the same source as this page, so the two cannot drift apart.

01Record identity

What the record is, which sample it describes, and who produced it. Without these four, a result cannot be traced to a physical object or to the party responsible for it.

FieldType or valuesRequirementSupplied byWhat it recordsWhy it matters
standardVersionstringrequiredSubmitterThe version of the Common Measure specification this record was produced under.Without it, a reader cannot tell which rules the record was written to satisfy.
sampleIdstringrequiredSubmitterIdentifier for the physical sample, unique within the submitting organization.Nothing in the record can be traced back to a physical sample without it.
siteIdstringrequiredSubmitterIdentifier for the location sampled, stable across visits.Repeat visits to the same place cannot be grouped without a stable site identifier.
laboratoryIdstringrequiredSubmitterIdentifier for the laboratory that processed the sample.Agreement between laboratories cannot be measured if the laboratory is not recorded.

02Location and access

Where the sample was taken, how precisely that is stated, and whether the location may be republished. Generalized coordinates are legitimate; undeclared generalization is not.

FieldType or valuesRequirementSupplied byWhat it recordsWhy it matters
decimalLatitudenumber (-90 to 90)requiredSubmitterLatitude of the collection point in decimal degrees, WGS 84.A result without a location cannot be compared with any other result.
decimalLongitudenumber (-180 to 180)requiredSubmitterLongitude of the collection point in decimal degrees, WGS 84.A result without a location cannot be compared with any other result.
coordinateUncertaintyMetersnumber (≥ 0)requiredor not recordedSubmitterRadius in meters within which the true collection point falls.A reader cannot tell whether the coordinates are exact or generalized.
coordinatePrecisionReducedbooleanrequiredSubmitterWhether the coordinates have been deliberately generalized before publication.Generalized coordinates read as exact ones unless the reduction is declared.
accessConstraintopen · restricted · embargoedrequiredSubmitterThe access condition attached to the record.A downstream publisher cannot honor a restriction that was never stated.
sensitivityReasonstringrequiredor not recordedSubmitterWhy access is constrained or coordinates were generalized.A restriction without a stated reason cannot be reviewed or lifted later.
depthMetersnumberrequiredor not recordedSubmitterDepth below the surface at which the sample was taken, in meters.Depth changes what is present, so samples at different depths are not interchangeable.

03Collection

When and how the sample was taken, from what substrate, and what was captured. Sampling and preservation from water are specified by ISO 17805:2026, which this specification adopts by reference; the fields here record what was done so that a reader can tell.

FieldType or valuesRequirementSupplied byWhat it recordsWhy it matters
collectionDateTimestring, ISO 8601requiredSubmitterDate and time of collection, ISO 8601 with a UTC offset.A timestamp without an offset is ambiguous and cannot be compared across sites.
collectionMethodstringrequiredSubmitterThe collection procedure used, named or referenced.Two samples taken different ways are not comparable unless both methods are stated.
substrateTypewater · sediment · soil · air · surface swab · otherrequiredSubmitterThe material sampled.Detection means something different in each substrate, so the substrate governs interpretation.
sampleVolumeLitersnumber (≥ 0)requiredor not recordedSubmitterVolume of water collected or filtered, in liters.Concentration cannot be derived without it.
sampleMassGramsnumber (≥ 0)requiredor not recordedSubmitterMass of sediment, soil or other solid substrate collected, in grams.Yield per unit mass cannot be compared between samples without it.
filtrationUsedbooleanrequiredSubmitterWhether the sample was filtered before preservation.Filtration determines what fraction of the material was retained for analysis.
filterPoreSizeMicronsnumber (≥ 0)requiredor not recordedSubmitterNominal pore size of the filter used, in microns.Pore size sets what is captured, so results from different pore sizes are not directly comparable.
filterMaterialstringrequiredor not recordedSubmitterThe filter membrane material.Membrane material affects capture and extraction yield.

04Preservation and transport

Environmental DNA degrades from the moment of collection. Two fields record the interval and the method, because a negative result from a sample preserved four hours late is not the same negative result.

FieldType or valuesRequirementSupplied byWhat it recordsWhy it matters
preservationMethodethanol · buffer · freezing · desiccation · none · otherrequiredSubmitterHow the sample was preserved after collection.Preservation determines how much of the material survives to be analyzed.
minutesToPreservationwhole numberrequiredor not recordedSubmitterElapsed minutes between collection and preservation.Elapsed time before preservation determines what survives to be analyzed, and any claim about how recently an organism was present depends on it.

05Replicate structure and field controls

Whether the sample stands alone or belongs to a group, and whether contamination during collection can be ruled out. A blank that was run but not reported tells a reader nothing.

FieldType or valuesRequirementSupplied byWhat it recordsWhy it matters
replicateTypenone · technical · field · temporalrequiredSubmitterThe kind of replication this sample belongs to.Replicates counted as independent samples overstate the evidence.
replicateGroupIdstringrequiredor not recordedSubmitterIdentifier shared by all members of a replicate group.Replicates cannot be grouped, and so cannot be treated as replicates, without it.
fieldBlankIncludedbooleanrequiredSubmitterWhether a field blank was carried and processed alongside the sample.Contamination during collection cannot be ruled out without a field blank.
fieldBlankResultclean · detection · not evaluatedrequiredor not recordedSubmitterThe outcome of the field blank.A blank that was run but not reported tells a reader nothing.

06Extraction

How DNA was recovered from the sample, and whether inhibition was checked. Inhibition produces false negatives that look identical to absence.

FieldType or valuesRequirementSupplied byWhat it recordsWhy it matters
extractionKitstringrequiredSubmitterThe extraction chemistry or kit used, named with version where applicable.Extraction yield differs by chemistry, so the kit is part of the method.
elutionVolumeMicrolitersnumber (≥ 0)requiredor not recordedSubmitterFinal elution volume of the extract, in microliters.Concentration figures cannot be reconciled between laboratories without it.
inhibitionTestedbooleanrequiredSubmitterWhether the extract was assessed for PCR inhibition.An inhibited reaction can look exactly like an absence.
inhibitionResultnone detected · inhibition detected · not evaluatedrequiredor not recordedSubmitterThe outcome of the inhibition assessment.A test that was run but not reported cannot be used by a reader.

07Assay and sequencing

What was looked for and with what. Two laboratories using different primer sets on the same water are not running the same test, and the record has to say so.

FieldType or valuesRequirementSupplied byWhat it recordsWhy it matters
assayTypemetabarcoding · qPCR · dPCR · targeted sequencing · otherrequiredSubmitterThe analytical approach applied to the extract.The assay determines which quality thresholds apply and how a detection should be read.
markerLocusstringrequiredSubmitterThe genetic marker or target locus.Different markers see different parts of the community.
primerSetstringrequiredSubmitterThe named primer set used, with the reference that defines it.Primer choice sets what can be detected at all.
sequencingPlatformstringrequiredor not recordedSubmitterThe sequencing instrument or platform used.Error profiles differ by platform and affect what passes a threshold.
technicalReplicateCountwhole numberrequiredSubmitterNumber of technical replicates run on the extract.A single replicate means amplification failure cannot be distinguished from absence.

08Laboratory controls and detection limits

The controls that were run and the limits that apply. A non-detection cannot be interpreted at all unless the limit of detection is stated.

FieldType or valuesRequirementSupplied byWhat it recordsWhy it matters
noTemplateControlResultclean · detection · not evaluatedrequiredSubmitterThe outcome of the no-template control.Laboratory contamination cannot be excluded without it.
positiveControlResultamplified · failed · not runrequiredSubmitterThe outcome of the positive control.A failed assay and a true absence look the same without a positive control.
limitOfDetectionnumber (≥ 0)requiredor not recordedSubmitterThe lowest quantity reliably detected by the assay, in copies per reaction.A non-detection cannot be interpreted without a limit of detection.
limitOfQuantitationnumber (≥ 0)requiredor not recordedSubmitterThe lowest quantity reliably quantified by the assay, in copies per reaction.Quantities reported below it cannot be relied upon.
minimumReadCountwhole numberrequiredor not recordedSubmitterMinimum read count required for a sequence to be reported as detected.Metabarcoding detections are not comparable unless the read threshold is stated.
minimumPositiveReplicateswhole numberrequiredor not recordedSubmitterNumber of positive replicates required to call a detection.A detection call rule that is not stated cannot be reproduced.

09Interpretation and record provenance

The reference database, thresholds and pipeline that turned sequence into a name, and the fixed point that lets a reader confirm the record has not changed since it was issued.

FieldType or valuesRequirementSupplied byWhat it recordsWhy it matters
referenceDatabasestringrequiredCommon MeasureThe reference database used to assign identity to sequences.The same sequence gets different names from different databases.
referenceDatabaseVersionstringrequiredCommon MeasureThe exact version or release date of the reference database used.Without the reference database version, this result cannot be reinterpreted when the database is updated, which means it cannot be compared with a result produced at a different time.
identityThresholdPercentnumber (0 to 100)requiredCommon MeasurePercent identity required for a sequence match to be accepted.The same data produces different species lists at different thresholds.
pipelineVersionstringrequiredCommon MeasureThe bioinformatics pipeline and version applied to the raw data.Pipeline version changes the output from identical input.
detectionThresholdstringrequiredEitherThe rule applied to call a detection, expressed reproducibly.Two laboratories applying different rules to the same data disagree for no biological reason.
recordCreatedDateTimestring, ISO 8601requiredCommon MeasureWhen this assurance record was created, ISO 8601 with a UTC offset.Revisions cannot be ordered without a creation time.
recordHashstringrequiredCommon MeasureHash of the record content, for tamper evidence.A record that can be altered silently cannot be audited.

05 · CONDITIONAL RULES

When a declared gap costs the reader something

Seven rules apply. They no longer decide whether a field appears. Every field appears. They mark the places where answering not recorded removes something specific from the record, given what the record already says about itself. The validator names the consequence in each case; conformance is unaffected.

  1. water-volume

    substrateType is water, which makes a declared gap in sampleVolumeLiters costly: concentration cannot be derived without it.

  2. replicate-group

    replicateType is not none, which makes a declared gap in replicateGroupId costly: replicates cannot be grouped without it.

  3. field-blank-result

    fieldBlankIncluded is true, which makes a declared gap in fieldBlankResult costly: a blank that was run but not reported tells a reader nothing.

  4. metabarcoding-reads

    assayType is metabarcoding, which makes a declared gap in minimumReadCount costly: detections are not comparable unless the read threshold is stated.

  5. pcr-replicates

    assayType is qPCR or dPCR, which makes a declared gap in minimumPositiveReplicates costly: a detection call rule that is not stated cannot be reproduced.

  6. filtration-fields

    filtrationUsed is true, which makes a declared gap in filterPoreSizeMicrons and filterMaterial costly: pore size and membrane material determine what was captured.

  7. sensitivity-reason

    Access is constrained or coordinates were generalized, which makes a declared gap in sensitivityReason costly: a restriction without a stated reason cannot be reviewed or lifted later.

06 · CONFORMANCE

What a record must satisfy to be conformant

  1. C01

    Every field is present and non-null

    All 47 fields appear in a conformant record. A field present with a null value, or absent altogether, is a failure. There is no partial conformance and no conformance score.

  2. C02

    A gap is declared, never left silent

    Sixteen fields accept the literal string `not recorded` in place of a value. The other nine do not. A record that says `not recorded` is conformant and is counted as incomplete, which is a different statement and a more useful one than saying nothing.

  3. C03

    Conditional rules govern interpretation, not conformance

    The seven rules no longer decide whether a field must appear — every field must. They mark where a declared gap costs the reader something specific, such as pore size once filtration is declared, and the validator says so.

  4. C04

    Every value is of the stated type and within the stated set or range

    Enumerated fields take one of the listed values. Where no listed value fits a substrate or method, use `other` and tell us what we are missing.

  5. C05

    Timestamps carry a UTC offset and coordinates are WGS 84 decimal degrees

    A local time without an offset cannot be compared across sites, and coordinates in another datum cannot be compared at all.

  6. C06

    Additional fields are permitted

    A record may carry fields beyond this specification without losing conformance. Nothing here is a ceiling.

  7. C07

    Conformance is a statement about the record, not about the result

    A conformant record can describe a poorly collected sample. What conformance guarantees is that a reader can see that for themselves.

Conformance is self-declared and independently checkable. Anyone can run the check themselves, on their own machine, free (at launch, with an email-verified account): the validator runs entirely in the browser and sends nothing anywhere.

07 · WORKED EXAMPLES

Three conformant records

Each of these validates cleanly against version 0.1. They are also published as a single file at /schema/assurance-record-0.1.example.json.

Freshwater, metabarcoding, water filtered on site

A river sample with a field blank, three technical replicates and a stated read threshold. This is the shape most metabarcoding work takes.

{
  "standardVersion": "0.1",
  "sampleId": "CM-FW-2026-0417-003",
  "siteId": "UPPER-IOWA-RM-14",
  "laboratoryId": "LAB-0042",
  "decimalLatitude": 43.3781,
  "decimalLongitude": -91.7942,
  "coordinateUncertaintyMeters": 10,
  "coordinatePrecisionReduced": false,
  "accessConstraint": "open",
  "sensitivityReason": "not recorded",
  "depthMeters": 0.3,
  "collectionDateTime": "2026-04-17T09:12:00-05:00",
  "collectionMethod": "Grab sample at 0.3 m, filtered on site",
  "substrateType": "water",
  "sampleVolumeLiters": 2,
  "sampleMassGrams": "not recorded",
  "filtrationUsed": true,
  "filterPoreSizeMicrons": 0.45,
  "filterMaterial": "Mixed cellulose ester",
  "preservationMethod": "buffer",
  "minutesToPreservation": 8,
  "replicateType": "field",
  "replicateGroupId": "UPPER-IOWA-RM-14-20260417",
  "fieldBlankIncluded": true,
  "fieldBlankResult": "clean",
  "extractionKit": "Silica column extraction kit, v3",
  "elutionVolumeMicroliters": 100,
  "inhibitionTested": true,
  "inhibitionResult": "none detected",
  "assayType": "metabarcoding",
  "markerLocus": "12S rRNA",
  "primerSet": "MiFish-U",
  "sequencingPlatform": "Short-read sequencer, 2 x 150 bp",
  "technicalReplicateCount": 3,
  "noTemplateControlResult": "clean",
  "positiveControlResult": "amplified",
  "limitOfDetection": "not recorded",
  "limitOfQuantitation": "not recorded",
  "minimumReadCount": 10,
  "minimumPositiveReplicates": "not recorded",
  "referenceDatabase": "MitoFish",
  "referenceDatabaseVersion": "2026-02-01",
  "identityThresholdPercent": 97,
  "pipelineVersion": "cm-pipeline 1.4.2",
  "detectionThreshold": "At least 10 reads in at least 2 of 3 technical replicates",
  "recordCreatedDateTime": "2026-05-02T14:40:00-05:00",
  "recordHash": "sha256:9f2c1c0e7f2a4b1d8c5a3e6b0d47f9128a5c4e3b2f1a0d9c8b7a6e5d4c3b2a19"
}

Marine sediment, targeted qPCR

A sediment sample reported by mass rather than volume, with a limit of detection and a positive replicate rule in place of a read count. Volume, filter and read-count fields are present and declared `not recorded`.

{
  "standardVersion": "0.1",
  "sampleId": "CM-MS-2026-0523-011",
  "siteId": "GULF-SHELF-ST-08",
  "laboratoryId": "LAB-0117",
  "decimalLatitude": 28.4102,
  "decimalLongitude": -89.1547,
  "coordinateUncertaintyMeters": 25,
  "coordinatePrecisionReduced": false,
  "accessConstraint": "embargoed",
  "sensitivityReason": "Survey locations are commercially confidential until the contract closes",
  "depthMeters": 84,
  "collectionDateTime": "2026-05-23T06:45:00-05:00",
  "collectionMethod": "Box core, top 2 cm subsampled",
  "substrateType": "sediment",
  "sampleVolumeLiters": "not recorded",
  "sampleMassGrams": 12.5,
  "filtrationUsed": false,
  "filterPoreSizeMicrons": "not recorded",
  "filterMaterial": "not recorded",
  "preservationMethod": "freezing",
  "minutesToPreservation": 22,
  "replicateType": "technical",
  "replicateGroupId": "GULF-SHELF-ST-08-CORE-2",
  "fieldBlankIncluded": true,
  "fieldBlankResult": "clean",
  "extractionKit": "Soil and sediment extraction kit, v2",
  "elutionVolumeMicroliters": 75,
  "inhibitionTested": true,
  "inhibitionResult": "inhibition detected",
  "assayType": "qPCR",
  "markerLocus": "COI",
  "primerSet": "Species-specific assay, published 2024",
  "sequencingPlatform": "not recorded",
  "technicalReplicateCount": 6,
  "noTemplateControlResult": "clean",
  "positiveControlResult": "amplified",
  "limitOfDetection": 4.2,
  "limitOfQuantitation": 12,
  "minimumReadCount": "not recorded",
  "minimumPositiveReplicates": 2,
  "referenceDatabase": "Curated in-house assay reference",
  "referenceDatabaseVersion": "2026-04-15",
  "identityThresholdPercent": 100,
  "pipelineVersion": "cm-pipeline 1.4.2",
  "detectionThreshold": "At least 2 of 6 replicates above the limit of detection",
  "recordCreatedDateTime": "2026-06-01T11:05:00-05:00",
  "recordHash": "sha256:4b8e2d6a1c7f0935e8d2b4a6c1f3e5079d2c4b6a8e0f1d3c5b7a9e1f3d5c7b90"
}

Terrestrial soil, generalized coordinates

A soil sample whose location has been deliberately coarsened, so the sensitivity reason carries a real value. Fields that do not apply to a dry soil core, such as filter pore size, are declared `not recorded` rather than omitted.

{
  "standardVersion": "0.1",
  "sampleId": "CM-TS-2026-0711-027",
  "siteId": "NORTH-WOODS-PLOT-12",
  "laboratoryId": "LAB-0042",
  "decimalLatitude": 46.812,
  "decimalLongitude": -90.71,
  "coordinateUncertaintyMeters": 1000,
  "coordinatePrecisionReduced": true,
  "accessConstraint": "restricted",
  "sensitivityReason": "Coordinates generalized to 1 km at the request of the landholder",
  "depthMeters": 0.05,
  "collectionDateTime": "2026-07-11T08:20:00-05:00",
  "collectionMethod": "Composite of five soil cores to 5 cm within a 10 m plot",
  "substrateType": "soil",
  "sampleVolumeLiters": "not recorded",
  "sampleMassGrams": 250,
  "filtrationUsed": false,
  "filterPoreSizeMicrons": "not recorded",
  "filterMaterial": "not recorded",
  "preservationMethod": "desiccation",
  "minutesToPreservation": 15,
  "replicateType": "none",
  "replicateGroupId": "not recorded",
  "fieldBlankIncluded": false,
  "fieldBlankResult": "not evaluated",
  "extractionKit": "Soil and sediment extraction kit, v2",
  "elutionVolumeMicroliters": 100,
  "inhibitionTested": true,
  "inhibitionResult": "none detected",
  "assayType": "metabarcoding",
  "markerLocus": "ITS2",
  "primerSet": "ITS86F / ITS4",
  "sequencingPlatform": "Short-read sequencer, 2 x 300 bp",
  "technicalReplicateCount": 3,
  "noTemplateControlResult": "clean",
  "positiveControlResult": "amplified",
  "limitOfDetection": "not recorded",
  "limitOfQuantitation": "not recorded",
  "minimumReadCount": 20,
  "minimumPositiveReplicates": "not recorded",
  "referenceDatabase": "UNITE",
  "referenceDatabaseVersion": "2026-03-10",
  "identityThresholdPercent": 98,
  "pipelineVersion": "cm-pipeline 1.4.2",
  "detectionThreshold": "At least 20 reads in at least 2 of 3 technical replicates",
  "recordCreatedDateTime": "2026-07-20T16:02:00-05:00",
  "recordHash": "sha256:1d3f5b7a9c0e2f4a6b8d0c2e4f6a8b0d2c4e6f8a0b2d4c6e8f0a2b4d6c8e0f21"
}

08 · OPEN QUESTIONS

What we have not settled

These are unresolved in version 0.1. Each is a place where we would rather hear from a laboratory, a program or a regulator before deciding.

  • Quantitative reporting is under-specified

    The record was drafted with metabarcoding foremost. It does not yet carry reaction conditions, standard curve performance or copy-number estimates, which MIQE expects and which most United States invasive species monitoring depends on. This is the largest known gap and the priority for version 0.2.

  • Should the reference database be a version string or a resolvable snapshot?

    A version string is easy to supply and hard to verify years later. A content hash or an archived snapshot is verifiable and much harder to produce. We have not decided, and we would rather hear from laboratories before we do.

  • How should a record represent multiple markers from one sample?

    Version 0.1 assumes one assay per record, so a sample run with three markers becomes three records sharing a sample identifier. That is workable and inelegant. A nested form has been proposed.

  • Who computes the record hash, and over what?

    A hash is only useful if two parties compute the same value from the same record. The canonicalization rules are not yet written down.

  • Should detection thresholds be constrained, or only declared?

    This specification currently requires that a threshold be stated, not that it take any particular value. Whether the science committee should ever narrow that is a governance question, not a technical one.

  • Should replicate allocation be captured explicitly?

    Version 0.1 records `technicalReplicateCount`. Recent work suggests that is insufficient — ten PCR replicates from one field sample and one replicate from each of ten samples produce similar richness and describe different spatial realities. Version 0.2 is likely to require `fieldSampleCount`, `pcrReplicatesPerFieldSample` and `replicatePooling`, the last distinguishing replicates pooled before sequencing from those sequenced independently. At least one commercial laboratory information system already tracks all three, which suggests the burden is low. We would like to hear from anyone for whom it is not.

  • Should the declared-unknown pattern be universal?

    Sixteen fields accept `not recorded`; nine do not, on the argument that a record without coordinates, a collection time, an assay, a marker, a pipeline version, a reference database version, a hash or a specification version describes nothing at all. That line is a judgment, not a derivation. A reader could reasonably argue that a submitter with no usable coordinates should be able to say so and still file a record, rather than file nothing. We have drawn the line where we have and we would rather be argued out of it in public.

  • Should `not recorded` split into three?

    `not recorded` currently flattens three different situations: never captured, where the measurement was possible and nobody made it; not applicable, where the field cannot apply, such as pore size on an unfiltered sediment core; and withheld, where the value exists but cannot be released. A reader can act on those differently, and collapsing them loses information the submitter already has. Splitting them costs every implementer a migration. We have not decided.

Closed in this revision

  • Resolved

    How can a field be mandatory when many submitters cannot supply it?

    `minutesToPreservation` was the case that forced this. The interval between collection and preservation governs what survives to be analyzed, so the field belongs in every record — but a great deal of legacy and field-collected material simply does not have it, and mandating it would have made honest records non-conformant. Permitting an explicit `not recorded` resolves this. The question is mandatory and "we do not have it" is an acceptable answer, which is not the same as leaving the field out and letting a reader guess whether it was fast, slow, or never considered.

Publishing our specification in the open.

Common Measure launches in 2027. If you run a laboratory, buy environmental data, or set policy that depends on it, we'd like to hear from you before then.

Join the waitlist