Job costing software for SWPPP and erosion control contractors
SWPPP and erosion control bills install, then monthly maintenance and inspections. CFOS for QuickBooks costs each trip, repair and inspection to the job. A finished job can't keep spending unnoticed.
We email you when CFOS for QuickBooks opens, plus a few updates before then. Your address stays with Run On CFOS. One click unsubscribes.
30 days free, a 90-day money-back guarantee, and cancel anytime. It opens January 2027. We email you the day it opens.
How SWPPP bills and where the money leaks
A SWPPP contract usually has two parts. You install the controls, such as silt fence, inlet protection, construction entrances, wattles and stabilization, and that's a lump sum or unit price line. Then you maintain and inspect them on a monthly or per-visit basis for as long as the permit is open.
The leak is that install bills early and maintenance spends for a long time. The last pay app can go out and the job keeps costing you inspections, repairs after storms, BMP removal and a trip to reseed. If your WIP calls that job finished, those costs are a surprise on a job that stopped billing a year ago.
Repairs are the other problem. A plumber cuts your fence to trench, or a storm washes out an inlet, and the inspector writes the deficiency against your scope. There's often no pay item for the fix, so a T&M ticket signed by the GC is how you get paid for it.
How SWPPP costs split and what CFOS tracks
The costs are small crews, trucks, materials like fence, stakes, wattles, stone and seed, and a lot of windshield time. Install is made of materials and labor. Maintenance is mostly labor, truck time and travel, and it's hard to see because each visit is small.
CFOS reads your jobs and cost codes from QuickBooks Online and compares actual cost to the estimate on each line. If you set up install, maintenance, inspections and removal as separate cost codes, each one has its own budget and actual. You can see whether the maintenance you priced is what you're spending.
Equipment daily rates charge your trucks and skid steers to the job on the days they're on a daily. Field time is approved by the PM and goes to QuickBooks Payroll. The hours on each repair trip go on the right job.
The workflow from the field to the office
The crew lead completes a daily for each visit with the crew, the equipment and photos of the controls before and after. A repair caused by someone else's work goes on a T&M ticket on that daily. The GC signs it on site, and it becomes a change order draft for the next pay app.
Vendor bills for materials go to your bills inbox by email and are coded to the job. Because every visit has a daily, you have a record of what you did and when. That record helps when an inspector or GC questions a deficiency.
For billing, you set up the schedule of values with install as one line and monthly maintenance as recurring lines. CFOS lays out the G702 and G703 each period, with retainage tracked. Pay app due dates send reminders to the PM so a small monthly bill isn't forgotten. The change orders page covers how the extras flow.
What the owner sees every month
Each month, cost to complete is where SWPPP jobs get honest. The PM enters what's left to spend on maintenance, inspections and removal, and you approve it. The WIP schedule then shows whether the job has billed more than it has earned, so a job that looks done still counts its remaining cost.
The CEO Report grades your gross margin, overhead and net profit before taxes against the published average for SWPPP and erosion control and the CFOS target for your size. The 13 week cash forecast marks the lowest week from your QuickBooks and pay apps. Small monthly invoices add up. The forecast treats them like any other money coming in.
AR aging and a collections list flag the small unpaid maintenance bills that tend to age unnoticed. You can ask Claude or ChatGPT about any job. The answer stays within your permissions.
SWPPP and erosion control cost codes, matched to QuickBooks
Each group below is one set of cost codes in CFOS. Bills, time and equipment post to them. QuickBooks keeps the books underneath, so your bookkeeper sees the same numbers.
| Cost code group | What goes on it |
|---|---|
| Plan and permit support | SWPPP plan writing, notice of intent support and permit paperwork for the job. |
| Mobilization | Each trip of crew and truck to the job, including trips when the start date moved. |
| Silt fence and perimeter controls | Fence, stakes, posts, wattles and labor to install the perimeter. |
| Inlet and outlet protection | Inlet protection, rock outlets, check dams and the stone that goes with them. |
| Construction entrance | Stone, geotextile, installation, and the replenishing when it fills. |
| Stabilization and seeding | Temporary cover, seed, mulch, blankets and the reseed trip. |
| Monthly maintenance | Scheduled visits, repairs, sediment cleanout and travel time by month. |
| Inspections and reporting | Inspection visits, after-storm inspections and written reports. |
| Repairs and reinstall | Repairs caused by other trades or storms, tied to the signed T&M ticket. |
| Removal and closeout | BMP removal, final stabilization check and closeout paperwork. |
How SWPPP and erosion control contractors do, by revenue
Each row shows the all-trade average, this trade's average and the CFOS target where one is published. These are the numbers your own job costing gets graded against. Net profit is before taxes in every row.
| Revenue | Overhead | Gross margin | Net profit, before taxes |
|---|---|---|---|
| $1M to $5M | 15.1% all-trade average 14% SWPPP and erosion control 14.1% CFOS target | 22.1% all-trade average 24% SWPPP and erosion control 25% CFOS target | 7% all-trade average 10% SWPPP and erosion control 11% CFOS target |
| $5M to $10M | 14.1% all-trade average 13% SWPPP and erosion control 13.1% CFOS target | 23.4% all-trade average 26% SWPPP and erosion control 26% CFOS target | 9.4% all-trade average 13% SWPPP and erosion control 12.9% CFOS target |
| $10M to $25M | 13.1% all-trade average 12% SWPPP and erosion control 12.1% CFOS target | 24.6% all-trade average 27% SWPPP and erosion control 27.1% CFOS target | 11.5% all-trade average 15% SWPPP and erosion control 15% CFOS target |
| $25M to $50M | 12.1% all-trade average 11% SWPPP and erosion control | 25.7% all-trade average 29% SWPPP and erosion control | 13.7% all-trade average 18% SWPPP and erosion control |
Gross margin and overhead come from figures CFMA, Jones Maresca and other sources publish by trade and size. Net profit is computed, not surveyed: net profit = gross margin minus overhead. Nothing comes out for taxes, interest or other income and expense, so it is a before tax figure, on the same basis as CFMA's net income before taxes.
CFMA's 2025 medians are 7.1 percent before interest and taxes and 6.7 percent net income before taxes. Gross margin minus overhead leaves out interest and other income and expense, so a figure here can come in a little above or below a reported net income on the same business.
Above the $10M to $25M band the gross margin and overhead rows are a modeled extension of the same curves. They have not been reconciled against the licensed CFMA Benchmarker, so read those bands as a model and not as a survey result.
Problems SWPPP and erosion control contractors write to us about
Get on the list for the day it opens
30 days free, a 90-day money-back guarantee, and cancel anytime.
We email you when CFOS for QuickBooks opens, plus a few updates before then. Your address stays with Run On CFOS. One click unsubscribes.
30 days free, a 90-day money-back guarantee, and cancel anytime. It opens January 2027. We email you the day it opens.
What SWPPP and erosion control contractors ask
How do I bill install and monthly maintenance on the same job?
Set up the schedule of values with install as a lump sum or unit price line and maintenance as separate recurring lines. CFOS builds the pay app each period from them. Retainage and revisions are tracked on each one.
Can CFOS show me a finished job that's still costing money?
Yes. Cost by cost code keeps updating after the last pay app, and the monthly cost to complete and WIP schedule include what's left. A job with maintenance and removal still ahead won't look finished in your numbers.
How do I get paid for fence that another trade damaged?
Put it on the daily as a T&M ticket with photos and have the GC sign on site. It becomes a change order draft that goes on the next pay app. If it can't be billed, you still see the cost on its own code.
Can I track inspection visits separately from repairs?
Yes. Set up inspections, maintenance and repairs as separate cost codes. The daily for each visit tells CFOS which code the time and truck belong to. You compare what you spent to what you budgeted for each.
Can a small crew with one truck use this?
No. Field time entry works in a phone browser, and a crew lead can fill out a daily at the truck. Roles and permissions keep each person to the jobs and numbers they need.
- Job costing software that runs on QuickBooks
- One price. Every module. Priced by your revenue.
- Use all of it, or just the part you need
- Job costing software that runs on QuickBooks
- One price. Every module. Priced by your revenue.
- Use all of it, or just the part you need
- SWPPP and erosion control benchmarks
QuickBooks is a trademark of Intuit Inc. Run On CFOS isn't affiliated with Intuit.