Every product page on this site exists because award descriptions mentioning that product were found in federal contracting data. The search is a text match against the description field. That works well for a name like "Databricks". It fails badly for a name that is an ordinary English word — and this week we found two pages that it had failed for, and took them down.
What went wrong
Snowplow, the behavioural data platform, shares its name with a snow-clearing blade. The matcher collected awards for snowplows — municipal equipment, highway maintenance, winter operations — and there were plenty of them. The product page was never publishable, because the evidence threshold also requires award descriptions to name the product explicitly and to carry complete fields, and the snowplow awards did not survive contact with that rule. But the match was real, and it would have taken one threshold change to put a page of snow-removal purchases in front of a reader as data-platform pricing.
dbt — dbt Labs' data transformation tool — is three letters that federal agencies use for other things. Dialectical Behavior Treatment. Digital Breast Tomosynthesis. Both appear in contracting records, and both were collected as evidence for a data product. The same threshold rule kept them off the site; the same one change would have surfaced them.
Neither page was ever published. That is the fail-closed rule doing its job — but it is luck, not method. The matcher was capable of a serious error and only an unrelated check was preventing it.
The fix, and why it is general
The tempting repair is to add two special cases: never match "snowplow", never match "dbt". That fixes two products and leaves the class of error untouched. The next ambiguous name — and there will be one, because vendors pick short evocative words — would sail through.
So instead, an alias can be marked as requiring corroboration. A bare ambiguous name no
longer matches on its own; it matches only when the same description carries a second signal that
places it in the right context. "Snowplow" needs a data-platform word nearby. "dbt" needs one
too. Where corroboration is absent, the award is dropped and counted under its own rejection
reason — ambiguous_no_context — rather than quietly ignored.
We then re-read every award in the affected files. Where a product's name is genuinely ambiguous in the corpus, the file now shows zero awards instead of a fabricated history:
- Snowplow — no awards. It has no page.
- dbt — no awards. It has no page.
- StarBurst — nine genuine awards, down from 27. The awards that remain name the data platform; the ones removed named satellites, electrodes and confectionery.
- Snowflake — the agricultural-lime guards were tightened as well; it keeps 17 awards.
The other half of the problem: awards that name more than one product
The same review turned up a quieter error, going the other way. Some awards name several vendors' products in one line — a reseller's quote for a whole stack. Counting such an award as evidence of one product's price inflates that product with money that paid for something else.
The pipeline now compares an award against every configured product's aliases and classifies
anything naming an unrelated vendor as a bundle, publishes it, and excludes it from that
product's headline figures. Products that legitimately sit inside larger purchases — a platform
sold with its vendor's own suite — carry a curated list of companions instead, because a generic
rule flagged innocent phrases like "Teradata on Azure" as bundles and would have thrown away real
records.
What this says about the numbers
Nothing about this failure was visible in the published pages. The pages were thin, the threshold held, and the site looked fine. It took reading the underlying award descriptions line by line to see that a product's evidence was about snow removal.
That is the work that a "pricing data" site does not usually show, and it is the reason the methods page exists. Of the 33 products published here, 15 more were configured and refused: two had awards that never named the product, and the rest had fewer than the three distinct awards a page requires — Looker and Fivetran each stopped at two. None of them has a page. When the count of refusals stops being published, the count of pages stops meaning anything.