GSA Labor Rate Benchmarks (CALC+)
Pricing
from $1.20 / 1,000 rate records
GSA Labor Rate Benchmarks (CALC+)
Benchmark GSA CALC+ ceiling labor rates for many labor categories at once, export rate records, and track rate changes for vendors or contracts. Public GSA data.
Pricing
from $1.20 / 1,000 rate records
Rating
0.0
(0)
Developer
Max Beuvelet
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Security
Limited permissionsShare
Benchmark GSA schedule ceiling labor rates for a whole list of labor categories in one run, export the underlying rate records, and track rate changes for the vendors, contracts or labor categories you watch.
Data comes from GSA's public CALC+ Quick Rate API. This Actor is not affiliated with or endorsed by the U.S. General Services Administration.
What can this Actor do?
- Benchmark: paste up to 200 labor category titles. Get one row per title with the number of matching rates, the minimum, 10th, 25th, 50th, 75th and 90th percentile, maximum, mean and standard deviation of current-year ceiling rates, and the labor categories that matched.
- Search and export: vendor names match regardless of capitalization (spell them as on the GSA schedule). Up to 10,000 rate records per run with vendor, contract number, SIN, education, experience, worksite, business size and current, next-year and second-year rates.
- Watch: track up to 20 vendors, contracts or labor categories. Each scheduled run reports only rates that were added, removed or re-priced since the previous run.
Who is it for?
Pricing and capture teams at federal contractors, consultants who prepare price-to-win analyses, and data teams who want GSA labor rate data in a spreadsheet, database or AI agent.
How do I benchmark GSA labor rates for many labor categories?
- Set Mode to Benchmark labor categories.
- Paste your labor categories, one per line. Optional filters (education, experience, worksite, business size, clearance, SIN, price range) apply to every row. The Actor checks that GSA applied each filter; a row whose filter GSA did not apply is not delivered or charged.
- Click Start, then download CSV, Excel or JSON, or send the results to Google Sheets.
How do I track competitors' GSA rate changes?
Set Mode to Watch for rate changes, add vendors (names match regardless of capitalization; spell them as on the GSA schedule) or contract numbers, save the input as a task and add a daily schedule. GSA refreshes the data once a night, so one run a day is enough. If your maximum cost per run cannot cover all changes of a target, that target is skipped whole and reported again next run, so no change is lost or charged twice. A watched target whose GSA record was skipped is not compared or charged that run.
How much does it cost?
| Event | Price on the Free plan | Charged when |
|---|---|---|
| Rate record | $1.50 per 1,000 | a rate record is written to your dataset |
| Benchmark row | $0.02 | a labor category with at least one matching rate is benchmarked |
| Watch check | $0.002 | a watched target is compared against a newer GSA data refresh |
| Rate change | $0.003 | an added, removed or re-priced rate is reported |
| Actor start | Apify's default | the run starts |
Paid Apify plans get lower event prices. You do not pay for platform usage. Benchmark rows with no matching rates and watch checks with no new GSA data are free. Examples: 20 rate records ≈ $0.03; a benchmark of 40 labor categories = $0.80; a daily watch of 5 vendors for 30 days = $0.30 plus $0.003 per change.
Input example
{"mode": "benchmark","benchmarkLaborCategories": ["Project Manager"]}
Output example
Excerpt of a recorded fixture run; the sourceUrl field is left out here.
[{"type": "benchmark","retrievedAt": "2026-10-22T12:30:02.452Z","laborCategoryQuery": "Project Manager","match": "contains","filtersApplied": {},"sampleSize": 15235,"currentPrice": {"min": 27.5,"p10": 99.46,"p25": 124.5,"median": 152.95,"p75": 184.24,"p90": 222.58,"max": 458.39,"mean": 158.26,"stdDev": 51.75},"topMatchedCategories": [{"name": "Project Manager","count": 2974},{"name": "Project Manager II","count": 921},{"name": "Project Manager I","count": 848},{"name": "Project Manager III","count": 624},{"name": "Senior Project Manager","count": 469}],"businessSizeMix": {"small": 11288,"otherThanSmall": 3947},"worksiteMix": {"customer": 7991,"contractor": 6411,"virtual": 833},"percentilesApproximate": true,"sourceRefreshedAt": "2026-10-22T02:00:02Z"}]
Use it from the API, Google Sheets or an AI agent
Agents that use the Apify MCP server can find and run this Actor; each run is charged by the events above. Heavy users can add their own free api.data.gov key under Advanced to get their own GSA rate limit.
Data source, freshness and limits
- Source: GSA CALC+ Quick Rate API, ceiling rates endpoint, refreshed every night by GSA; every record shows
the refresh it came from (
sourceRefreshedAt). - Rates are awarded ceiling hourly rates on GSA schedule contracts: the most a contractor may charge under the contract, not the price an agency paid on a particular order.
- GSA's API returns at most 10,000 records per query; add filters to narrow a query.
- Percentiles are computed by GSA's API and can be approximate for large samples.
- Contains matching is GSA's keyword search, which also matches vendor names and contract numbers. Every benchmark row lists the labor categories that matched; use exact matching when you need it.
- No AI is used to produce the data. Results are data, not pricing or procurement advice.
Privacy
Your input is sent only to GSA's API to run your query. The Actor does not log your input or send it anywhere else.
Watch snapshots are stored in a key-value store named gsa-labor-rates-watch in your own Apify account;
delete it under Storage to reset your watches. Results contain company names and contract numbers only.
If you open an issue, the maintainer keeps its title and link in a private log for up to 180 days.
FAQ
- Is this official GSA data? It is GSA's public data, unchanged except for field names and formatting. This Actor is not a GSA product.
- Can I reuse the data? U.S. federal government works generally have no copyright; GSA's website policies give details.
- Why did my run stop early? You reached your maximum cost per run or GSA's rate limit. Everything delivered is in the dataset and you are charged only for delivered items.
- How do I report a problem? Open an issue on this page.
Changelog
Version history is on the Changelog tab of this Actor's page.