Large defense contractors pay analysts $500 an hour to tell them what price to bid. The analysis they produce is not magic. It is mostly structured research using federal data that is publicly available to anyone with a browser and a few hours to spend.
This guide walks through how to do price-to-win (PTW) analysis on a budget near zero, using tools the government publishes and maintains. If you have never heard the term, PTW analysis is the process of estimating the price at which a competitor is likely to win a contract, so you can decide whether to bid below that number, walk away, or compete on something other than price.
What price-to-win actually is
PTW is not a single number. It is a range, built from evidence, that tells you what the government has paid for similar work before and what a capable incumbent or well-resourced competitor could credibly charge.
The goal is to answer two questions before you submit: Can I deliver at that price and still make money? If the answer is no, you need to know before you spend 200 hours writing a proposal.
Most small businesses skip this step and either underbid to the point of losing money on performance, or overbid and lose to a larger company that did the math.
Start with FPDS: your free pricing database
The Federal Procurement Data System (FPDS) at fpds.gov contains every federal contract action above the simplified acquisition threshold ($250,000 as of fiscal year 2024, per FAR Part 13). For anything below that, agencies are not required to report, which is worth knowing.
Search FPDS by NAICS code, PSC code (Product Service Code), agency, and place of performance. For a realistic PTW, you want to find:
- The most recent award for the same or adjacent work
- The awardee name and contract number
- The award amount and period of performance
- Whether it was a set-aside and which type
A $2.3 million, 18-month contract for NAICS 541611 (administrative management consulting) at the Department of Veterans Affairs tells you what the agency paid per month for similar services. Divide the award amount by the number of months. That is your floor target.
FPDS also lets you filter by small business, 8(a), WOSB, HUBZone, and SDVOSB set-asides. If the requirement is a 100% small business set-aside, large business pricing is irrelevant. Filter accordingly.
Pull the incumbent's history
Once you have the incumbent awardee name from FPDS, search USASpending.gov for their full contract history with that agency. USASpending is more readable than FPDS and includes the transaction-level detail you need: modifications, ceiling changes, and exercised options.
If the incumbent has grown the ceiling by 15% through modifications over two years, the agency likes them and is willing to pay. If the ceiling has held flat, there may be scope friction or budget pressure. Both data points affect what you should bid.
You can also search SAM.gov for the incumbent's capability statement text and NAICS code registrations. Larger primes list their GSA Schedule contract numbers in SAM, which leads you to their published pricing.
Use GSA pricing as a ceiling check
GSA Multiple Award Schedule (MAS) pricing is publicly visible. Go to GSA Advantage (gsaadvantage.gov) and search by SIN (Special Item Number) or keyword. You can see the labor category names and hourly rates that GSA-approved vendors have negotiated.
GSA rates are not what companies actually charge. GSA rates are ceiling prices under FAR 8.404 — the maximum. Task order pricing negotiated under a schedule is typically lower. But GSA schedules give you a credible upper bound.
If a senior program manager on a GSA IT schedule runs $175 to $220 per hour, and you are proposing a similar role, your fully loaded rate should come in somewhere in that window or below. If your fully loaded rate is $310 per hour, you need a clear technical differentiator or you are going to lose on price.
Price labor with OPM wage tables and GSA occupational benchmarks
For service contracts, labor is 60 to 80 percent of cost. Getting labor rates wrong is how small businesses lose.
The Office of Personnel Management publishes General Schedule pay tables annually at opm.gov/policy-data-oversight/pay-leave/salaries-wages. These are the actual salary grades for the federal employees doing the work your contract will support. A GS-12, Step 5 in the Washington-Baltimore locality earns $101,630 per year as of 2024. A private contractor doing the same job will typically price at 1.5 to 2.5 times that salary to cover overhead, fringe benefits, and profit.
For Service Contract Act (SCA) work — janitorial services, food service, IT support in some classifications — the Department of Labor publishes wage determinations at sam.gov/content/wage-determinations. The wage determination number is referenced in the solicitation. If you miss it, you will underbid labor and violate the contract.
Use the OPM tables as a sanity check on your own proposed labor rates. If you are proposing a rate well below what the government pays its own employees for the same function, either you have found an efficiency or you have made an error.
Reverse-engineer competitor costs from public subcontract data
Large prime contractors report their subcontracting to the Electronic Subcontracting Reporting System (eSRS) at esrs.gov. The reports are not detailed enough to show individual rates, but they confirm which primes are active in your market and in what volume.
For rate card data on specific primes, check their GSA schedules and any publicly posted IDIQs. The General Services Administration posts OASIS and OASIS+ task orders at sam.gov. Many OASIS task orders include labor category pricing in the awarded documents, which are public under FOIA.
If a prime you expect to compete against has a GWAC task order at $145 per hour for a systems engineer role, that is your competition. You are not beating them by charging $160.
Build the model in a spreadsheet
The actual PTW model does not require specialized software. A spreadsheet with five columns handles most cases:
- Labor category name
- Hours per year (or month)
- Fully loaded hourly rate (salary + fringe + overhead + G&A)
- Extended cost (hours times rate)
- Source for the rate (OPM, GSA schedule, market survey)
Total the extended costs, add your profit margin (typically 8 to 12 percent for services work under FAR 15.404), and compare the total to the FPDS historical award amounts you pulled in step one.
If your model comes in 25 percent above the historical award, you need to find the cost driver and address it or decide not to bid. If it comes in 10 percent below, you either have a real cost advantage or you have missed a cost element.
When price is not the deciding factor
Some acquisitions use best value trade-off evaluation, where technical merit and past performance carry significant weight alongside price. For these, you do not need to be the lowest bidder. You need to be within the competitive range, roughly the bottom 20 to 30 percent of likely bids, and win on the technical side.
Read Section M of the solicitation closely. If price is 20 percent of the evaluation and technical approach is 50 percent, a PTW model alone will not save you. You still need it to confirm you are not bidding yourself out of the range, but it is one input, not the whole decision.
Three steps to take before your next bid
First, search FPDS for the last three awards in your NAICS code at your target agency. Note the award amounts, periods of performance, and awardee names. This takes about 30 minutes and gives you a factual baseline to replace guesswork.
Second, pull the GSA Advantage pricing for your top three labor categories. Set these numbers as your ceiling check in your cost model and flag any rate you have proposed above that ceiling.
Third, download the OPM General Schedule table for your work location. For each proposed labor category, map it to the closest GS grade and calculate a multiplier. If your multiplier is below 1.4 or above 2.8, document the reason. Agencies question outliers, and you should be able to explain them before the source selection board asks.
None of this requires a $500-an-hour analyst. It requires a few hours, public data, and the discipline to do the math before you commit to a proposal.