Appendix · Notes on method
How we read the wage market.
This dashboard answers one question for the operating team: at each ACME yard, are we paying enough to stay competitive for outdoor and indoor hourly labor? Below is the formula, the sources, and the honest limits.
For every ACME yard we collect every observed competitor wage within a fixed radius and blend them with an inverse-distance weight. A posting one mile away counts ten times as much as one ten miles out. A single nearby market price is more relevant than a distant outlier.
where wi is posting midpoint hourly wage and di is great-circle distance in miles, floored at 0.5.
The default cutoff radius is 25 miles — admin-configurable. Good for dense markets; raise it per-state for rural yards.
Wage dollars do not have the same weight everywhere. A $24.00 wage in Mississippi buys substantially more than in California. We adjust using the Bureau of Economic Analysis Regional Price Parities (RPP) at the state level, vintage 2023 — the most recent published release.
Adjustment is applied symmetrically to both the ACME wage and the blended market wage, so the RPP-equivalent figures shown on each yard dossier are directly comparable across yards in different states.
Alongside the scraped postings, each yard dossier surfaces an authoritative wage anchor from the Bureau of Labor Statistics Occupational Employment & Wage Statistics program (OEWS), vintage May 2023. BLS OEWS is a federal survey of establishments — not job postings — covering roughly 1.1M workplaces and reporting p10/p25/p50/p75/p90 hourly wages by occupation and geography.
Postings tell us what employers advertise at the moment of hiring; OEWS tells us what the labor force actually earns. The two answer adjacent but distinct questions, and a healthy read on a market triangulates between them.
For that reason the BLS figure is shown as a separate panel on each dossier and is not mixed into the inverse-distance blended wage above. The methodologies are different in kind — occupation × geography (BLS) versus posting × distance (scrapes) — and averaging them would produce a number whose meaning is hard to defend.
Today the BLS surface is state-level: the dossier shows the five occupations most adjacent to the outdoor and indoor labor pools, statewide. OEWS also publishes MSA-level estimates, which we can layer in later by mapping each yard's ZIP to its metropolitan statistical area.
Source: bls.gov/oes/tables ↗
The headline color on each yard is its pressure quartile — its place in the distribution of gap (market minus ACME) across all in-scope yards. Q1 is the worst: yards where competitors pay the most over ACME. Q4 is the best for ACME.
Hourly roles split cleanly into two competitive labor pools. We classify every collected posting:
- Outdoor Yard attendants, loaders, drivers, forklift operators, equipment movers — bodies competing with logistics, retail-DC outdoor labor, and warehousing.
- Indoor Title clerks, customer service, claims, dispatch — bodies competing with general office and call-center labor in the same MSA.
The role-bucket toggle in the top bar re-runs the entire dashboard against a single pool, which is the only honest way to compare wages.
Today every live posting carries employer_owned — scraped directly
from the operator's careers domain. Seed postings predate live scrapes and are excluded from all dashboards.
Each row also carries an extraction confidence from 0.0 to 1.0 — how certain the LLM extractor was about wage values pulled from posting text. It drives the thin progress bars visible in each yard dossier.
Three model calls power the data behind every figure on this dashboard:
- 01 · Extract Pulls structured wage ranges, role titles, and locations from raw posting HTML.
- 02 · Classify Maps each posting to the outdoor / indoor labor bucket using a held-out role rubric.
- 03 · Narrate Generates the executive read on the overview page, grounded only in the numbers shown.
Every model call is logged. Engineering accountability lives in two places: