{"product_id":"plumbing-hvac-owner-makes","title":"How Much Plumbing And HVAC Owners Make: $100K Salary Plus Profit","description":"\u003cbr\u003e\u003cdiv class=\"container_new_design\"\u003e\n\u003cdiv class=\"text-section text-1_new_design\"\u003e\n\u003cdiv class=\"line_top\"\u003e\u003c\/div\u003e\n\u003cp\u003eYou’re deciding whether ownership beats field wages, so separate booked revenue from cash you can safely pull out This five-year model includes a \u003cstrong\u003e$100,000 owner\/general manager salary\u003c\/strong\u003e, EBITDA from \u003cstrong\u003e$145,000 in Year 1\u003c\/strong\u003e to \u003cstrong\u003e$4402 million in Year 5\u003c\/strong\u003e, payroll, marketing, materials, fleet costs, and reserves It excludes personal tax advice and does not treat profit as automatic distributions\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\u003cdiv class=\"image-section image-1_new_design\" id=\"main_article_image\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003csection class=\"fml-owner-metric-cards\" aria-label=\"Plumbing and HVAC\"\u003e\u003cdiv class=\"metric-grid\"\u003e\n\u003carticle class=\"metric-card is-green\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Year 1 uses $100k owner salary plus $145k EBITDA; actual take-home drops after taxes, capex, debt, and reserves.\"\u003e\u003cimg class=\"metric-icon\" src=\"\/cdn\/shop\/files\/fml-owner-income-kpi-owner-income.svg\" alt=\"Owner income icon\" loading=\"lazy\"\u003e\u003c\/span\u003e\u003cspan\u003eOwner income\u003c\/span\u003e\u003cstrong class=\"metric-value\" tabindex=\"0\" data-tooltip=\"Year 1 uses $100k owner salary plus $145k EBITDA; actual take-home drops after taxes, capex, debt, and reserves.\"\u003e$245k\u003c\/strong\u003e\u003c\/article\u003e\u003carticle class=\"metric-card\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Year 1 EBITDA margin comes from $145k EBITDA on about $835k revenue, using model wages and overhead; it is a planning estimate.\"\u003e\u003cimg class=\"metric-icon\" src=\"\/cdn\/shop\/files\/fml-owner-income-kpi-net-margin.svg\" alt=\"Net margin icon\" loading=\"lazy\"\u003e\u003c\/span\u003e\u003cspan\u003eNet margin\u003c\/span\u003e\u003cstrong class=\"metric-value\" tabindex=\"0\" data-tooltip=\"Year 1 EBITDA margin comes from $145k EBITDA on about $835k revenue, using model wages and overhead; it is a planning estimate.\"\u003e17.4%\u003c\/strong\u003e\u003c\/article\u003e\u003carticle class=\"metric-card\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"This is the Year 1 modeled service revenue that supports the base staffing plan and $145k EBITDA; mix and pricing can shift it.\"\u003e\u003cimg class=\"metric-icon\" src=\"\/cdn\/shop\/files\/fml-owner-income-kpi-revenue-target.svg\" alt=\"Revenue for target pay icon\" loading=\"lazy\"\u003e\u003c\/span\u003e\u003cspan\u003eRevenue for target pay\u003c\/span\u003e\u003cstrong class=\"metric-value\" tabindex=\"0\" data-tooltip=\"This is the Year 1 modeled service revenue that supports the base staffing plan and $145k EBITDA; mix and pricing can shift it.\"\u003e$835k\u003c\/strong\u003e\u003c\/article\u003e\u003carticle class=\"metric-card\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Six hires, fleet capex, and month-5 cash trough of $673k make the first year heavy despite month-6 breakeven.\"\u003e\u003cimg class=\"metric-icon\" src=\"\/cdn\/shop\/files\/fml-owner-income-kpi-business-difficulty.svg\" alt=\"Business difficulty icon\" loading=\"lazy\"\u003e\u003c\/span\u003e\u003cspan\u003eBusiness difficulty\u003c\/span\u003e\u003cstrong class=\"metric-value\" tabindex=\"0\" data-tooltip=\"Six hires, fleet capex, and month-5 cash trough of $673k make the first year heavy despite month-6 breakeven.\"\u003eHard\u003c\/strong\u003e\u003c\/article\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eWhat could you safely pay yourself?\n\u003c\/span\u003e\u003c\/h2\u003e\n\u003csection class=\"fml-owner-calculator\" aria-label=\"Owner Income Calculator\" data-locale=\"en-US\" data-currency=\"USD\" data-default-scenario=\"base\" data-export-filename=\"Owner Income Calculator.xlsx\" data-source-site-name=\"Financial Models Lab\" data-source-site-url=\"https:\/\/financialmodelslab.com\" data-source-page-title=\"Owner Income Calculator\" data-note-title=\"Planning note:\" data-note-text=\"Research-based planning estimate only; not guaranteed salary, tax advice, or owner distribution advice.\"\u003e\u003cdiv class=\"fml-owner-card\"\u003e\n\u003cheader class=\"fml-owner-header\"\u003e\u003cdiv class=\"fml-owner-heading\"\u003e\n\u003cp class=\"fml-owner-eyebrow\"\u003eOwner income calculator\u003c\/p\u003e\n\u003cp class=\"fml-owner-intro\"\u003eEstimate owner take-home and the target-pay gap from revenue, margin, costs, reserves, and target pay.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-scenarios\" aria-label=\"Income scenario presets\"\u003e\n\u003cbutton class=\"fml-owner-scenario\" type=\"button\" data-scenario=\"low\"\u003eLow\u003c\/button\u003e\u003cbutton class=\"fml-owner-scenario is-active\" type=\"button\" data-scenario=\"base\"\u003eBase\u003c\/button\u003e\u003cbutton class=\"fml-owner-scenario\" type=\"button\" data-scenario=\"high\"\u003eHigh\u003c\/button\u003e\n\u003c\/div\u003e\u003c\/header\u003e\u003cdiv class=\"fml-owner-layout\"\u003e\n\u003cform class=\"fml-owner-inputs\"\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eMonthly revenue\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Use a normal month, not a peak. Set this from the mix of repair, installation, maintenance, and emergency work. Year 1 rates are 120, 110, 90, and 180 per billable hour.\"\u003ei\u003cspan role=\"tooltip\"\u003eUse a normal month, not a peak. Set this from the mix of repair, installation, maintenance, and emergency work. Year 1 rates are 120, 110, 90, and 180 per billable hour.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-money\"\u003e\n\u003cspan\u003e$\u003c\/span\u003e\u003cinput data-owner-field=\"monthlyRevenue\" data-owner-kind=\"money\" data-owner-label=\"Monthly revenue\" data-owner-note=\"Use a normal month, not a peak. Set this from the mix of repair, installation, maintenance, and emergency work. Year 1 rates are 120, 110, 90, and 180 per billable hour.\" data-low=\"55000\" data-base=\"80000\" data-high=\"110000\" name=\"monthlyRevenue\" type=\"text\" inputmode=\"numeric\" value=\"80,000\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eGross margin\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Share of revenue left after direct labor, materials, and subcontracted work.\"\u003ei\u003cspan role=\"tooltip\"\u003eShare of revenue left after direct labor, materials, and subcontracted work.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-percent\"\u003e\n\u003cinput data-owner-field=\"grossMargin\" data-owner-kind=\"percent\" data-owner-label=\"Gross margin\" data-owner-note=\"Share of revenue left after direct labor, materials, and subcontracted work.\" name=\"grossMargin\" type=\"range\" min=\"0\" max=\"100\" step=\"1\" data-low=\"68\" data-base=\"78\" data-high=\"82\" value=\"78\"\u003e\u003coutput\u003e78%\u003c\/output\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eLabor cost\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Monthly payroll and field labor before owner pay.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly payroll and field labor before owner pay.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-money\"\u003e\n\u003cspan\u003e$\u003c\/span\u003e\u003cinput data-owner-field=\"laborCost\" data-owner-kind=\"money\" data-owner-label=\"Labor cost\" data-owner-note=\"Monthly payroll and field labor before owner pay.\" data-low=\"28000\" data-base=\"31000\" data-high=\"42000\" name=\"laborCost\" type=\"text\" inputmode=\"numeric\" value=\"31,000\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eFixed overhead\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Recurring rent, utilities, software, insurance, office admin, and fleet overhead.\"\u003ei\u003cspan role=\"tooltip\"\u003eRecurring rent, utilities, software, insurance, office admin, and fleet overhead.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-money\"\u003e\n\u003cspan\u003e$\u003c\/span\u003e\u003cinput data-owner-field=\"fixedOverhead\" data-owner-kind=\"money\" data-owner-label=\"Fixed overhead\" data-owner-note=\"Recurring rent, utilities, software, insurance, office admin, and fleet overhead.\" data-low=\"7000\" data-base=\"7650\" data-high=\"8500\" name=\"fixedOverhead\" type=\"text\" inputmode=\"numeric\" value=\"7,650\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eMarketing\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Monthly advertising, lead gen, and sales support spend.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly advertising, lead gen, and sales support spend.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-money\"\u003e\n\u003cspan\u003e$\u003c\/span\u003e\u003cinput data-owner-field=\"marketing\" data-owner-kind=\"money\" data-owner-label=\"Marketing\" data-owner-note=\"Monthly advertising, lead gen, and sales support spend.\" data-low=\"4167\" data-base=\"6667\" data-high=\"10000\" name=\"marketing\" type=\"text\" inputmode=\"numeric\" value=\"6,667\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eDebt service\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Monthly loan payments or other required financing costs. Use 0 if none is modeled.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly loan payments or other required financing costs. Use 0 if none is modeled.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-money\"\u003e\n\u003cspan\u003e$\u003c\/span\u003e\u003cinput data-owner-field=\"debtService\" data-owner-kind=\"money\" data-owner-label=\"Debt service\" data-owner-note=\"Monthly loan payments or other required financing costs. Use 0 if none is modeled.\" data-low=\"0\" data-base=\"0\" data-high=\"0\" name=\"debtService\" type=\"text\" inputmode=\"numeric\" value=\"\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eTax reserve\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Percent of profit held back before owner distributions.\"\u003ei\u003cspan role=\"tooltip\"\u003ePercent of profit held back before owner distributions.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-percent\"\u003e\n\u003cinput data-owner-field=\"taxReserve\" data-owner-kind=\"percent\" data-owner-label=\"Tax reserve\" data-owner-note=\"Percent of profit held back before owner distributions.\" name=\"taxReserve\" type=\"range\" min=\"0\" max=\"45\" step=\"1\" data-low=\"28\" data-base=\"24\" data-high=\"18\" value=\"24\"\u003e\u003coutput\u003e24%\u003c\/output\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eReinvestment reserve\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Percent of profit kept for repairs, growth, working capital, and risk buffer.\"\u003ei\u003cspan role=\"tooltip\"\u003ePercent of profit kept for repairs, growth, working capital, and risk buffer.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-percent\"\u003e\n\u003cinput data-owner-field=\"reinvestmentReserve\" data-owner-kind=\"percent\" data-owner-label=\"Reinvestment reserve\" data-owner-note=\"Percent of profit kept for repairs, growth, working capital, and risk buffer.\" name=\"reinvestmentReserve\" type=\"range\" min=\"0\" max=\"35\" step=\"1\" data-low=\"14\" data-base=\"10\" data-high=\"5\" value=\"10\"\u003e\u003coutput\u003e10%\u003c\/output\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eTarget owner pay\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Monthly owner income goal used to size the target-pay gap.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly owner income goal used to size the target-pay gap.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-money\"\u003e\n\u003cspan\u003e$\u003c\/span\u003e\u003cinput data-owner-field=\"targetOwnerPay\" data-owner-kind=\"money\" data-owner-label=\"Target owner pay\" data-owner-note=\"Monthly owner income goal used to size the target-pay gap.\" data-low=\"6000\" data-base=\"8333\" data-high=\"12000\" name=\"targetOwnerPay\" type=\"text\" inputmode=\"numeric\" value=\"8,333\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/form\u003e\n\u003caside class=\"fml-owner-results\" aria-live=\"polite\"\u003e\u003cspan class=\"fml-owner-tag\"\u003eOwner income output\u003c\/span\u003e\u003cdiv class=\"fml-owner-metrics\"\u003e\n\u003cdiv class=\"fml-owner-metric is-primary\"\u003e\n\u003cspan class=\"fml-owner-metric-label\"\u003eOwner Income\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Monthly take-home after tax and reinvestment reserves.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly take-home after tax and reinvestment reserves.\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cstrong data-owner-output=\"monthlyOwnerIncome\"\u003e$11,275\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-metric\"\u003e\n\u003cspan class=\"fml-owner-metric-label\"\u003eNet Margin\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Owner income divided by monthly revenue.\"\u003ei\u003cspan role=\"tooltip\"\u003eOwner income divided by monthly revenue.\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cstrong data-owner-output=\"netProfitMargin\"\u003e14%\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-metric\"\u003e\n\u003cspan class=\"fml-owner-metric-label\"\u003eRevenue for Target Pay\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Monthly revenue needed to support the target owner pay.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly revenue needed to support the target owner pay.\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cstrong data-owner-output=\"revenueNeeded\"\u003e$74,286\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-metric is-target-gap is-positive\"\u003e\n\u003cspan class=\"fml-owner-metric-label\"\u003eTarget Pay Gap\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Owner income minus target owner pay. Negative means the target pay is not covered.\"\u003ei\u003cspan role=\"tooltip\"\u003eOwner income minus target owner pay. Negative means the target pay is not covered.\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cstrong data-owner-output=\"targetPayGap\"\u003e$2,942\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdl class=\"fml-owner-result-list\"\u003e\n\u003cdiv\u003e\n\u003cdt\u003eAnnual owner income\u003c\/dt\u003e\n\u003cdd data-owner-output=\"annualOwnerIncome\"\u003e$135,300\u003c\/dd\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdt\u003eProfit before reserves\u003c\/dt\u003e\n\u003cdd data-owner-output=\"profitBeforeReserves\"\u003e$17,083\u003c\/dd\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdt\u003eTax + reinvestment reserve\u003c\/dt\u003e\n\u003cdd data-owner-output=\"reserveAmount\"\u003e$5,808\u003c\/dd\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdt\u003eTarget pay gap\u003c\/dt\u003e\n\u003cdd data-owner-output=\"cashAfterTargetPay\"\u003e$2,942\u003c\/dd\u003e\n\u003c\/div\u003e\n\u003c\/dl\u003e\n\u003cdiv class=\"fml-owner-bridge\"\u003e\n\u003cdiv class=\"fml-owner-bar-row\" data-owner-bridge=\"revenue\"\u003e\n\u003cspan\u003eRevenue\u003c\/span\u003e\u003cdiv\u003e\u003ci style=\"--fml-owner-share: 100%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$80,000\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-bar-row\" data-owner-bridge=\"grossProfit\"\u003e\n\u003cspan\u003eGross profit\u003c\/span\u003e\u003cdiv\u003e\u003ci style=\"--fml-owner-share: 78%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$62,400\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-bar-row\" data-owner-bridge=\"operatingCosts\"\u003e\n\u003cspan\u003eOperating costs\u003c\/span\u003e\u003cdiv\u003e\u003ci style=\"--fml-owner-share: 57%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$45,317\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-bar-row\" data-owner-bridge=\"reserveAmount\"\u003e\n\u003cspan\u003eReserves\u003c\/span\u003e\u003cdiv\u003e\u003ci style=\"--fml-owner-share: 7%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$5,808\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-bar-row\" data-owner-bridge=\"ownerIncome\"\u003e\n\u003cspan\u003eOwner income\u003c\/span\u003e\u003cdiv\u003e\u003ci style=\"--fml-owner-share: 14%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$11,275\u003c\/b\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbutton class=\"fml-owner-export\" type=\"button\" data-owner-export\u003eEXPORT XLSX\u003c\/button\u003e\u003c\/aside\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-note\"\u003e\n\u003cspan class=\"fml-owner-note-icon\" aria-hidden=\"true\"\u003e!\u003c\/span\u003e\u003cp\u003e\u003cstrong\u003ePlanning note:\u003c\/strong\u003e Research-based planning estimate only; not guaranteed salary, tax advice, or owner distribution advice.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003cbr\u003e\u003cdiv class=\"container_new_design_blog\"\u003e\n\n\u003cdiv class=\"text-section_blog text-2_new_design_blog\"\u003e\n\n\u003cdiv class=\"line_top_blog\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\n\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003eWant to test owner income in the Plumbing and HVAC model?\u003c\/span\u003e\u003c\/h3\u003e\n\n\u003cp\u003eThis dashboard covers assumptions, revenue, margins, overhead, cash, and owner pay; open the \u003ca href=\"\/products\/plumbing-hvac-financial-model\"\u003ePlumbing and HVAC Financial Model Template\u003c\/a\u003e.\u003c\/p\u003e\n\n\u003ch4\u003eOwner-income model highlights\u003c\/h4\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eOwner pay\u003c\/strong\u003e is visible\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e$145,000 to $4,402 million\u003c\/strong\u003e EBITDA chart\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e$673k\u003c\/strong\u003e cash in Month 5\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e17-month\u003c\/strong\u003e payback\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMonth 6\u003c\/strong\u003e breakeven\u003c\/li\u003e\n\u003cli\u003eRepair, install, maintenance, emergency\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"image-section_blog image-2_new_design_blog\"\u003e\n\n\u003cdiv class=\"preview-card\" data-preview-src=\"\/cdn\/shop\/files\/plumbing-hvac-financial-model-dashboard-financialmodelslab_90913038-6f1d-4004-9143-4b47a45b8499.webp\"\u003e\n\u003cimg class=\"preview-img\" width=\"100%\" height=\"auto\" src=\"\/cdn\/shop\/files\/plumbing-hvac-financial-model-dashboard-financialmodelslab_90913038-6f1d-4004-9143-4b47a45b8499.webp?width=500\" alt=\"Plumbing and HVAC Financial Model dashboard summarizing key KPIs, runway\/cash position and operational performance with a dynamic dashboard for investor-ready reporting and cash-flow clarity.\"\u003e\n\u003cdiv class=\"preview-overlay\"\u003e\n\u003cbutton class=\"preview-btn\" type=\"button\" style=\"align-items: center; vertical-align: middle; display: inline-flex; justify-content: center; gap: 6px; line-height: 1;\"\u003e\nPREVIEW \u003csvg fill=\"#fff\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\" role=\"presentation\" viewbox=\"0 0 448 512\" width=\"14\"\u003e\u003cpath d=\"M416 176V86.63L246.6 256L416 425.4V336c0-8.844 7.156-16 16-16s16 7.156 16 16v128c0 8.844-7.156 16-16 16h-128c-8.844 0-16-7.156-16-16s7.156-16 16-16h89.38L224 278.6L54.63 448H144C152.8 448 160 455.2 160 464S152.8 480 144 480h-128C7.156 480 0 472.8 0 464v-128C0 327.2 7.156 320 16 320S32 327.2 32 336v89.38L201.4 256L32 86.63V176C32 184.8 24.84 192 16 192S0 184.8 0 176v-128C0 39.16 7.156 32 16 32h128C152.8 32 160 39.16 160 48S152.8 64 144 64H54.63L224 233.4L393.4 64H304C295.2 64 288 56.84 288 48S295.2 32 304 32h128C440.8 32 448 39.16 448 48v128C448 184.8 440.8 192 432 192S416 184.8 416 176z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eHow much revenue does a plumbing and HVAC business need to pay the owner?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003eFor \u003cstrong\u003ePlumbing and HVAC\u003c\/strong\u003e, there is \u003cstrong\u003eno single revenue number\u003c\/strong\u003e that pays the owner. In the Year 1 model, cost support totals \u003cstrong\u003e$514,300\u003c\/strong\u003e, made up of \u003cstrong\u003e$372,500\u003c\/strong\u003e payroll, \u003cstrong\u003e$91,800\u003c\/strong\u003e fixed overhead, and \u003cstrong\u003e$50,000\u003c\/strong\u003e marketing, and implied operating breakeven is about \u003cstrong\u003e$704,500\u003c\/strong\u003e before capex, taxes, debt, and reserves. The model hits breakeven in \u003cstrong\u003eMonth 6\u003c\/strong\u003e.\u003c\/p\u003e\n\u003cdiv class=\"container_2_clmn_row\"\u003e\n\u003cdiv class=\"card_smpl\"\u003e\n\u003cdiv class=\"card_smpl_header\"\u003e\n\u003cimg src=\"\/cdn\/shop\/files\/fml_20_fml-Orange-blog-intro-icon.svg\" alt=\"Icon\" class=\"icon_how_to_use\"\u003e\u003ch3\u003eYear 1 cost stack\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003e$372,500\u003c\/strong\u003e payroll\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e$91,800\u003c\/strong\u003e fixed overhead\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e$50,000\u003c\/strong\u003e marketing\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e$514,300\u003c\/strong\u003e total support cost\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"card_smpl blue_card\"\u003e\n\u003cdiv class=\"card_smpl_header\"\u003e\n\u003cimg src=\"\/cdn\/shop\/files\/fml_20_fml-Orange-blog-colons-icon.svg\" alt=\"Icon\" class=\"icon_how_to_use\"\u003e\u003ch3\u003eBreakeven read\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003e$704,500\u003c\/strong\u003e operating breakeven revenue\u003c\/li\u003e\n\u003cli\u003eBefore capex, taxes, debt, reserves\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMonth 6\u003c\/strong\u003e model breakeven\u003c\/li\u003e\n\u003cli\u003eOne owner number won't fit all\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eWhat affects plumbing HVAC owner take-home the most?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003e\u003cstrong\u003ePlumbing and HVAC\u003c\/strong\u003e owner take-home is driven most by labor productivity, material control, and subcontracted labor, then callbacks, fleet, insurance, dispatch, and marketing efficiency. If you want the setup-cost side of the picture, see \u003ca href=\"\/blogs\/startup-costs\/plumbing-hvac\"\u003eWhat Is The Estimated Cost To Open And Launch Your Plumbing And HVAC Business?\u003c\/a\u003e because \u003cstrong\u003e$91,800\u003c\/strong\u003e in annual fixed overhead means poor job costing can wipe out cash fast.\u003c\/p\u003e\n\u003cdiv class=\"container_2_clmn_row\"\u003e\n\u003cdiv class=\"card_smpl blue_card\"\u003e\n\u003cdiv class=\"card_smpl_header\"\u003e\n\u003cimg src=\"\/cdn\/shop\/files\/fml_20_fml-Orange-blog-colons-icon.svg\" alt=\"Icon\" class=\"icon_how_to_use\"\u003e\u003ch3\u003eBiggest margin drains\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eYear 1 direct materials: \u003cstrong\u003e180%\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eSpecialized subcontract labor: \u003cstrong\u003e40%\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eFleet operating costs: \u003cstrong\u003e30%\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eMarketing support: \u003cstrong\u003e20%\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"card_smpl\"\u003e\n\u003cdiv class=\"card_smpl_header\"\u003e\n\u003cimg src=\"\/cdn\/shop\/files\/fml_20_fml-Orange-blog-intro-icon.svg\" alt=\"Icon\" class=\"icon_how_to_use\"\u003e\u003ch3\u003eWhat protects owner pay\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eHold gross margin on every job\u003c\/li\u003e\n\u003cli\u003eKeep crews booked and moving\u003c\/li\u003e\n\u003cli\u003eCut callbacks and rework\u003c\/li\u003e\n\u003cli\u003eUse job costing before revenue grows\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eDoes a plumbing and HVAC owner make more than a technician?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003eYes, a Plumbing and HVAC owner can make more than a technician, but only when the company earns profit beyond the owner’s own field labor; see \u003ca href=\"\/blogs\/kpi-metrics\/plumbing-hvac\"\u003eWhat Is The Most Critical Metric For Plumbing And HVAC Business Success?\u003c\/a\u003e for the metric lens. In this model, the owner\/general manager salary is \u003cstrong\u003e$100,000\u003c\/strong\u003e versus \u003cstrong\u003e$75,000\u003c\/strong\u003e for a lead technician and \u003cstrong\u003e$50,000\u003c\/strong\u003e for a junior technician, so the salary gap is real but not risk-free.\u003c\/p\u003e\n\u003cdiv class=\"container_2_clmn_row\"\u003e\n\u003cdiv class=\"card_smpl blue_card\"\u003e\n\u003cdiv class=\"card_smpl_header\"\u003e\n\u003cimg src=\"\/cdn\/shop\/files\/fml_20_fml-Orange-blog-colons-icon.svg\" alt=\"Icon\" class=\"icon_how_to_use\"\u003e\u003ch3\u003eOwner Pay\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eOwner salary: \u003cstrong\u003e$100,000\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eLead tech salary: \u003cstrong\u003e$75,000\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eJunior tech salary: \u003cstrong\u003e$50,000\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eLead tech gap: \u003cstrong\u003e$25,000\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"card_smpl\"\u003e\n\u003cdiv class=\"card_smpl_header\"\u003e\n\u003cimg src=\"\/cdn\/shop\/files\/fml_20_fml-Orange-blog-intro-icon.svg\" alt=\"Icon\" class=\"icon_how_to_use\"\u003e\u003ch3\u003eReal Upside\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eEarn through crew leverage\u003c\/li\u003e\n\u003cli\u003eCarry payroll and admin risk\u003c\/li\u003e\n\u003cli\u003eFund vehicles and insurance\u003c\/li\u003e\n\u003cli\u003eUse EBITDA after reserves\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eWhat drives plumbing and HVAC owner income?\n\u003c\/span\u003e\u003c\/h2\u003e\n\u003csection class=\"fml-main-income-drivers\" aria-label=\"Main income drivers card grid for plumbing and HVAC.\"\u003e\u003carticle class=\"driver-option is-cards\"\u003e\u003cdiv class=\"main-driver-grid\"\u003e\n\u003carticle class=\"main-driver-card is-primary\"\u003e\u003cdiv class=\"main-driver-heading\"\u003e\n\u003cspan class=\"driver-rank\"\u003e1\u003c\/span\u003e\u003ch4\u003eService Mix\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$120\/$110\/$180\u003c\/strong\u003e\u003cp\u003eMore emergency and install jobs lift average ticket, and the $120 repair, $110 install, and $180 emergency rates are assumptions, not guarantees.\u003c\/p\u003e\u003c\/article\u003e\u003carticle class=\"main-driver-card\"\u003e\u003cdiv class=\"main-driver-heading\"\u003e\n\u003cspan class=\"driver-rank\"\u003e2\u003c\/span\u003e\u003ch4\u003eTech Utilization\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e2.5-8h\u003c\/strong\u003e\u003cp\u003eRepair jobs run 2.5 hours and installs 8.0, so tighter dispatch raises paid hours per tech and spreads fixed cost.\u003c\/p\u003e\u003c\/article\u003e\u003carticle class=\"main-driver-card\"\u003e\u003cdiv class=\"main-driver-heading\"\u003e\n\u003cspan class=\"driver-rank\"\u003e3\u003c\/span\u003e\u003ch4\u003eGross Margin\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e22%-16%\u003c\/strong\u003e\u003cp\u003eDirect project materials start at 18% and ease to 14%, plus subcontract labor falls from 4% to 2%, so margin discipline feeds take-home.\u003c\/p\u003e\u003c\/article\u003e\u003carticle class=\"main-driver-card\"\u003e\u003cdiv class=\"main-driver-heading\"\u003e\n\u003cspan class=\"driver-rank\"\u003e4\u003c\/span\u003e\u003ch4\u003eMaintenance Plan\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e15%-55%\u003c\/strong\u003e\u003cp\u003eThe maintenance plan share climbs from 15% to 55%, which brings repeat work and steadier cash between repair spikes.\u003c\/p\u003e\u003c\/article\u003e\u003carticle class=\"main-driver-card\"\u003e\u003cdiv class=\"main-driver-heading\"\u003e\n\u003cspan class=\"driver-rank\"\u003e5\u003c\/span\u003e\u003ch4\u003eOverhead Control\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$91.8K\u003c\/strong\u003e\u003cp\u003eThe $91,800 fixed overhead floor sets the break-even load, so rent, fleet, software, and admin costs need tight watch.\u003c\/p\u003e\u003c\/article\u003e\u003carticle class=\"main-driver-card\"\u003e\u003cdiv class=\"main-driver-heading\"\u003e\n\u003cspan class=\"driver-rank\"\u003e6\u003c\/span\u003e\u003ch4\u003eOwner Scale\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e3-11 techs\u003c\/strong\u003e\u003cp\u003eA $100,000 owner salary sits on top of 3 to 11 field technicians, so owner time has to stay on sales, dispatch, and margin.\u003c\/p\u003e\u003c\/article\u003e\n\u003c\/div\u003e\u003c\/article\u003e\u003c\/section\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003ePlumbing and HVAC Core Six Income Drivers\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\u003cbr\u003e\n\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003eService Mix And Average Ticket\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n  \u003cdiv class=\"left-row1\"\u003e\n    \u003ch3\u003eService Mix and Average Ticket\u003c\/h3\u003e\n    \u003cp\u003eIncome here comes from the mix, not just volume. In Year 1, the disclosed workload is weighted to \u003cstrong\u003erepair 600\u003c\/strong\u003e, \u003cstrong\u003einstallation 300\u003c\/strong\u003e, \u003cstrong\u003emaintenance 150\u003c\/strong\u003e, and \u003cstrong\u003eemergency 100\u003c\/strong\u003e. By Year 5 it shifts to \u003cstrong\u003e500\u003c\/strong\u003e, \u003cstrong\u003e500\u003c\/strong\u003e, \u003cstrong\u003e550\u003c\/strong\u003e, and \u003cstrong\u003e100\u003c\/strong\u003e, while rates move from \u003cstrong\u003e$120 to $140\u003c\/strong\u003e for repair, \u003cstrong\u003e$110 to $130\u003c\/strong\u003e for installation, and \u003cstrong\u003e$180 to $200\u003c\/strong\u003e for emergency.\u003c\/p\u003e\n    \u003cp\u003eThat mix can lift revenue per hour, but only if labor, parts, and callbacks stay in line. Higher-ticket emergency and install work usually look better on paper, yet they can also bring overtime, more truck time, and bigger warranty risk. If margin slips, the owner’s draw gets squeezed even when sales rise.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"right-row1\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003eTrack Blended Ticket by Job Type\u003c\/h3\u003e\n      \u003cp\u003eHere’s the quick math: a stronger blend of installs and maintenance plans should raise average ticket and smooth cash flow. But the owner should watch \u003cstrong\u003egross margin by job type\u003c\/strong\u003e, not just top-line revenue. A busier schedule with weak pricing still burns cash.\u003c\/p\u003e\n      \u003cul class=\"lst_crct_blog\"\u003e\n        \u003cli\u003eTrack blended rate by job.\u003c\/li\u003e\n        \u003cli\u003eWatch maintenance plan close rate.\u003c\/li\u003e\n        \u003cli\u003eMeasure callback rate on installs.\u003c\/li\u003e\n        \u003cli\u003eLog overtime per technician.\u003c\/li\u003e\n        \u003cli\u003eReview emergency share monthly.\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cp\u003eMeasure mix monthly, then price from the bottom up: technician pay, parts, subcontractors, and dispatch time first, markup second. If maintenance plans and installs carry the schedule in Year 5, the business gets more recurring revenue and better forecasting. If estimates lag, the mix can slide back toward low-value repair work fast.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"timeline\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"step-circle step1\"\u003e1\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003eTechnician Utilization And Billable Hours\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n\u003cdiv class=\"right-row2\"\u003e\n\u003ch3\u003eTechnician Utilization And Billable Hours\u003c\/h3\u003e\n\u003cp\u003eThis driver is about turning \u003cstrong\u003epaid technician time\u003c\/strong\u003e into \u003cstrong\u003ebilled work\u003c\/strong\u003e. When routing is tight and callbacks fall, the same payroll produces more revenue and the owner keeps more cash.\u003c\/p\u003e\n\u003cp\u003eYear 1 assumes \u003cstrong\u003e25 repair\u003c\/strong\u003e, \u003cstrong\u003e80 installation\u003c\/strong\u003e, \u003cstrong\u003e8 maintenance\u003c\/strong\u003e, and \u003cstrong\u003e20 emergency\u003c\/strong\u003e billable hours per job. By Year 5, those improve to \u003cstrong\u003e21\u003c\/strong\u003e, \u003cstrong\u003e70\u003c\/strong\u003e, \u003cstrong\u003e6\u003c\/strong\u003e, and \u003cstrong\u003e16\u003c\/strong\u003e. \u003cstrong\u003eIdle time\u003c\/strong\u003e, routing gaps, callbacks, and overtime cut owner take-home fast.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"left-row2\"\u003e\n\u003cdiv class=\"tips-box\"\u003e\n\u003ch3\u003eTrack Paid Hours by Job Type\u003c\/h3\u003e\n\u003cp\u003eMeasure \u003cstrong\u003eutilization\u003c\/strong\u003e as the share of paid labor that gets billed. The owner should compare actual job hours, drive time, unbilled time, and overtime against the Year 1 to Year 5 range, then see where time leaks out.\u003c\/p\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eTrack billed hours per tech each week.\u003c\/li\u003e\n\u003cli\u003eLog callbacks by job type and technician.\u003c\/li\u003e\n\u003cli\u003eWatch drive time and route gaps daily.\u003c\/li\u003e\n\u003cli\u003eReview overtime against booked demand.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eUse \u003cstrong\u003efirst-time fix rate\u003c\/strong\u003e and dispatch discipline to protect margin. If the wrong tech gets sent or the truck has to return, payroll cost rises and owner pay falls even when sales look busy.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"timeline\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"step-circle step2\"\u003e2\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003eGross Margin Discipline\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n\u003cdiv class=\"left-row3\"\u003e\n\u003ch3\u003eGross Margin Discipline\u003c\/h3\u003e\n\u003cp\u003eIf direct project materials run at \u003cstrong\u003e180% of revenue\u003c\/strong\u003e in Year 1 and subcontracted specialized labor at \u003cstrong\u003e40%\u003c\/strong\u003e, gross margin is already under heavy stress before technician wages, rent, and owner pay. By Year 5, moving those to \u003cstrong\u003e140%\u003c\/strong\u003e and \u003cstrong\u003e20%\u003c\/strong\u003e is the difference between a busy schedule and real cash flow. One bad pricing model can fill the board and still leave the owner short.\u003c\/p\u003e\n\u003cp\u003eGross margin discipline means pricing each job against technician wages, parts, equipment, subcontractors, and warranty risk. Use job costing on water heaters, HVAC replacements, drain work, emergency repairs, and warranty labor, because underpriced installs can look productive while quietly draining profit and cash. The key input is full job cost, not just the hourly rate.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"right-row3\"\u003e\n\u003cdiv class=\"tips-box\"\u003e\n\u003ch3\u003ePrice From Full Job Cost\u003c\/h3\u003e\n\u003cp\u003eTrack \u003cstrong\u003ematerials % of revenue\u003c\/strong\u003e, \u003cstrong\u003esubcontracted labor %\u003c\/strong\u003e, and warranty hours by job type. If a quote misses target margin, raise price, cut scope, or walk away before the work starts. Here’s the quick math: every dollar lost in gross margin is a dollar that can’t help cover fixed overhead or owner draw.\u003c\/p\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eCost every water heater install.\u003c\/li\u003e\n\u003cli\u003eSeparate warranty labor from billable labor.\u003c\/li\u003e\n\u003cli\u003eReview margin by job weekly.\u003c\/li\u003e\n\u003cli\u003eFlag jobs below target margin.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"timeline\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"step-circle step3\"\u003e3\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003eRecurring Maintenance And Service Agreements\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n\u003cdiv class=\"right-row4\"\u003e\n\u003ch3\u003eRecurring Maintenance Agreements\u003c\/h3\u003e\n\u003cp\u003eMaintenance plans smooth demand, bring repeat calls, seasonal tune-ups, and replacement leads. The model assumes maintenance-plan allocation rises from \u003cstrong\u003e150%\u003c\/strong\u003e in Year 1 to \u003cstrong\u003e550%\u003c\/strong\u003e in Year 5, while the maintenance rate moves from \u003cstrong\u003e$90\u003c\/strong\u003e to \u003cstrong\u003e$100\u003c\/strong\u003e per hour. \u003cstrong\u003eBut the plan only lifts owner income if each visit pays for labor, dispatch, reminders, parts, callbacks, and missed appointments.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eHere’s the quick math: a visit that falls from \u003cstrong\u003e8\u003c\/strong\u003e billable hours to \u003cstrong\u003e6\u003c\/strong\u003e cuts revenue per visit from \u003cstrong\u003e$720\u003c\/strong\u003e to \u003cstrong\u003e$600\u003c\/strong\u003e, even with the higher rate. That steadier cash flow helps, but it can still squeeze profit if pricing is too low or if free follow-up work piles up.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"left-row4\"\u003e\n\u003cdiv class=\"tips-box\"\u003e\n\u003ch3\u003ePrice the Plan to Cover the Visit\u003c\/h3\u003e\n\u003cp\u003eTrack plan count, visit frequency, billable hours per visit, labor time, dispatch time, parts used, callback rate, and missed appointments. The key test is simple: does each plan member pay enough to cover the full service cost and still leave margin for overhead and owner pay?\u003c\/p\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eTest fee against total visit cost.\u003c\/li\u003e\n\u003cli\u003eWatch callback and no-show rates.\u003c\/li\u003e\n\u003cli\u003eMeasure billable hours per visit.\u003c\/li\u003e\n\u003cli\u003eBundle seasonal tune-ups and reminders.\u003c\/li\u003e\n\u003cli\u003eUse replacement leads as upside only.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eIf the plan fills the schedule but underprices the work, it creates busy months and weak draws. If it covers the real cost of service, it turns uneven demand into more predictable cash flow and steadier profit.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"timeline\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"step-circle step4\"\u003e4\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003eOverhead, Fleet, And Insurance Control\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n\u003cdiv class=\"left-row5\"\u003e\n\u003ch3\u003eOverhead, Fleet, And Insurance Control\u003c\/h3\u003e\n\u003cp\u003eIncome here is the gap between \u003cstrong\u003eEBITDA\u003c\/strong\u003e and cash the owner can actually take home. Fixed overhead is \u003cstrong\u003e$7,650 per month\u003c\/strong\u003e or \u003cstrong\u003e$91,800 per year\u003c\/strong\u003e, with rent at \u003cstrong\u003e$3,500\u003c\/strong\u003e, vehicle insurance at \u003cstrong\u003e$1,200\u003c\/strong\u003e, and utilities, accounting, business insurance, software, admin supplies, and training making up the rest.\u003c\/p\u003e\n\u003cp\u003eFleet operating costs falling from \u003cstrong\u003e30%\u003c\/strong\u003e to \u003cstrong\u003e20%\u003c\/strong\u003e of revenue can add real cash, but only if the team keeps response time, safety, and quality intact. One clean rule: cut waste, not readiness. If overhead runs ahead of booked work, owner pay gets squeezed even when sales look fine.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"right-row5\"\u003e\n\u003cdiv class=\"tips-box\"\u003e\n\u003ch3\u003eCut Burn Without Cutting Service\u003c\/h3\u003e\n\u003cp\u003eTrack fixed overhead, fleet cost as a percent of revenue, vehicle insurance, and cash left after payroll. The right inputs are monthly revenue, job count, miles driven, repair hours, and any added downtime from slower dispatch. Here’s the quick math: every dollar saved in overhead or fleet waste moves straight toward owner draw.\u003c\/p\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eReview overhead monthly against budget.\u003c\/li\u003e\n\u003cli\u003eMeasure fleet cost per revenue dollar.\u003c\/li\u003e\n\u003cli\u003eKeep insurance and safety coverage in place.\u003c\/li\u003e\n\u003cli\u003eTest routing before cutting vehicles.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"timeline\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"step-circle step5\"\u003e5\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003eOwner Role And Staffing Structure\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n\u003cdiv class=\"right-row6\"\u003e\n\u003ch3\u003eOwner Role and St\naffing\u003c\/h3\u003e\n\u003cp\u003eThis driver is the shift from owner-as-technician to owner as \u003cstrong\u003egeneral manager, dispatcher, estimator, salesperson, or service leader\u003c\/strong\u003e. In this model, the owner takes a \u003cstrong\u003e$100,000 salary\u003c\/strong\u003e in all five years, while field technicians grow from \u003cstrong\u003e3 FTE\u003c\/strong\u003e in Year 1 to \u003cstrong\u003e11 FTE\u003c\/strong\u003e in Year 5. That means payroll rises from \u003cstrong\u003e$372,500\u003c\/strong\u003e to \u003cstrong\u003e$945,000\u003c\/strong\u003e, so owner pay only improves if added labor creates more billed work than it consumes.\u003c\/p\u003e\n\u003cp\u003eHere’s the quick math: staffing leverage can raise income, but it also adds supervision, training, scheduling, and quality-control risk. If the owner steps out of the truck but dispatch, estimating, or follow-up slip, callbacks and overtime can eat the gain fast. The key question is simple: does each added technician produce enough billable work to cover the \u003cstrong\u003ehigher payroll base\u003c\/strong\u003e and still leave cash for the owner?\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"left-row6\"\u003e\n\u003cdiv class=\"tips-box\"\u003e\n\u003ch3\u003eTrack Payroll Per Job\u003c\/h3\u003e\n\u003cp\u003eMeasure \u003cstrong\u003epayroll as a share of revenue\u003c\/strong\u003e, plus billable hours per technician, callback rate, and booked jobs per dispatcher or service leader. Those inputs tell you whether the owner role is creating real leverage or just adding overhead. If the owner becomes a GM, the schedule must hold up without daily rescue work, because unfilled time, poor routing, and weak estimating turn payroll into a cash drain.\u003c\/p\u003e\n\u003cp\u003eSet a staffing plan that matches the owner’s role to demand. If the owner is selling and managing, document response times, pricing rules, and QC checks so the team can run without constant oversight. Growth should only continue when added technicians improve throughput faster than payroll rises from \u003cstrong\u003e$372,500\u003c\/strong\u003e toward \u003cstrong\u003e$945,000\u003c\/strong\u003e.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"timeline\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"step-circle step6\"\u003e6\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eCompare reserve-adjusted owner income scenarios\n\u003c\/span\u003e\u003c\/h2\u003e\n\u003csection class=\"fml-scenario-table\" aria-label=\"Plumbing and HVAC Owner Income Scenarios\" data-site-name=\"Financial Models Lab\" data-site-url=\"https:\/\/financialmodelslab.com\" data-source-title=\"Plumbing and HVAC Owner Income Scenarios\" data-note-label=\"Planning note\" data-note-text=\"These ranges are researched planning assumptions, not guaranteed earnings, salary promises, tax advice, or distributions.\"\u003e\u003cdiv class=\"fml-scenario-table-card\"\u003e\n\u003cheader class=\"fml-scenario-table-header\"\u003e\u003cdiv\u003e\n\u003cp class=\"fml-scenario-table-eyebrow\"\u003eOwner income scenarios\u003c\/p\u003e\n\u003cp class=\"fml-scenario-table-description\"\u003eOwner pay rises as the job mix shifts from repairs to installs and maintenance, staffing expands, and EBITDA scales. Distributions should come only after reserves, taxes, debt, and reinvestment.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-scenario-table-actions\"\u003e\u003cbutton class=\"fml-scenario-table-export\" type=\"button\" data-scenario-export\u003eEXPORT XLSX\u003c\/button\u003e\u003c\/div\u003e\u003c\/header\u003e\u003cdiv class=\"fml-scenario-table-wrap\"\u003e\u003ctable class=\"fml-scenario-table-grid\"\u003e\n\u003ccaption\u003eThree planning cases show how owner income can change as the shop grows.\u003c\/caption\u003e\n\u003cthead\u003e\u003ctr\u003e\n\u003cth class=\"fml-scenario-table-stub\" scope=\"col\" data-export-value=\"Scenario\"\u003eScenario\u003c\/th\u003e\n\u003cth class=\"fml-scenario-table-column\" scope=\"col\" data-export-value=\"Low Case\"\u003e\n\u003cspan class=\"fml-scenario-column-title\"\u003eLow Case\u003c\/span\u003e\u003cspan class=\"fml-scenario-badge is-soft\"\u003eLow case\u003c\/span\u003e\n\u003c\/th\u003e\n\u003cth class=\"fml-scenario-table-column\" scope=\"col\" data-export-value=\"Base Case\"\u003e\n\u003cspan class=\"fml-scenario-column-title\"\u003eBase Case\u003c\/span\u003e\u003cspan class=\"fml-scenario-badge is-soft\"\u003eBase case\u003c\/span\u003e\n\u003c\/th\u003e\n\u003cth class=\"fml-scenario-table-column\" scope=\"col\" data-export-value=\"High Case\"\u003e\n\u003cspan class=\"fml-scenario-column-title\"\u003eHigh Case\u003c\/span\u003e\u003cspan class=\"fml-scenario-badge is-warning\"\u003eHigh case\u003c\/span\u003e\n\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr data-scenario-row\u003e\n\u003cth class=\"fml-scenario-row-heading\" scope=\"row\" data-export-value=\"Launch model\"\u003e\u003cspan class=\"fml-scenario-row-heading-inner\"\u003e\u003cspan class=\"fml-scenario-row-icon is-launch\" aria-hidden=\"true\"\u003e\u003cimg class=\"fml-scenario-row-icon-img\" src=\"\/cdn\/shop\/files\/scenario-launch-model.svg\" alt=\"Launch model icon\" loading=\"lazy\"\u003e\u003c\/span\u003e\u003cspan\u003e\u003cspan class=\"fml-scenario-row-title\"\u003eLaunch model\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/th\u003e\n\u003ctd data-export-value=\"This is the lean owner-income path, where pay stays close to the fixed salary and cash is kept tight.\"\u003eThis is the lean owner-income path, where pay stays close to the fixed salary and cash is kept tight.\u003c\/td\u003e\n\u003ctd data-export-value=\"This is the modeled middle path, where scale starts to create room for owner income above salary.\"\u003eThis is the modeled middle path, where scale starts to create room for owner income above salary.\u003c\/td\u003e\n\u003ctd data-export-value=\"This is the stronger earnings path, where higher volume and staffing support larger owner draws and distributions.\"\u003eThis is the stronger earnings path, where higher volume and staffing support larger owner draws and distributions.\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-scenario-row\u003e\n\u003cth class=\"fml-scenario-row-heading\" scope=\"row\" data-export-value=\"Typical setup\"\u003e\u003cspan class=\"fml-scenario-row-heading-inner\"\u003e\u003cspan class=\"fml-scenario-row-icon is-setup\" aria-hidden=\"true\"\u003e\u003cimg class=\"fml-scenario-row-icon-img\" src=\"\/cdn\/shop\/files\/scenario-typical-setup.svg\" alt=\"Typical setup icon\" loading=\"lazy\"\u003e\u003c\/span\u003e\u003cspan\u003e\u003cspan class=\"fml-scenario-row-title\"\u003eTypical setup\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/th\u003e\n\u003ctd data-export-value=\"Year 1-style operation with a $100,000 owner salary, $145,000 EBITDA, three field technicians, $372,500 payroll, $91,800 fixed overhead, and a repair-heavy mix that hits Month 6 breakeven.\"\u003eYear 1-style operation with a $100,000 owner salary, $145,000 EBITDA, three field technicians, $372,500 payroll, $91,800 fixed overhead, and a repair-heavy mix that hits Month 6 breakeven.\u003c\/td\u003e\n\u003ctd data-export-value=\"Year 3-style operation with $1.748 million EBITDA, seven field technicians, a larger install and maintenance mix, and enough scale to pay the owner after reserves, taxes, debt, and reinvestment.\"\u003eYear 3-style operation with $1.748 million EBITDA, seven field technicians, a larger install and maintenance mix, and enough scale to pay the owner after reserves, taxes, debt, and reinvestment.\u003c\/td\u003e\n\u003ctd data-export-value=\"Year 5-style operation with $4.402 million EBITDA, 11 field technicians, and a fuller install and maintenance mix that supports higher owner distributions after business needs are covered.\"\u003eYear 5-style operation with $4.402 million EBITDA, 11 field technicians, and a fuller install and maintenance mix that supports higher owner distributions after business needs are covered.\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-scenario-row\u003e\n\u003cth class=\"fml-scenario-row-heading\" scope=\"row\" data-export-value=\"Cost drivers\"\u003e\u003cspan class=\"fml-scenario-row-heading-inner\"\u003e\u003cspan class=\"fml-scenario-row-icon is-drivers\" aria-hidden=\"true\"\u003e\u003cimg class=\"fml-scenario-row-icon-img\" src=\"\/cdn\/shop\/files\/scenario-cost-drivers.svg\" alt=\"Cost drivers icon\" loading=\"lazy\"\u003e\u003c\/span\u003e\u003cspan\u003e\u003cspan class=\"fml-scenario-row-title\"\u003eCost drivers\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/th\u003e\n\u003ctd data-export-value=\"Repair-heavy jobs; three field technicians; $372,500 payroll; $91,800 fixed overhead; high materials and subcontract labor\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003eRepair-heavy jobs\u003c\/li\u003e\n\u003cli\u003ethree field technicians\u003c\/li\u003e\n\u003cli\u003e$372,500 payroll\u003c\/li\u003e\n\u003cli\u003e$91,800 fixed overhead\u003c\/li\u003e\n\u003cli\u003ehigh materials and subcontract labor\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/td\u003e\n\u003ctd data-export-value=\"Seven field technicians; more installs and maintenance; higher EBITDA; spread fixed overhead; lower CAC\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003eSeven field technicians\u003c\/li\u003e\n\u003cli\u003emore installs and maintenance\u003c\/li\u003e\n\u003cli\u003ehigher EBITDA\u003c\/li\u003e\n\u003cli\u003espread fixed overhead\u003c\/li\u003e\n\u003cli\u003elower CAC\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/td\u003e\n\u003ctd data-export-value=\"Eleven field technicians; larger install mix; more maintenance plans; higher EBITDA; lower CAC\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003eEleven field technicians\u003c\/li\u003e\n\u003cli\u003elarger install mix\u003c\/li\u003e\n\u003cli\u003emore maintenance plans\u003c\/li\u003e\n\u003cli\u003ehigher EBITDA\u003c\/li\u003e\n\u003cli\u003elower CAC\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-scenario-row\u003e\n\u003cth class=\"fml-scenario-row-heading\" scope=\"row\" data-export-value=\"Owner income range\"\u003e\u003cspan class=\"fml-scenario-row-heading-inner\"\u003e\u003cspan class=\"fml-scenario-row-icon is-range\" aria-hidden=\"true\"\u003e\u003cimg class=\"fml-scenario-row-icon-img\" src=\"\/cdn\/shop\/files\/scenario-planning-range.svg\" alt=\"Owner income range icon\" loading=\"lazy\"\u003e\u003c\/span\u003e\u003cspan\u003e\u003cspan class=\"fml-scenario-row-title\"\u003eOwner income range\u003c\/span\u003e\u003cspan class=\"fml-scenario-row-subtitle\"\u003eBefore owner reserves\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/th\u003e\n\u003ctd data-export-value=\"$100,000 salary\"\u003e\n\u003cstrong class=\"fml-scenario-range\"\u003e$100,000 salary\u003c\/strong\u003e\u003cspan class=\"fml-scenario-badge is-soft\"\u003eLow income\u003c\/span\u003e\n\u003c\/td\u003e\n\u003ctd data-export-value=\"Salary plus distributions\"\u003e\n\u003cstrong class=\"fml-scenario-range\"\u003eSalary plus distributions\u003c\/strong\u003e\u003cspan class=\"fml-scenario-badge is-soft\"\u003eBase income\u003c\/span\u003e\n\u003c\/td\u003e\n\u003ctd data-export-value=\"Salary plus larger distributions\"\u003e\n\u003cstrong class=\"fml-scenario-range\"\u003eSalary plus larger distributions\u003c\/strong\u003e\u003cspan class=\"fml-scenario-badge is-warning\"\u003eHigh income\u003c\/span\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-scenario-row\u003e\n\u003cth class=\"fml-scenario-row-heading\" scope=\"row\" data-export-value=\"Best fit\"\u003e\u003cspan class=\"fml-scenario-row-heading-inner\"\u003e\u003cspan class=\"fml-scenario-row-icon is-fit\" aria-hidden=\"true\"\u003e\u003cimg class=\"fml-scenario-row-icon-img\" src=\"\/cdn\/shop\/files\/scenario-best-fit.svg\" alt=\"Best fit icon\" loading=\"lazy\"\u003e\u003c\/span\u003e\u003cspan\u003e\u003cspan class=\"fml-scenario-row-title\"\u003eBest fit\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/th\u003e\n\u003ctd data-export-value=\"Use this to test what the owner can take home when growth is slow and cash stays tight.\"\u003eUse this to test what the owner can take home when growth is slow and cash stays tight.\u003c\/td\u003e\n\u003ctd data-export-value=\"Use this as the working plan for a growing shop with steady demand and better cash conversion.\"\u003eUse this as the working plan for a growing shop with steady demand and better cash conversion.\u003c\/td\u003e\n\u003ctd data-export-value=\"Use this to test upside when the team is full, the schedule is dense, and profits can support owner payouts.\"\u003eUse this to test upside when the team is full, the schedule is dense, and profits can support owner payouts.\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\u003c\/div\u003e\n\u003cdiv class=\"fml-scenario-table-note\"\u003e\n\u003cspan class=\"fml-scenario-table-note-icon\" aria-hidden=\"true\"\u003e!\u003c\/span\u003e\u003cp\u003e\u003cstrong\u003ePlanning note:\u003c\/strong\u003e These ranges are researched planning assumptions, not guaranteed earnings, salary promises, tax advice, or distributions.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e","brand":"FinancialModelsLab","offers":[{"title":"Default Title","offer_id":49303960486131,"sku":"plumbing-hvac-owner-makes","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/plumbing-hvac-owner-makes.webp?v=1782689557","url":"https:\/\/financialmodelslab.com\/products\/plumbing-hvac-owner-makes","provider":"Financial Models Lab","version":"1.0","type":"link"}