SWPPP is not sitework. It is not civil. It is a regulatory compliance trade with a completely different financial structure — feast-or-famine seasonal cash cycles driven by rain events rather than project schedules, a multi-site portfolio where per-site profitability is invisible inside a blended P&L, and BMP material costs that hit before billing events because compliance installations can't wait for pay app timing. A SWPPP contractor running 12 active sites across 6 GCs has 12 different billing structures, 12 different inspection schedules, and 12 different retainage situations simultaneously — and without C.F.O.S running the financial system across all of them, the profitable ones subsidize the losing ones until the owner has no idea which sites are actually making money.
This page is for you if: you're running $1M–$12M in SWPPP and erosion control work across multiple active sites, your blended margins look acceptable, and you're still always short on cash or discovering at year-end that certain sites lost money all year. SWPPP financial control requires per-site job costing — the blended P&L doesn't show you what you need to see. C.F.O.S builds the system that does.
SWPPP work operates on a financial structure that no other trade in construction shares. Revenue is triggered by rainfall and inspection events — not by project milestones or installation schedules. A dry quarter means minimal service calls, minimal BMP installations, minimal billing. A wet quarter means every site needs immediate response, material costs spike, labor costs spike, and billing follows 30–45 days later after the GC processes the service ticket. The business runs at the mercy of precipitation — and without a financial system built around that reality, the feast-or-famine cycle creates a permanent cash instability that shows up as a perpetual LOC balance and the nagging feeling that a strong month never actually improves the bank account.
Multi-site portfolio management is the second layer. A SWPPP contractor running 12 active construction sites doesn't have 12 identical contracts. They have 12 different GCs, 12 different billing structures, 12 different inspection frequencies, and 12 different retainage situations. The blended gross margin across all 12 looks acceptable — maybe 26–28%. But inside that blend, three sites are running at 38% margin and four sites are running at 14%. The 14% sites are losing money relative to what they should earn. The 38% sites are subsidizing them. Nobody knows because nobody has per-site job costing running.
The job disruption loop: A rain event hits Tuesday. Three sites need immediate BMP repair. Crew mobilizes Wednesday. Material purchased: $8,400 across three sites. Work complete Thursday. The service ticket goes into a folder. At month-end it gets invoiced. The GC processes it in their next AP cycle. Cash arrives 38 days after the work was done. Multiply that across 12 sites, 4 rain events per quarter, and a blended portfolio where 4 sites are losing money — and the cash problem compounds faster than any single fix can address it.
The math: A $3M SWPPP contractor with 12 active sites where 4 are running at 14% gross margin instead of the expected 26% is losing $36K–$48K per year on those four sites — money that flows invisibly from the profitable sites through the blended P&L and out of the business without a single flagged number. That is not a bad market. That is the absence of per-site job costing inside C.F.O.S.
These three problems are unique to SWPPP. No other trade in the specialty cluster has a rain-event-driven revenue cycle, a multi-site portfolio visibility problem of this scale, or BMP material costs that are deployment-triggered rather than schedule-triggered. Without C.F.O.S building the financial system specifically around SWPPP's structure, all three compound silently across the portfolio every year.
SWPPP revenue doesn't follow a construction schedule. It follows precipitation. A dry spring means minimal BMP installation service calls, minimal site inspections triggering corrective action, minimal material deployment. The business costs continue — vehicles, equipment, labor overhead, insurance — while revenue compresses. A wet spring means every active site needs immediate response: silt fence repair, inlet protection replacement, sediment basin cleanout, slope stabilization. Labor costs spike. Material costs spike. Billing goes out after each event with 30–45 day collection lag.
The financial problem is not the weather variability itself — it's the absence of a cash model built around it. A SWPPP contractor who knows their historical revenue by month across a 3-year period can model the seasonal pattern well enough to plan minimum cash reserves for dry periods and expected LOC draws when material costs spike ahead of billing recovery. Without that model, every dry quarter feels like a business problem and every wet quarter feels like a windfall that still doesn't fix the bank account.
C.F.O.S builds the seasonal revenue model from historical patterns — monthly revenue distribution, average BMP deployment cost per rain event, typical service call frequency by season — and maps it into the 13-week forecast so the cash position is managed around the weather cycle instead of discovered after each quarter ends.
SWPPP portfolios are fundamentally different from single-project trade work. A masonry contractor has 3–5 active jobs. A SWPPP contractor has 8–20 active sites — each a different size, different GC, different contract structure, different inspection frequency, and different BMP requirement profile. The blended P&L for the portfolio looks like a single business. It is actually 8–20 individual mini-contracts running simultaneously with very different financial profiles.
The losing sites don't announce themselves. A site with a difficult GC who holds pay apps, a high BMP replacement frequency due to site conditions, and a low contract value relative to mobilization cost can run at 10–12% gross margin for 18 months while the profitable sites in the portfolio make the blended number look fine. The owner never sees the losing site because there's no per-site job costing. The losing site's cost and revenue are mixed into the portfolio total. The cross-subsidy runs until the site closes and the final reconciliation shows it was underwater the whole time.
Per-site job costing in ControlQore solves this specifically. Each active site is a separate job — BMP material cost allocated to the site, labor allocated to the site, revenue tracked by site. Monthly job cost review shows each site's margin individually. The GC who holds pay apps on a $45K annual contract while requiring $8K of BMP material per quarter gets identified as a money-losing relationship in month three — not at site closeout 18 months later.
Best management practice installations are compliance-driven — they happen when a regulatory inspection triggers a corrective action notice, when a storm event damages existing controls, or when the SWPPP plan requires periodic BMP upgrades as construction phases change. These events do not occur on a billing schedule. They occur when conditions require them. The material cost is immediate. The billing event comes 30–45 days later after the service ticket is submitted and the GC processes it.
On a portfolio of 12 active sites, BMP material deployment after a significant rain event can run $25K–$60K in a single week across all sites. That entire amount is paid out before a single service ticket has been submitted for the event. If the GC's billing cut-off was three days ago, that material cost won't even be billed until next month — adding another 30 days to an already 30-45 day collection cycle.
The C.F.O.S fix is a stored materials provision in SWPPP service contracts — not standard but negotiable on larger contracts — combined with 48-hour service ticket submission on every BMP deployment event. The stored materials provision recovers stockpiled BMP material at delivery. The 48-hour invoicing process eliminates the 30-day batch billing lag that adds an entire additional collection cycle to every rain event response.
SWPPP cash problems get blamed on weather variability, difficult GCs, and the nature of compliance work. Those are real — but they are not why a $3M SWPPP contractor is perpetually short on cash despite a full portfolio. Here are the three wrong diagnoses.
Dry years reduce SWPPP revenue. But a contractor who runs out of cash every dry quarter without a cash model built around seasonal variability has a financial system problem, not a weather problem. Historical precipitation patterns are knowable. Average monthly revenue by season is calculable from 2–3 years of history. A cash model built around those patterns shows dry quarter cash gaps 8–10 weeks in advance — enough time to draw the LOC intentionally, defer non-critical expenses, or adjust staffing before the gap hits.
→ Real problem: No seasonal revenue model built from historical patterns — weather variability arrives as a surprise instead of a planned event.
Blended margins hide what matters. A 26% blended gross margin across 12 sites where 4 are running at 12% and 8 are running at 32% is not a 26% margin business — it is a business where one-third of its sites are significantly underperforming while the other two-thirds carry them. The winning sites can't carry the losers indefinitely. When the portfolio rotates and new sites come on, the losers might represent a larger share. Per-site visibility is the only thing that shows the real picture.
→ Real problem: No per-site job costing — blended portfolio margin hiding underperforming sites that should be repriced, restructured, or declined.
BMP deployments are event-driven but not completely unpredictable. Historical data on a site's BMP replacement frequency, combined with weather forecast monitoring, gives a reasonable 30-day horizon for material cost exposure. More importantly, 48-hour service ticket submission and stored materials provisions are billing structure solutions that work regardless of whether the event was predicted. The material cost doesn't have to be predictable for the billing to be fast.
→ Real problem: No 48-hour service ticket process and no stored materials provision — BMP material costs adding a 30-day batch billing lag to an already 45-day collection cycle.
C.F.O.S is the financial operating system built around SWPPP's specific structure — a portfolio of sites with individual financial profiles, event-driven revenue, and compliance-triggered material costs. Without this system running every month, the feast-or-famine cash cycle compounds with multi-site cross-subsidization and billing lag into a business that looks profitable in the aggregate and feels perpetually stressed in the bank account. SWPPP profitability only exists when C.F.O.S is running per-site job costing, seasonal forecasting, and billing velocity as a connected monthly system — not as separate problems the owner manages by feel.
Two service tiers priced by trailing twelve-month revenue. Core Financial covers the full C.F.O.S system — ControlQore setup, per-site job costing, bookkeeping, and WIP. Executive Financial adds monthly CFO strategy meetings, controllership, and ongoing advisory. No payroll. 60-day onboarding. No scope gaps.
| Revenue Band | Core Financial | Executive Financial |
|---|---|---|
| Under $1M | $1,900/mo | $2,900/mo |
| $1M–$3M | $2,600/mo | $3,600/mo |
| $4M–$6M | $3,800/mo | $5,500/mo |
| $7M–$9M | $5,100/mo | $6,900/mo |
| $10M–$12M | $6,100/mo | $8,500/mo |
| $13M+ | Quoted | Quoted |
Three stacked problems unique to SWPPP. Revenue is triggered by rain events not project schedules — dry periods compress revenue while overhead continues, creating seasonal cash gaps that arrive without a model to predict them. Multi-site portfolios hide per-site profitability in the blended margin — a $3M contractor can have 4 sites running at 12% gross margin while 8 sites run at 32%, subsidizing the losers invisibly. And BMP material costs hit before billing events because compliance installations can't wait for pay app timing, adding 30–45 days of material carry on every rain event response.
Per-site job costing in ControlQore — each active site as a separate job with BMP material, labor, and revenue tracked individually. Seasonal revenue model from 2–3 years of historical data mapped into the 13-week forecast. 48-hour service ticket submission enforced on every BMP deployment event. Stored materials provision negotiated on larger contracts. Monthly per-site profitability review so underperforming sites are identified and repriced at renewal instead of subsidized until closeout.
Commercial SWPPP and erosion control subcontractors doing $1M–$12M. Core Financial starts at $1,900/month. Executive Financial starts at $2,900/month. Both priced by trailing twelve-month revenue. Onboarding takes 60 days. No payroll. No residential.
Core Financial includes ControlQore setup, per-site job costing across your active portfolio, full-service bookkeeping, and bank reconciliations. Executive Financial adds monthly CFO strategy meetings, controllership, and strategic accountability. No payroll. No scope gaps.
60 days. Books migrated to the start of your last taxable year, ControlQore set up with per-site job costing across your active portfolio. Fully operational in two months.
You cannot self-assemble a fix from knowing the problem. The financial system has to be built, run monthly, and connected to the other five layers of C.F.O.S — or seasonal cash gaps, cross-site subsidization, and BMP billing lag keep compressing margin across every site in your portfolio. Schedule a free call and we'll show you what that system looks like built around your SWPPP business.
SCHEDULE A FREE CALL →