Skip to content
BidBenchmark

Published method

How these numbers are made

Everything published here is computed from records the federal government released. We keep those files, parse them with versioned code, and calculate statistics deterministically. Nothing on a benchmark page is estimated, interpolated from a model, or filled in when the evidence is missing.

What the measures mean

Federal award records report several different dollar figures. Collapsing them into one "contract price" is the most common way procurement data gets misread, so we keep them separate everywhere.

MeasureDefinitionMinimum sampleDefinition hash
current_award_valueDistribution of current award value across comparable awards1047e351283780691d
potential_award_valueDistribution of potential award value including option periods10939b15f5bbd574d4
total_obligatedDistribution of total obligations to date108e77fcbecfd6005c

What Phase 1 does not claim

These are comparable award benchmarks, not unit prices. Federal award records report obligations and award values. They do not reliably report dollars per square foot, per hour, or per unit, and we will not derive those figures from data that cannot support them.

A benchmark describes awards that were signed in the past. It is not a prediction of what an agency will pay next, an independent government estimate, or advice on what to bid.

Where a cohort is too thin to say anything defensible, the page says so and shows no number. That is a deliberate product decision: a confident-looking figure built on six awards does more damage than a blank.

How a figure is produced

  1. 01Retrieve and keep. Official archives are downloaded, hashed, and stored byte-for-byte before anything reads them. The stored artifact, not our parse of it, is the record of what the government published.
  2. 02Parse into observations. Each row becomes a source observation keyed by the government's own identifier. New observations supersede old ones; nothing is overwritten, so corrections and deletions replay exactly.
  3. 03Resolve entities. Contractors resolve by UEI first, then official identifiers, then exact normalized names. Fuzzy matches are queued for review rather than merged silently.
  4. 04Classify. Deterministic NAICS and PSC rules assign the benchmark category. A model is consulted only for descriptions no rule can decide, and its output is validated against the existing taxonomy — it cannot invent a category.
  5. 05Calculate. Percentiles use linear interpolation over the sorted values, with an interquartile-range fence for outliers and half-up rounding to cents. The code hash and result hash are stored with every snapshot.
  6. 06Gate and publish. A snapshot is published only if it clears the sample threshold and the anomaly checks. A median that shifts implausibly against the last published value is blocked for review rather than shipped.

Corrections

When the government corrects or deletes a record, the correction flows through the same pipeline and the affected benchmarks are recomputed. Superseded snapshots are retained, so a figure quoted from this site last month can still be reproduced. See source freshness.