Federal Labor Rates · Composite Labor Rate
Every federal agency has to report what it bought in labor hours and what it paid for them, contract by contract. Almost nobody reads that file. We do: the median federal services contract worked out to $147.43 per direct labor hour in FY2025, against $142.43 in FY2024 — total dollars invoiced divided by the hours reported behind them. The figure falls at every step as contracts get bigger. Here is what is in the file, and how the platform puts it on the contract you are actually pricing against.
Included with Growth accounts. There are two kinds of number on this page and we label every one of them: the market figures are real, measured against the government’s own published file. The product screens are the real tool, on sample data.
What The File Shows
Under FAR 52.204-14, agencies collect what each services contract spent on direct labor hours and what it invoiced. It is published, it is per-contract, and it is the only broad record of its kind. These are the medians it produces — measured 8 September 2026, against the file as loaded through FY2025.
Median composite $/hr by the contract’s own reported labor hours — invoiced dollars ÷ direct labor hours. Monotonic across all five bands in FY2025, and again in FY2024.
Bars are FY2025 and start at zero — no truncated axis. Band labels are the contract’s own reported direct labor hours for the year. The pattern is what the file reports; larger contracts also carry a different labor mix, and nothing here measures why the rate falls.
Median composite $/hr across all measured services contracts, by fiscal year. Every year is higher than the one before it — $121.87 in FY2016 to $147.43 in FY2025, a rise of 21%.
Bars start at zero — no truncated axis. The figure under each year is the contract filings behind that year’s median: reporting grew from 12,196 to 32,205 over the decade, so the population under this line is not the same population throughout, and the rise should be read with that in mind. Medians only: this file is contractor self-reported and is never summed on this page, because a single outlier moves a total and cannot move a median.
Source: the federal Service Contract Inventory, published by the government on acquisition.gov. Figures measured 8 September 2026 against the file as loaded, FY2016–FY2025. FY2025 medians cover 32,205 filings across 30,640 contracts; FY2024, 37,528 filings across 35,310. Every figure on this page is an output of one recorded query, run once so that a count and the median beside it can never come from two different populations.
Related, from the same record: Half of Federal Services Dollars Now Ride on 419 Awards — services money is moving into a shrinking set of very large awards, measured on the same size axis as the first chart above. All Market Intelligence →
On Your Own Pursuit
The figures above are the whole market. What changes a bid is the incumbent’s own history on the specific contract in front of you — and that is a contract record you already had open.
No separate lookup, no rate tool to go find. Open any contract record and, where the incumbent filed a Service Contract Inventory report for it, the composite sits inline: what was invoiced, the direct labor hours behind it, and an estimated staffing level. It is one division, shown with its own source line and its own caveats attached — never a bare number on a card.
The Labor Rate band sits inline on the contract record itself — the composite hourly rate for the most recent reported year, the direct labor hours behind it, and an estimated staffing level, with the reported subcontractor share and the full Service Contract Inventory source line attached underneath it.
In this image: companies are fictional and dollar figures are illustrative. Agencies, buying offices and codes are the real federal record; any contract number shown is altered so it resolves to nothing.
One year is a data point. The escalation is the story: whether the incumbent has climbed hard, held flat under a customer squeezing them, or step-changed at a modification — a mod-flagged year is marked so you judge it for yourself. Every percentage here is the actual change against the prior year, never a trend line drawn through the points, and a partial year is excluded from the average rather than quietly blended into it.
Four people at $140, or forty at $55? That reads very differently — so the same screen divides the hours into an estimated headcount, and the divisor is yours to set: 1,920 hours a year by default, because nobody bills every hour on the calendar. Your own shop’s convention goes straight in. Every reported period is listed with its own hours, its named-subcontractor share, and whether it counted toward the escalation average, so you can see exactly which years the number rests on.
The full history for one contract: five reported fiscal years, escalating an average of 3.4% a year. Every year-over-year figure is the actual change against the prior year, never a fitted trend line, and the modification-driven year is flagged where it sits. Below the chart, every reported period is listed with its own hours, its subcontractor share and whether it counted toward the average — and the 1,920 hrs/yr FTE divisor is stated as an assumption, not a fact.
In this image: companies are fictional and dollar figures are illustrative. Agencies, buying offices and codes are the real federal record; any contract number shown is altered so it resolves to nothing.
What You Actually Get
One division, shown with its own evidence. No price-to-win, no should-cost, no recommendation about what to bid.
The government already collects what the incumbent invoiced and the labor hours behind it. We put it on the contract record — with the caveats attached, and never as a price.
Or see how the whole platform works first →Common Questions
No, and the difference matters. GSA schedule rates are ceiling prices a company negotiated by labor category on its own schedule contract — a published rate card, agreed in advance. These figures are what was actually invoiced against the direct labor hours a contractor reported on a services contract, across every agency, whether or not a schedule was involved. One is a price list; this is a measurement taken from what the record reports. And because it is a single blended figure across whatever mix was staffed that year — and because the dollar side is the contract’s total invoiced value, materials and travel included — it is never a per-role rate, and never a rate anybody charged.
Not on its own, and we would be suspicious of any tool that said otherwise. Federal reporting rules define the dollar side as the contract’s total invoiced value — materials, travel and other direct costs included — not isolated labor cost, so the number is directional. It is closest to a real billing rate on Time-and-Materials work and least reliable on fixed-price equipment, construction or maintenance work, and the product labels the contract type beside every figure for exactly that reason. Use it as an anchor for what has historically cleared with a customer. The bid is still yours.
Then it says so. Coverage is partial: of the FY2025 contract-years that do appear in the inventory, roughly half carry a usable hours-and-dollars pair, and how many covered contracts file nothing at all is not measurable from the file in either direction — so the real share can only be lower than half, never higher. Defense work is also visibly under-represented relative to its share of federal services buying, because DoD reports against a higher dollar threshold than civilian agencies. Where nothing was filed, the record renders as “not reported” rather than as zero, and we never fill the gap in from a similar contract. An absence you can see is more useful than a number you cannot trust.