Tracking Positional Accuracy Through Derivations

Part of: Data Quality Metrics as Lineage Evidence

Positional accuracy is the quality attribute most often stated on a published dataset and least often derived. It gets copied from the source survey’s specification, carried forward through every transformation unchanged, and published as though nothing in between could have moved anything. This how-to makes the figure a computed property of the derivation chain rather than an inherited constant, so that the number on a catalogue record is one the lineage actually supports.

The practical consequence of getting this wrong is not abstract. A parcel product advertised at survey accuracy, after a generalisation applied for web display, is wrong by the generalisation tolerance — and somebody will eventually use it for a decision that the real accuracy cannot support.

Prerequisites

  • Per-step accuracy contributions recorded, per Auditing Reprojection Accuracy Loss.
  • A stated accuracy for every terminal source, with its basis recorded.
  • A derivation edge table supporting ancestry traversal.
  • A documented combination rule, agreed before any figure is published.

Sources Need a Basis, Not Just a Number

The chain terminates at sources, and the figure that enters there determines everything downstream. A source accuracy with no stated basis is a number somebody typed.

Four bases for a source accuracy figure Measured against control, specified by contract, inherited from a supplier, and assumed, ordered by the confidence each supports. BASIS MEANS TRUST Measured RMSE against independent control points high Specified the contract required this; nobody checked moderate Inherited the supplier's own claim, unverified low Assumed somebody's estimate, recorded as fact none

Record the basis as a field beside the number, and propagate the weakest basis along the chain the way the magnitude propagates. A product derived from one measured source and one assumed source has an assumed accuracy overall, however precise the arithmetic looks, and stating that plainly is more useful than a figure whose foundations are invisible.

The bottom row is worth refusing outright where a published claim depends on it. An assumed figure that reaches a catalogue record has become an assertion the organisation is making, and the person who typed it will not be the person defending it. Where nothing better is available, publish the accuracy as undetermined rather than publishing a guess — the guidance in the parent topic applies here exactly.

The Resolution Floor

Raster products have an accuracy floor that no chain arithmetic can go below, and forgetting it produces figures that are technically derived and physically impossible.

A thirty-metre grid cannot locate a feature more precisely than its cell, regardless of how accurately the grid itself is georeferenced. A chain that accumulates a two-centimetre survey error and a five-centimetre datum shift over a thirty-metre raster does not yield a seven-centimetre product; it yields a thirty-metre product whose georeferencing is good to seven centimetres. Those are different statements and only the second is true.

Apply the floor as a final step, taking the maximum of the accumulated figure and the resolution-derived bound. Record both terms so a reader can see which dominated — a product where the accumulated error exceeds the resolution floor is one where processing, rather than sampling, is the limiting factor, and that is actionable information.

Vector products derived from rasters inherit the floor. A boundary digitised from thirty-metre imagery is a thirty-metre boundary even though it is stored as coordinates with many decimal places, and the coordinate precision of the output tells you nothing about it. This is the single most common way an inflated accuracy claim enters a catalogue.

Reporting the Chain, Not Just the Number

The output of the computation should be a small structure rather than a scalar, and the extra fields cost nothing because the traversal already gathered them.

What an accuracy result should carry The computed bound accompanied by the rule used, the weakest basis in the chain, the dominant term, and the enumerated contributions. bound_m: 0.55 rule: linear_sum basis: specified dominant_step: generalise (0.50 m) — change this to improve the product terms: [survey 0.02 measured] [datum 0.03 specified] [generalise 0.50 specified] resolution_floor_m: null (vector product) computed_at: 2026-06-14 · chain_depth: 3 · unknown_terms: 0 unknown_terms is the field that decides whether the bound may be published at all.

unknown_terms deserves the emphasis the caption gives it. A chain containing a step with no recorded accuracy cannot be bounded, and a computation that silently treats the gap as zero produces a confident understatement. Counting the unknowns and refusing to emit a bound when the count is non-zero is the assertion that keeps the whole mechanism honest.

dominant_step is what makes the result actionable rather than merely descriptive. Telling a steward their product is accurate to half a metre invites a shrug; telling them the half metre is entirely the generalisation tolerance, and that changing it is a one-line configuration edit, produces a decision.

Keeping the Published Claim and the Computed Bound Separate

Store what was asserted at publication and what the lineage currently supports as two distinct fields, and never let one overwrite the other.

Published claim versus computed bound over time The claim is fixed at publication; the computed bound moves when an upstream step changes, and the gap between them is the alert. publish upstream tolerance changed today published claim 0.30 m — never edited computed bound 0.55 m discrepancy — republish, do not edit ACCURACY (m)

The published claim is a historical fact about what the organisation stated on a given date. The computed bound is a current property of the derivation chain, which changes when an upstream step changes. Storing only the first means a product’s accuracy silently becomes wrong when an upstream tolerance is adjusted; storing only the second means there is no record of what was claimed when somebody relied on it.

The discrepancy between them is the signal worth alerting on. A nightly comparison flagging every published product whose computed bound now exceeds its published claim finds live misstatements — and it finds them because an upstream change propagated, which is exactly the case nobody notices by inspection.

Resolve a discrepancy by republishing rather than by editing the claim. Amending the catalogue record to match the new computation makes the record accurate and destroys the evidence that it was previously wrong, which is the property an audit is interested in. Publish a new version with the corrected figure and let the old one stand as superseded.

Choosing a Combination Rule and Defending It

Two rules are in common use and they give materially different answers, so the choice needs stating rather than assuming.

Linear sum adds the per-step contributions. It assumes the errors are systematic and aligned — that each step’s displacement pushes in the same direction as the last. This is pessimistic, and for a chain of datum shifts and coordinate conversions it is close to right, because those errors genuinely are systematic rather than random.

Root sum of squares takes the square root of the summed squares. It assumes the errors are independent and randomly oriented, so that some cancel. For a chain of independent measurement errors this is the correct treatment and the linear sum grossly overstates. For a chain of systematic transformations it understates, sometimes by a factor of two on a five-step chain.

The practical guidance is to use the linear sum by default and switch to root-sum-of-squares only where the independence assumption is defensible for every term in the chain. A published figure that is conservative is a smaller problem than one that is optimistic, because the first leads to somebody not using the data for a purpose it would have served and the second leads to somebody using it for one it would not.

Whichever is chosen, store the rule name on the result. A chain recomputed under a different rule produces a different number for the same data, and without the rule recorded the change looks like a data change. This is exactly the kind of ambiguity that turns a quality investigation into an archaeology exercise.

Verification

Compute the figure by hand for a three-step fixture chain and assert the code agrees. Do it under both candidate combination rules, so a later change of rule has a test that notices.

Assert the unknown path: a chain containing one step with a null accuracy must produce a null bound with unknown_terms of one, not a number. This is the most important assertion here and the one most likely to be omitted, because the natural implementation of a sum treats a missing value as zero.

Assert the resolution floor with a raster fixture whose accumulated error is far below its cell size, and confirm the reported bound is the cell size rather than the accumulation. Without this test, the floor is easy to implement in a way that applies only when somebody remembered to pass it.

Gotchas & edge cases

  • Accuracy is not a single number for a whole dataset. A mosaic assembled from sources of differing quality has a spatially varying accuracy, and one figure describes its worst region. Where the variation matters, record per-source accuracy and the extent each covers rather than collapsing to one value.
  • Horizontal and vertical accuracy are separate. They combine differently, degrade through different operations, and are governed by different datums. Track them as two figures; a single number that silently means the horizontal one will eventually be read as covering both.
  • Relative accuracy differs from absolute. Features may be positioned very precisely with respect to each other while the whole set is offset. A chain that only tracks absolute accuracy understates the product’s fitness for measurement between features.
  • Specification is not measurement. A chain built entirely on contractual specifications yields a figure about the intended data rather than the delivered data. That is a legitimate figure and it should be labelled as such through the basis field.
  • Re-derivation changes the answer. A product regenerated after a pipeline change has a new bound, and the old products remain in circulation with the old one. Version the accuracy alongside the product, rather than treating it as a property of the logical dataset.