What can a small roofing contractor earn?
Illustrative case · California residential asphalt-shingle replacement contractor with a licensed subcontract installation crew and one employed repair/logistics technician · California, United States; no city or real premises selected
Explore this business · Profitability and payback
In the base first year, 51 completed roofs and 162 repairs produce $886,500 revenue and $172,708 EBITDA after paid owner work. Net income is $114,110, and cash after debt and working-capital movements grows by $107,810. These are different measures; the downside remains loss-making and needs extra funding.
What drives revenue in this case?
Revenue is completed roofs × contract price plus completed repair visits × visit price. The standard replacement is $15,000 and the repair visit $750. The base order target is six roofs in a nominal steady month, adjusted for launch ramp and assumed demand seasonality. January/December orders are lower; wet-month repairs have higher weights. These are explicit operating hypotheses, not a California weather or demand forecast.
A roof waiting in weather backlog produces no revenue. The crew has 20 nominal days per month before safe-weather reductions; each standard roof needs two crew days. Owner oversight and employee logistics consume six hours each per completed roof. Repair calls use the remaining employee and owner capacity, so adding a second sales stream does not create unlimited revenue. Validate prices using actual quotes and conversion/collection records, not a national shingle statistic.
How does job contribution become business profit?
| Line | Amount | Definition |
|---|---|---|
| Contract revenue | $15,000 | Recognized on completion; booking deposit already forms part of this amount |
| Materials incl. procurement tax/delivery | $4,013 | Supplier advance timing does not change total material expense |
| Subcontract crew | $3,600 | Installation/tearoff labor and own equipment; no materials |
| Disposal and permits | $650 + $250 | Distinct supplier/authority allowances |
| Payment and variable lead fees | $405 | Revenue-based immediate cash expenses |
| Expected callback provision | $225 | Expensed now, paid the following month |
| Job contribution | $5,857 | Available for employed labor, overhead, debt and tax |
The contribution margin is 39.0%. Monthly fixed cost is $18,041 including gross owner salary $5,500, technician payroll, employer burdens and recurring operating commitments. An attractive job margin is not the owner’s income and does not establish positive annual earnings. BLS national roofer pay is a comparison for one labor assumption, not evidence of a subcontract quote. BLS wage reference.
EBITDA subtracts fixed operating costs from contribution. Depreciation reduces accounting profit, interest reduces pretax income, and the modeled positive-income tax reduces net income. Debt principal reduces cash but never EBITDA or net income. Customer deposits and loan proceeds are not additional sales.
| Year | Revenue | EBITDA | Net income | Cash change | Ending cash |
|---|---|---|---|---|---|
| 1 | $886,500 | $172,708 | $114,110 | $107,810 | $167,810 |
| 2 | $1,095,750 | $258,284 | $180,689 | $182,320 | $350,130 |
| 3 | $1,132,500 | $268,335 | $189,592 | $189,570 | $539,700 |
| 4 | $1,183,500 | $283,485 | $201,502 | $199,743 | $739,443 |
| 5 | $1,248,750 | $303,727 | $217,292 | $216,735 | $956,178 |
What changes when the case disappoints?
| Case | Completed Year 1 work | Year 1 revenue | Year 1 EBITDA | Minimum cash | Extra funding | Equity recovery |
|---|---|---|---|---|---|---|
| Downside | 34 roofs / 120 repairs | $558,000 | −$27,596 | −$129,471 | $129,471 | Not recovered within 60 months |
| Base | 51 roofs / 162 repairs | $886,500 | $172,708 | $42,888 | $0 | Month 8 |
| Upside | 69 roofs / 199 repairs | $1,267,148 | $396,798 | $60,000 | $0 | Month 5 |
Downside steady targets are four roofs and twelve repairs, selling prices are 93.0% of base and job cash budgets 112.0% of base. It has fewer safe crew days, a weather closure, full material prepayment and half of the post-deposit roof invoice collected two months after completion. Fixed staff are retained. Cash first turns negative in month 4 and hits its trough in month 56. Continuing without new capital is not feasible.
Upside targets eight roofs and twenty repairs, with better price/cost assumptions and quicker collection. The single crew and employee-hour constraints still apply. Month 60 retains 23 unfinished roofs: strong sales do not authorize unsafe days or prove an expandable operation. Promising those schedules without a second verified crew would contradict the capacity case.
When does the owner recover the initial investment?
Recovery is the first month when cumulative net cash generated after taxes, full debt service and working-capital movements equals the scenario’s opening owner cash equity. The base owner contribution is $40,766 and reaches that test in month 8. Borrowing proceeds, the opening cash reserve and truck sale proceeds are excluded from generated cash. The business does not make additional owner distributions in the model; recovery is a modeled capacity to return equity, not an actual payout.
Downside never reaches equity recovery within 60 months. Its shortage of $129,471 is in addition to opening owner funds and debt, so a larger reserve alone does not fix weak operating contribution. The base EBITDA/debt-service ratio for Year 1 is 11.85x; this explicitly uses EBITDA before income tax and working capital. It is not a bank’s universal DSCR definition or approval threshold.
What can the working owner take home?
Year 1 gross working-owner compensation is $66,000, plus an employer-cost budget borne by the corporation. It is already deducted before EBITDA, so adding it back as free cash would overstate profit. Payroll withholding and the owner’s personal taxes are outside this company model. The employee receives assumed gross annual pay of $58,240; the $55,440 national roofer median is dated May 2025 and does not establish local hiring conditions.
Before committing to the case, test higher insurance, slower collection, lost bids and scope creep separately. Keep completion photos, approved change orders, supplier receipts and callback history. If signed quotes cannot support contribution near the case allowance, redesign the price/mix before reducing owner pay to make the spreadsheet look viable.
Compare the monthly cash path
| Month | Base | Downside | Upside |
|---|---|---|---|
| 1 | $48,378 | $41,805 | $61,887 |
| 2 | $43,064 | $19,844 | $63,874 |
| 3 | $42,888 | $2,911 | $76,335 |
| 4 | $47,524 | −$13,184 | $99,894 |
| 5 | $56,540 | −$26,518 | $129,764 |
| 6 | $70,955 | −$32,388 | $164,959 |
| 7 | $88,374 | −$38,091 | $205,466 |
| 8 | $106,211 | −$37,330 | $246,456 |
| 9 | $125,902 | −$32,322 | $283,563 |
| 10 | $144,182 | −$27,455 | $315,778 |
| 11 | $158,487 | −$18,894 | $334,902 |
| 12 | $167,810 | −$17,368 | $348,113 |
Read all sixty monthly balances
| Month | Base | Downside | Upside |
|---|---|---|---|
| 1 | $48,378 | $41,805 | $61,887 |
| 2 | $43,064 | $19,844 | $63,874 |
| 3 | $42,888 | $2,911 | $76,335 |
| 4 | $47,524 | −$13,184 | $99,894 |
| 5 | $56,540 | −$26,518 | $129,764 |
| 6 | $70,955 | −$32,388 | $164,959 |
| 7 | $88,374 | −$38,091 | $205,466 |
| 8 | $106,211 | −$37,330 | $246,456 |
| 9 | $125,902 | −$32,322 | $283,563 |
| 10 | $144,182 | −$27,455 | $315,778 |
| 11 | $158,487 | −$18,894 | $334,902 |
| 12 | $167,810 | −$17,368 | $348,113 |
| 13 | $173,133 | −$16,184 | $359,949 |
| 14 | $170,930 | −$24,969 | $367,049 |
| 15 | $179,956 | −$39,864 | $395,775 |
| 16 | $203,582 | −$50,706 | $435,319 |
| 17 | $222,969 | −$76,222 | $477,888 |
| 18 | $242,185 | −$62,770 | $521,040 |
| 19 | $263,987 | −$55,585 | $564,191 |
| 20 | $286,793 | −$54,876 | $607,314 |
| 21 | $308,641 | −$50,297 | $648,442 |
| 22 | $326,932 | −$45,971 | $680,773 |
| 23 | $341,237 | −$37,452 | $699,479 |
| 24 | $350,130 | −$36,477 | $712,298 |
| 25 | $355,022 | −$35,851 | $724,175 |
| 26 | $361,731 | −$45,193 | $740,904 |
| 27 | $372,833 | −$57,471 | $770,211 |
| 28 | $387,465 | −$69,574 | $809,323 |
| 29 | $407,089 | −$75,779 | $851,461 |
| 30 | $428,867 | −$75,499 | $894,208 |
| 31 | $450,655 | −$75,221 | $936,927 |
| 32 | $473,449 | −$74,944 | $979,645 |
| 33 | $494,277 | −$70,797 | $1,020,367 |
| 34 | $515,379 | −$67,029 | $1,052,267 |
| 35 | $531,815 | −$59,067 | $1,071,039 |
| 36 | $539,700 | −$58,650 | $1,083,886 |
| 37 | $544,566 | −$58,598 | $1,095,778 |
| 38 | $551,249 | −$68,515 | $1,112,050 |
| 39 | $564,717 | −$81,366 | $1,140,912 |
| 40 | $581,480 | −$93,915 | $1,179,578 |
| 41 | $601,088 | −$100,188 | $1,221,297 |
| 42 | $621,833 | −$103,922 | $1,263,598 |
| 43 | $646,418 | −$103,989 | $1,305,898 |
| 44 | $670,753 | −$104,428 | $1,348,170 |
| 45 | $693,948 | −$97,747 | $1,388,447 |
| 46 | $716,173 | −$93,680 | $1,419,900 |
| 47 | $731,586 | −$86,503 | $1,438,226 |
| 48 | $739,443 | −$79,685 | $1,450,626 |
| 49 | $744,268 | −$80,235 | $1,462,085 |
| 50 | $750,910 | −$90,743 | $1,477,898 |
| 51 | $766,732 | −$103,687 | $1,506,326 |
| 52 | $788,864 | −$116,780 | $1,544,560 |
| 53 | $809,569 | −$123,587 | $1,585,818 |
| 54 | $832,678 | −$127,913 | $1,627,659 |
| 55 | $858,372 | −$128,441 | $1,669,498 |
| 56 | $885,071 | −$129,471 | $1,711,309 |
| 57 | $910,810 | −$123,318 | $1,751,125 |
| 58 | $932,992 | −$119,335 | $1,782,117 |
| 59 | $948,364 | −$112,759 | $1,799,982 |
| 60 | $956,178 | −$106,533 | $1,811,921 |
Download all scenario cash values (CSV). This educational case export is separate from the planned personalized Excel model.
Sources and scope
- BLS Occupational Outlook Handbook: Roofers · Checked 2026-10-04 · National May 2025 occupational wage; excludes self-employed and is not a California wage quote.
- Illustrative planning case and methodology · Checked 2026-10-04 · All selling prices, demand, rent, job duration and unquoted budgets in this case are educational assumptions.
- CSLB home improvement contracts and payments · Checked 2026-10-04 · Ordinary California home-improvement contract; exceptions/contract forms need actual adviser review.
- CSLB list of all fees · Checked 2026-10-04 · Government license fees; insurance, bond premiums, rolling fee and entity advice excluded.
- Ford build and price: 2026 Ranger XL · Checked 2026-10-04 · Base new XL4 x 2 starting MSRP; excludes destination/delivery, taxes, title, registration; no dealer/upfit quote.
- GAF Timberline HDZ product specifications · Checked 2026-10-04 · Product coverage and selected color/region qualifications; no delivered price verified.
- Home Depot RIDGID R175 RNF roofing nailer · Checked 2026-10-04 · Listed unit price, Internet 207103085/SKU1001834140; no store selected; tax/freight/compressor excluded.
- Cal/OSHA Title 8 §1731 residential-type roofing · Checked 2026-10-04 · Residential replacement/tearoff, rule effective July 1,2025; actual site safety and rescue plan still required.
- SBA 7(a) loan uses · Checked 2026-10-04 · Current general allowed-use guidance; no applicant eligibility, rate, approval or fee quote.
- California Labor Code §2781 construction subcontract · Checked 2026-10-04 · Conditional classification test for construction subcontract relationships; not automatic independent-contractor status.
- CSLB workers compensation requirements · Checked 2026-10-04 · Active C-39 coverage and employer obligations; no insurance premium quote.