HOW THE TRADE BENCHMARK DATA IS BUILT.
SPM's trade benchmarks take gross margin and overhead by trade and revenue band from CFMA and Jones Maresca survey data and SPM's own trade data, and calculate net profit as gross margin minus overhead, because those sources report net far less often by trade and size. Every trade has 7 revenue bands, from $1M to $500M and up. The three bands up to $25M sit inside the range the surveys report and are published here. The four above are a modeled extension, published at runoncfos.com and labelled that way.
Most industry benchmark content online is a single number with nothing behind it. Ours shows its working: where each figure comes from, how net profit is calculated, which trades are derived from a comparable trade, and which bands are a model. When the calculated net differs from what a survey reports, the page says by how much and why. The point of all of it is that a client can ask where a number came from and get a straight answer.
WHAT IT MEANS.
An SPM trade benchmark is a single figure for one trade in one of seven revenue bands. Gross margin and overhead come from CFMA and Jones Maresca survey data and SPM's own trade data, and net profit is calculated from them as gross margin minus overhead.
Seven bands keep the comparison apples to apples, because the overhead a contractor faces at $3M has almost nothing in common with the overhead a contractor faces at $300M. The crew size is different, the management layers are different, and the fixed cost base is different. One blended figure per trade would be wrong for almost every company reading it.
WHAT GOES WRONG WITH INDUSTRY NUMBERS.
A single number with no source behind it
Most industry benchmark content online gives you one figure and no way to check it. You can't tell whether it came from a survey, from a blog post quoting another blog post, or from somebody's opinion. A number you can't trace is a number you can't defend when your banker or your surety disagrees with it.
One figure per trade, with no revenue band
Overhead structure, crew size, and management layers all change as a subcontractor grows. Applying a $2M company's overhead to a $40M company produces a comparison that's wrong in both directions. That's why every trade gets split into 7 revenue bands rather than published as one figure for the whole trade.
Numbers that disagree with each other across a site
When the trade page says one thing, the CEO Report says another, and the calculator says a third, nobody trusts any of the three. Every variance between a trade page and the master dataset goes into a reconciliation log before either number is final. One canonical value gets ratified, and then the trade page, the CEO Report, and every calculator cite it.
HOW A NUMBER GETS RATIFIED.
The trade and the revenue band get pulled from CFMA's survey data and from the January 2026 specialty trade study. Nothing gets written from memory or from a competitor's page. The raw figures come first and the commentary comes after them.
Surveys report gross margin and overhead by trade and size far more often than they report net profit, so net is calculated as gross margin minus overhead and the three figures tie in every band. That makes net an operating profit figure: what is left before interest, other income and expense, and the tax planning choices owners make. It is then compared with a separate measured net profit dataset covering 24 served trades and 24 adjacent trades, and the difference is published. The note under every benchmark table gives its size at each band and explains it.
Any difference between the trade page and the master dataset goes into a reconciliation log first. Nothing gets published while the two disagree silently. The log is what makes a number defensible six months later when a client asks where it came from.
One value gets ratified per trade and revenue band, and then the trade page, the CEO Report, and every calculator cite the same number. That's the difference between a benchmark and a claim. It also means correcting one figure corrects it everywhere it appears.
Sixteen trades have gross margin and overhead derived from the nearest comparable trade in the same dataset, because there is not enough direct data for them: Acoustic Ceiling, Bridge, Concrete Pumping, Environmental Remediation, HVAC, Irrigation, Landscaping, Low Voltage and AV, Precast Concrete, Process Piping, Roofing, Scaffolding, Siding, Tank and Vessel, Tile & Stone, and Tunnel. The page for each of those trades says so. The four bands above $25M continue the same curves beyond the range the surveys report. They have not been reconciled against the licensed CFMA Benchmarker, so they are published only at runoncfos.com, labelled as a modeled extension, and no CFOS target is published for them.
The client's actuals get read against the industry benchmark for their trade and band, which is the grid published at /construction-subcontractor-financial-benchmarks-by-trade. Three outside references support that grid and are cited under every table on this site. CFMA's 2024 Construction Financial Benchmarker Executive Summary, at https://cfma.org/articles/cfma-s-2-24-construction-financial-benchmarker-executive-summary, reports 21.8 percent gross profit margin, 11.8 percent SG&A and 6.3 percent net income before taxes across all respondents, with a best-in-class top quartile at 11.9 percent net income before taxes. CFMA's 2025 Construction Financial Benchmarker, at https://cfma.org/benchmarker, reports a 6.7 percent median net income before taxes and a 7.1 percent EBIT margin. Jones Maresca and Company's 2025 Performance Benchmarks, at https://www.jmco.com/articles/construction/performance-benchmarks-construction-companies/, publish specialty contractor gross margin of 15 to 25 percent and total indirect cost of 8 to 15 percent. Every net profit figure on this site is stated before taxes. Because net here is calculated as gross margin minus overhead, it is also before interest and other income and expense, which CFMA's net income before taxes includes, so a reported net can run lower. The note under each table explains the difference. Those figures describe the middle of the market rather than a target. The trade and band benchmark tells you where you stand next to your peers, and the CFOS target sits above it, because SPM holds a 10 percent net profit minimum before taxes as the floor for a business that funds itself.
FLAT MONTHLY FEE. NO SURPRISES.
Three tiers, priced by your trailing twelve month revenue. Which one you're in depends on how much of the work you want off your desk. No hourly billing. No payroll. The one-time onboarding fee is right here in the table.
| Last 12 months revenue | Monthly fee | One-time onboarding |
|---|---|---|
| Up to $1M | $1,900 to $2,900 | $1,000 |
| $1M to $3.5M | $2,600 to $3,900 | $1,500 |
| $3.5M to $6.5M | $3,800 to $5,700 | $3,000 |
| $6.5M to $9.5M | $5,100 to $7,100 | $4,500 |
| $9.5M to $12.5M | $6,100 to $8,500 | $6,000 |
| $12.5M to $15.5M | $7,400 to $11,000 | $7,500 |
| $15.5M to $18.5M | $9,400 to $13,500 | $9,000 |
| $18.5M+ | Quoted individually | Quoted individually |
The onboarding fee covers migrating your books back to the start of your last taxable year and getting you fully operational in 60 days. It's billed once, with your first invoice. It's the same for all three tiers. Your first month is prorated, and your monthly engagement starts on the first of the first full month.
Range reflects the three tiers below. Which one you're in depends on how much of the work you want off your desk. No payroll. No hidden line items. The onboarding fee is right here in the table.
You stop guessing.
You get the CFO work. Job costing built against the way you estimate, a 13 week cash forecast, monthly WIP, and a meeting every month that ends in decisions and never in a report.
Your bookkeeper still does the books.
You stop touching the books.
Everything in Core, and we run the bookkeeping and the controllership as well. Your office stops answering coding questions and stops chasing a reconciliation on the last day of the month.
We do the books. No payroll.
Every job shows its margin while it's still running.
Everything in Executive, plus the job costing and WIP platform set up, loaded with your cost codes, and managed for you every month. You never have to learn it.
We do the books, the job costing, and the software. No payroll.
