Five findings from SQL run directly against the warehouse behind this app — including the ones that make the app's own scoring model look bad. Each is written with its caveats attached, because most of the interesting numbers in this dataset are wrong until you clean them.
Awards
57,566
one row per award
Agencies
5
HHS · VA · DHS · DOC · SSA
NAICS
3
541511 · 541512 · 518210
Single-offer F&O $
$39.0B
labeled full & open
01Query 1 · Competition theater
“Full and open” competition usually draws one bidder
Across every agency in scope, more than half of awards labeled FULL AND OPEN COMPETITION received exactly one offer — $39.0B where the competitive label describes the procedure, not the outcome.
SSA61.9%
DHS60.1%
HHS55.6%
VA55.0%
Commerce54.3%
Share of full-and-open awards with exactly one offer · vehicle artifacts excluded
›SSA is the worst offender — only visible once SSA was added to scope.
›The finding gets stronger after cleaning: unfiltered it reads ~6 pts lower, because the artifact rows are all high-offer.
›Related: unrestricted (no set-aside) work draws fewer bidders than small-business set-asides. The direction survives cleaning; the magnitude does not.
›Needs no scoring model — it's a straight count.
02Query 0 · The offer-count trap
Offer counts are contaminated by vehicles and sentinels
number_of_offers_received will embarrass you if quoted raw. Parent IDIQ vehicles report offers on the vehicle, not the order, and at least one award type uses 999 as a placeholder. Real order-level competition is 2–3 offers.
78.4
avg offers on blank award-type rows
n = 2,227
47%
of those rows report 50+ offers
IDIQ / vehicle awards
999
max offers on PURCHASE ORDER
an obvious sentinel
Left in, the artifact turns a real signal into a fake one: small-business set-asides read 32.1 avg offers vs 6.5 for unrestricted — a ~10× spread that is almost entirely the vehicle rows. Every offer-based query applies the same filter:
number_of_offers_received BETWEEN 1 AND 50
AND NULLIF(contract_award_type, '')
IS NOT NULL
03Queries 3–4 · The scores don't discriminate
The original scores didn't discriminate, so they were rebuilt
In the original points model, 54.1% of the 3,658 recompete candidates tied at incumbent_strength = 65, the score's structural maximum. With ties broken by dollars, the radar was close to “sorted by contract size.” Since 2026-09-16 both scores are backtested probabilities instead.
Tied at max
54.1%
of 3,658 candidates
Real max
65
header claims 0–100
Over lifetime cap
23.9%
of vendors ≥ $3.27M
Corr. w/ offers
0.0145
n = 2,725
Component
Cap
is_lifetime_pts
hits ceiling at $3.27M lifetime
30
is_recency_pts
20
is_breadth_pts
15
Maximum possible
65
›The lifetime term is least(30, ln(lifetime) × 2), which caps at e¹⁵ ≈ $3.27M. A $3.3M vendor and a $9.2B vendor score identically.
›Correlation between strength and offers received is effectively zero, and single-offer rate falls as strength rises — backwards for a defensibility score.
›recompete_score has the same problem: it cannot exceed 60, and the least(100, …) wrappers never bind.
›Saturation worsened after the scope expansion (52.5% → 54.1%) because vendor totals aggregate across NAICS.
The rebuild
Retention AUC
0.84
old score: 0.56
Placebo AUC
0.76
share due to matching
Largest tie
7.1%
was 54.1%
Corr. w/ offers
−0.15
was +0.0145
›incumbent_strength is now P(incumbent wins the follow-on). recompete_score is P(a follow-on happens) × (1 − that), which is the chance a new vendor wins the work.
›Both come from logistic scorecards fitted on ended contracts with inferred follow-ons and point-in-time features. The models were trained on contracts that ended before 2021 and tested on later ones.
›Biggest retention factors: 0–1 rival vendors at the office (×10 odds), sole-source (×4.2), 4+ prior awards there (×3.4). Incumbent size is not a factor.
›The same model still scores 0.76 on a placebo window, so the matching method explains part of the signal. Treat scores as a ranking, not exact odds.
04Queries 5–6 · Recompete backtest & retention by size
Mid-size specialists retain better than giant primes
The score treats bigger incumbents as stronger. The backtest says otherwise: vendors with $18.4–82.1M in-scope lifetime obligations kept their work most often, and the largest primes kept it least.
Lifetime $
Retained
Prior run
Q1$0.3–18.4M
28.8%
prior 22.9%
22.9%
Q2$18.4–82.1Mbest
37.7%
prior 38.8%
38.8%
Q3$82.1–228.8M
28.7%
prior 28.4%
28.4%
Q4$228.8M–1.05B
31.1%
prior 27.6%
27.6%
Q5$1.05–10.5Bworst
24.1%
prior 22.0%
22.0%
Incumbent retention by vendor lifetime-obligation quintile · n = 2,079 per quintile · prior run: 3 agencies × 2 NAICS, n = 1,351
30.1%
retained in near window
−180d to +365d, n = 10,393
11.3%
retained in placebo window
+3y to +5y, n = 3,687
›Replicated: same shape — peak at Q2, trough at Q5 — before and after a 54% data increase. That survival is the strongest evidence here.
›Successors are inferred (same office + PSC, closest in dollars). The 2.7× lift over placebo shows the match captures something real, but treat the level as soft.
›Look-ahead bias: lifetime obligations are as-of-today, not as-of-contract-end. Read the ordering as the finding, not the exact percentages.
05Scope notes · Query 7 clearance filter
HHS, VA, SSA and Commerce are clean public-trust lanes; DHS is mixed
Clearance requirements decide who can realistically compete — and who can be hired. Four of the five agencies are essentially all public-trust work. DHS has to be split by component.
Agency
Lane
Awards
HHS
21,652 awards
public trust
Public trust / suitability
21,652
VA
13,274 awards
public trust
Public trust / suitability
13,274
Commerce
8,115 awards
public trust
Census, NOAA, USPTO — all clearance-free
8,115
SSA
2,200 awards
public trust
Public trust / suitability
2,200
DHS
12,325 awards
mixed
USCIS, FEMA generally no clearance; CBP, ICE, TSA, USSS, Coast Guard skew cleared
12,325
›Commerce is pulled whole because the API filters by top-tier agency only — it brings in Census, NOAA and USPTO, all clearance-free.
›Applying the DHS split (keep USCIS and FEMA, drop CBP, ICE, TSA, USSS, Coast Guard) removed four previously-surfaced firms whose work was unreachable without a clearance.
What this data can't tell you
It's one row per award (USASpending prime award summaries) — there is no modification history.
Coverage is effectively all-time (POP start 1996–2026); the fiscal-year column is a partition label, not a filter.
Lifetime obligations are scope-limited to 5 agencies × 3 NAICS, not company size, and vendor entity resolution is unfinished.
Nothing here generalizes to federal contracting as a whole.