{"product_id":"coil-cleaning-service-owner-makes","title":"How Much Can An HVAC Coil Cleaning Service Owner Make? $80K+","description":"\u003cbr\u003e\u003cdiv class=\"card_smpl\"\u003e\n\u003cp\u003eA modeled HVAC coil cleaning service owner can take \u003cstrong\u003e$80,000 before personal taxes\u003c\/strong\u003e as owner\/CEO salary in the first year under these researched assumptions The business itself shows Year 1 revenue of \u003cstrong\u003e$1779 million\u003c\/strong\u003e and EBITDA of \u003cstrong\u003e$904,000\u003c\/strong\u003e, where EBITDA means earnings before interest, taxes, depreciation, and amortization Any owner income above salary should be treated as possible distribution capacity, not guaranteed take-home The model reaches break-even in \u003cstrong\u003eMonth 4\u003c\/strong\u003e, but it also needs minimum cash of \u003cstrong\u003e$787,000\u003c\/strong\u003e in Month 2\u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003csection class=\"fml-owner-metric-cards\" aria-label=\"HVAC coil cleaning service\"\u003e\u003cdiv class=\"metric-grid\"\u003e\n\u003carticle class=\"metric-card is-green\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Annual Owner\/CEO salary before personal taxes; distributions can be higher or lower based on EBITDA, cash, capex, debt, and taxes.\"\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=\"Annual Owner\/CEO salary before personal taxes; distributions can be higher or lower based on EBITDA, cash, capex, debt, and taxes.\"\u003e$80k\u003c\/strong\u003e\u003c\/article\u003e\u003carticle class=\"metric-card\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Year 1 to Year 5 EBITDA margin from model revenue and EBITDA; it is pre-tax operating margin, not final net income.\"\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 to Year 5 EBITDA margin from model revenue and EBITDA; it is pre-tax operating margin, not final net income.\"\u003e51%-68%\u003c\/strong\u003e\u003c\/article\u003e\u003carticle class=\"metric-card\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Annual revenue needed to support $80k owner pay at Year 1 EBITDA margin; it excludes taxes, debt service, and extra distributions.\"\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=\"Annual revenue needed to support $80k owner pay at Year 1 EBITDA margin; it excludes taxes, debt service, and extra distributions.\"\u003e$158k\u003c\/strong\u003e\u003c\/article\u003e\u003carticle class=\"metric-card\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Multiple technicians, vehicles, and route planning make execution tough, even with Month 4 breakeven and strong EBITDA.\"\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=\"Multiple technicians, vehicles, and route planning make execution tough, even with Month 4 breakeven and strong EBITDA.\"\u003eHard\u003c\/strong\u003e\u003c\/article\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eWant to test your owner pay?\n\u003c\/span\u003e\u003c\/h2\u003e\n\u003csection class=\"fml-owner-calculator\" aria-label=\"HVAC Coil Cleaning Service Owner Income Calculator\" data-locale=\"en-US\" data-currency=\"USD\" data-default-scenario=\"base\" data-export-filename=\"HVAC Coil Cleaning Service Owner Income Calculator.xlsx\" data-source-site-name=\"Financial Models Lab\" data-source-site-url=\"https:\/\/financialmodelslab.com\" data-source-page-title=\"HVAC Coil Cleaning Service Owner Income Calculator\" data-note-title=\"Planning note:\" data-note-text=\"This is a researched planning estimate, not guaranteed salary, tax advice, or owner distribution advice. Actual owner income depends on revenue, margins, payroll, taxes, debt, and reinvestment.\"\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=\"Monthly sales collected before expenses. Use the average operating month, not a one-time peak month.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly sales collected before expenses. Use the average operating month, not a one-time peak month.\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=\"Monthly sales collected before expenses. Use the average operating month, not a one-time peak month.\" data-low=\"148250\" data-base=\"440250\" data-high=\"774916.67\" name=\"monthlyRevenue\" type=\"text\" inputmode=\"numeric\" value=\"440,250\"\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=\"Percent of revenue left after direct service costs like cleaning solutions and fuel.\"\u003ei\u003cspan role=\"tooltip\"\u003ePercent of revenue left after direct service costs like cleaning solutions and fuel.\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=\"Percent of revenue left after direct service costs like cleaning solutions and fuel.\" name=\"grossMargin\" type=\"range\" min=\"0\" max=\"100\" step=\"1\" data-low=\"86\" data-base=\"87\" data-high=\"88\" value=\"87\"\u003e\u003coutput\u003e87%\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, contractors, benefits, and staffing coverage before owner pay.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly payroll, contractors, benefits, and staffing coverage 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, contractors, benefits, and staffing coverage before owner pay.\" data-low=\"18000\" data-base=\"45041.67\" data-high=\"78500\" name=\"laborCost\" type=\"text\" inputmode=\"numeric\" value=\"45,042\"\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=\"Rent, software, insurance, admin, and recurring overhead.\"\u003ei\u003cspan role=\"tooltip\"\u003eRent, software, insurance, admin, and recurring 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=\"Rent, software, insurance, admin, and recurring overhead.\" data-low=\"9100\" data-base=\"9100\" data-high=\"9100\" name=\"fixedOverhead\" type=\"text\" inputmode=\"numeric\" value=\"9,100\"\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 marketing and customer acquisition spend needed to sustain demand.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly marketing and customer acquisition spend needed to sustain demand.\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 marketing and customer acquisition spend needed to sustain demand.\" data-low=\"15000\" data-base=\"25000\" data-high=\"35000\" name=\"marketing\" type=\"text\" inputmode=\"numeric\" value=\"25,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\u003eDebt service\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Monthly loan or financing payment. Use 0 if there is no debt.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly loan or financing payment. Use 0 if there is no debt.\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 or financing payment. Use 0 if there is no debt.\" 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 set aside for taxes before owner take-home.\"\u003ei\u003cspan role=\"tooltip\"\u003ePercent of profit set aside for taxes before owner take-home.\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 set aside for taxes before owner take-home.\" name=\"taxReserve\" type=\"range\" min=\"0\" max=\"45\" step=\"1\" data-low=\"18\" data-base=\"22\" data-high=\"25\" value=\"22\"\u003e\u003coutput\u003e22%\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=\"8\" data-base=\"10\" data-high=\"12\" 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=\"Target monthly owner income used to calculate the target-pay gap.\"\u003ei\u003cspan role=\"tooltip\"\u003eTarget monthly owner income used to calculate 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=\"Target monthly owner income used to calculate the target-pay gap.\" data-low=\"5000\" data-base=\"6666.67\" data-high=\"9000\" name=\"targetOwnerPay\" type=\"text\" inputmode=\"numeric\" value=\"6,667\"\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$207K\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\"\u003e47%\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$102K\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$200K\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$2,479,618\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$303,876\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$97,241\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$199,968\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$440K\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: 87%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$383K\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: 18%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$79,142\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: 22%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$97,241\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: 47%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$207K\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 This is a researched planning estimate, not guaranteed salary, tax advice, or owner distribution advice. Actual owner income depends on revenue, margins, payroll, taxes, debt, and reinvestment.\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;\"\u003eNeed the full forecast view for owner income?\u003c\/span\u003e\u003c\/h3\u003e\n\n\u003cp\u003eUse the \u003ca href=\"\/products\/coil-cleaning-service-financial-model\"\u003eHVAC Coil Cleaning Service Financial Model Template\u003c\/a\u003e as the \u003cstrong\u003enext step\u003c\/strong\u003e; it shows revenue, mix, pricing, COGS, payroll, marketing, capex, cash flow, and owner pay.\u003c\/p\u003e\n\n\u003ch4\u003eOwner-income model highlights\u003c\/h4\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eRevenue: $1.779M to $9.299M\u003c\/li\u003e\n\u003cli\u003eEBITDA: $904K to $6.335M\u003c\/li\u003e\n\u003cli\u003eBreak-even Month 4, payback 8\u003c\/li\u003e\n\u003cli\u003eMinimum cash: $787K\u003c\/li\u003e\n\u003cli\u003eTest route density, hiring, reserves\u003c\/li\u003e\n\u003cli\u003eOwner pay targets included\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\/coil-cleaning-service-financial-model-dashboard-financialmodelslab_c6f9cf91-bd88-46df-bc52-b8b7493ce2da.webp\"\u003e\n\u003cimg class=\"preview-img\" width=\"100%\" height=\"auto\" src=\"\/cdn\/shop\/files\/coil-cleaning-service-financial-model-dashboard-financialmodelslab_c6f9cf91-bd88-46df-bc52-b8b7493ce2da.webp?width=500\" alt=\"HVAC Coil Cleaning Service Financial Model dashboard summarizing key KPIs, runway and cash position with dynamic charts and investor‑ready performance metrics to spot cash‑flow blind spots.\"\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 can an HVAC coil cleaning business owner make?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003eAn \u003cstrong\u003eHVAC Coil Cleaning Service\u003c\/strong\u003e owner in this crew-based plan earns an \u003cstrong\u003e$80,000 annual owner\/CEO salary\u003c\/strong\u003e before personal taxes, while business profit capacity is separate: \u003ca href=\"\/blogs\/profitability\/coil-cleaning-service\"\u003eHow Increase HVAC Coil Cleaning Service Profits?\u003c\/a\u003e shows why salary, distributions, reserves, debt, and taxes must be viewed separately.\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\u003e\n\u003cstrong\u003e$80,000\u003c\/strong\u003e annual CEO salary\u003c\/li\u003e\n\u003cli\u003ePaid before personal taxes\u003c\/li\u003e\n\u003cli\u003eNot a solo operator model\u003c\/li\u003e\n\u003cli\u003eStarts with \u003cstrong\u003e2 technicians\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\u003eProfit capacity\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003e$904,000\u003c\/strong\u003e Year 1 EBITDA\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e$2.305 million\u003c\/strong\u003e Year 2 EBITDA\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e$6.335 million\u003c\/strong\u003e Year 5 EBITDA\u003c\/li\u003e\n\u003cli\u003eCash reduced by capex, reserves, debt, taxes\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eWhat HVAC coil cleaning profit margin should owners expect?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003eIf you’re pricing an HVAC Coil Cleaning Service, expect an \u003cstrong\u003eEBITDA margin of about 50.8%\u003c\/strong\u003e in Year 1, based on \u003cstrong\u003e$904,000\u003c\/strong\u003e EBITDA on \u003cstrong\u003e$1.779 million\u003c\/strong\u003e revenue. For the operating-cost split, \u003ca href=\"\/blogs\/operating-costs\/coil-cleaning-service\"\u003eWhat Are Operating Costs For HVAC Coil Cleaning Service?\u003c\/a\u003e helps separate direct margin from overhead.\u003c\/p\u003e\n\u003cp\u003eThat margin can shrink fast because the model also carries \u003cstrong\u003e$9,100\u003c\/strong\u003e in monthly fixed overhead, \u003cstrong\u003e$180,000\u003c\/strong\u003e in Year 1 marketing, and \u003cstrong\u003e$296,000\u003c\/strong\u003e in payroll including the owner. Callbacks, long drive times, underused technicians, and high CAC can pull owner take-home down.\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\u003eMargin math\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003e$1.779 million\u003c\/strong\u003e Year 1 revenue\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e$904,000\u003c\/strong\u003e Year 1 EBITDA\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e50.8%\u003c\/strong\u003e EBITDA margin\u003c\/li\u003e\n\u003cli\u003eSeparate direct margin from overhead\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\u003eCost pressure\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003e$9,100\u003c\/strong\u003e monthly fixed overhead\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e$180,000\u003c\/strong\u003e Year 1 marketing\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e$296,000\u003c\/strong\u003e payroll, including owner\u003c\/li\u003e\n\u003cli\u003eCallbacks and long drives cut take-home\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eHow many coil cleaning jobs per week to make money?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003eFor \u003cstrong\u003eHVAC Coil Cleaning Service\u003c\/strong\u003e, the target-pay math says you need about \u003cstrong\u003e107 jobs a week\u003c\/strong\u003e to cover Year 1 costs. That load comes from \u003cstrong\u003e$109,200\u003c\/strong\u003e fixed overhead, \u003cstrong\u003e$296,000\u003c\/strong\u003e payroll, \u003cstrong\u003e$180,000\u003c\/strong\u003e marketing, and \u003cstrong\u003e$80,000\u003c\/strong\u003e owner pay, with contribution at about \u003cstrong\u003e$105\u003c\/strong\u003e per service-equivalent job; recurring billing and actual visit frequency can still shift the field workload.\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 load\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003e$109,200\u003c\/strong\u003e fixed overhead\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e$296,000\u003c\/strong\u003e payroll\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e$180,000\u003c\/strong\u003e marketing\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e$80,000\u003c\/strong\u003e owner salary\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\u003eWeekly job target\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003e~$105\u003c\/strong\u003e contribution per job\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e~$665,200\u003c\/strong\u003e Year 1 burden\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e~107 jobs\u003c\/strong\u003e per week target\u003c\/li\u003e\n\u003cli\u003eVisit frequency changes workload\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 moves owner income most?\n\u003c\/span\u003e\u003c\/h2\u003e\n\u003csection class=\"fml-main-income-drivers\" aria-label=\"Accessible label for the Main Income Drivers card grid.\"\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\u003eJob Volume\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$1.8M-$9.3M\u003c\/strong\u003e\u003cp\u003eMore billable jobs push revenue from Year 1 to Year 5, and that scale is what turns fixed costs into owner cash.\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\u003ePricing Mix\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$49.99-$299.99\u003c\/strong\u003e\u003cp\u003eShifting the mix from single-unit cleanings to higher-ticket commercial work lifts average ticket and protects 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\"\u003e3\u003c\/span\u003e\u003ch4\u003eLabor Scale\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e2-14 techs\u003c\/strong\u003e\u003cp\u003eTechnician count drives capacity, so the owner wins only if the crew stays productive as wages rise.\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\u003eCommercial Share\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e20%-32%\u003c\/strong\u003e\u003cp\u003eA larger commercial mix steadies demand and raises order value, which makes earnings less choppy.\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 \u0026amp; CAC\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$9.1K\/mo\u003c\/strong\u003e\u003cp\u003eWith fixed overhead at $9,100 a month and CAC dropping from $85 to $65, each new job keeps more cash for the owner.\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\u003eRoute Density\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e5.2%-4.4%\u003c\/strong\u003e\u003cp\u003eTighter routing trims fuel and maintenance as a share of revenue, so more gross profit reaches take-home.\u003c\/p\u003e\u003c\/article\u003e\n\u003c\/div\u003e\u003c\/article\u003e\u003c\/section\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eHVAC Coil Cleaning Service Core Six Income Drivers\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\u003cbr\u003e\n\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003ePricing And Service Mix\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n  \u003cdiv class=\"left-row1\"\u003e\n    \u003ch3\u003ePricing and service mix\u003c\/h3\u003e\n    \u003cp\u003e\u003cstrong\u003ePricing and service mix\u003c\/strong\u003e set the ceiling on revenue per visit. A residential single-unit job is \u003cstrong\u003e$4,999\u003c\/strong\u003e in Year 1, multi-unit is \u003cstrong\u003e$8,999\u003c\/strong\u003e, one-time service is \u003cstrong\u003e$19,999\u003c\/strong\u003e, and commercial property is \u003cstrong\u003e$29,999\u003c\/strong\u003e. That means a commercial job can bring in about \u003cstrong\u003e6.0x\u003c\/strong\u003e a single-unit visit, with much less need to add extra admin or sales overhead.\u003c\/p\u003e\n    \u003cp\u003eThe mix matters as much as the sticker price. Commercial share rises from \u003cstrong\u003e20%\u003c\/strong\u003e in Year 1 to \u003cstrong\u003e32%\u003c\/strong\u003e in Year 5, so average ticket should lift even if job count stays flat. Bundled evaporator and condenser cleaning, multi-unit properties, and rooftop systems push revenue per stop up. The risk is simple: access trouble, heavy buildup, local price pressure, scope creep, and underpriced callbacks can erase the margin gain.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"right-row1\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003eTrack ticket mix, not just job count\u003c\/h3\u003e\n      \u003cp\u003eMeasure revenue by segment each month: single-unit, multi-unit, one-time, and commercial. Also track callback rate, extra labor minutes, and missed scope, because a \u003cstrong\u003e$29,999\u003c\/strong\u003e sale is weak if access delays or rework eat the margin. One clean rule: price the visit for the dirtiest realistic coil and the hardest legal access, not the easiest quote.\u003c\/p\u003e\n      \u003cp\u003e\u003cstrong\u003eHere’s the quick math:\u003c\/strong\u003e higher-ticket work raises owner pay faster than low-ticket volume when fixed overhead is already in place. Protect that gain by documenting what is included, charging for rooftop or hard-access work, and testing whether bundled cleaning lifts average ticket without lifting callback rate. If callbacks rise, profit per visit falls fast.\u003c\/p\u003e\n      \u003cul class=\"lst_crct_blog\"\u003e\n        \u003cli\u003eTrack average ticket by property type.\u003c\/li\u003e\n        \u003cli\u003eSeparate bundled vs. basic jobs.\u003c\/li\u003e\n        \u003cli\u003eCharge for hard access.\u003c\/li\u003e\n        \u003cli\u003eLog callbacks and rework minutes.\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 step1\"\u003e1\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003eJob Volume And Capacity\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n  \u003cdiv class=\"right-row2\"\u003e\n    \u003ch3\u003eBooked Jobs and Technician Capacity\u003c\/h3\u003e\n    \u003cp\u003eIf your calendar looks full but cash still feels thin, the issue is usually capacity, not demand. Completed coil cleaning jobs only turn into owner pay when technicians stay booked and routes stay tight. In the source model, revenue rises from \u003cstrong\u003e$1.779 million\u003c\/strong\u003e in Year 1 to \u003cstrong\u003e$9.299 million\u003c\/strong\u003e in Year 5 as staffing grows from \u003cstrong\u003e2 FTEs\u003c\/strong\u003e to \u003cstrong\u003e14 FTEs\u003c\/strong\u003e.\u003c\/p\u003e\n    \u003cp\u003eHere’s the quick math: more appointments help only if setup time, drive time, dispatch gaps, and seasonal swings do not eat labor hours. The model shows EBITDA margin improving from \u003cstrong\u003e508%\u003c\/strong\u003e to \u003cstrong\u003e681%\u003c\/strong\u003e as utilization rises, so idle time is the main leak. Empty slots push labor cost up per job and slow owner draw.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"left-row2\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003eTrack Utilization, Not Just Bookings\u003c\/h3\u003e\n      \u003cp\u003eMeasure \u003cstrong\u003ecompleted jobs per technician day\u003c\/strong\u003e, \u003cstrong\u003edrive time\u003c\/strong\u003e, \u003cstrong\u003esetup time\u003c\/strong\u003e, and \u003cstrong\u003ecanceled slots\u003c\/strong\u003e. Bookings only matter if they become billable hours, so separate scheduled jobs from completed jobs and from hours actually worked. That shows whether growth is adding profit or just adding payroll.\u003c\/p\u003e\n      \u003cul class=\"lst_crct_blog\"\u003e\n        \u003cli\u003eCluster jobs by zip\u003c\/li\u003e\n        \u003cli\u003eCut gaps between visits\u003c\/li\u003e\n        \u003cli\u003eFill seasonal slow weeks\u003c\/li\u003e\n        \u003cli\u003eTrack completed jobs per FTE\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cp\u003eIf the schedule gets thin, add routes before adding headcount. More technicians with weak density usually lowers owner pay, because payroll rises before revenue catches up.\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;\"\u003eRoute Density And Travel Efficiency\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n\u003cdiv class=\"left-row3\"\u003e\n\u003ch3\u003eRoute Density\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong\u003eRoute density\u003c\/strong\u003e is how many jobs a tech can finish in a tight area without wasting time on the road. In this HVAC coil cleaning business, shorter drive time lifts profit per labor hour because price stays the same, but travel cost does not. \u003cstrong\u003eFuel and maintenance equal 52% of revenue in Year 1\u003c\/strong\u003e and still run \u003cstrong\u003e44% by Year 5\u003c\/strong\u003e, so every extra mile cuts owner pay fast.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eEvery long gap between jobs reduces capacity.\u003c\/strong\u003e The key inputs are route miles, drive minutes, jobs per day, and service-area size. Wide coverage, emergency reschedules, traffic, parking, roof access delays, and low-density residential demand all lower completed visits per technician, which slows cash flow and can turn a busy schedule into weak profit.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"right-row3\"\u003e\n\u003cdiv class=\"tips-box\"\u003e\n\u003ch3\u003eKeep Routes Tight\u003c\/h3\u003e\n\u003cp\u003eTrack \u003cstrong\u003edrive minutes per job\u003c\/strong\u003e, \u003cstrong\u003ejobs per route\u003c\/strong\u003e, and \u003cstrong\u003efuel plus maintenance as a % of revenue\u003c\/strong\u003e. Then cluster property manager routes, book multi-unit buildings on the same day, and keep the service area compact. If one job adds a long gap, the tech loses billable time even if the day looks full.\u003c\/p\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eGroup nearby accounts on one route\u003c\/li\u003e\n\u003cli\u003eBatch multi-unit buildings same day\u003c\/li\u003e\n\u003cli\u003eSet a hard service-area limit\u003c\/li\u003e\n\u003cli\u003eReserve time for access delays\u003c\/li\u003e\n\u003cli\u003eWatch reschedules and deadhead miles\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eOne clean metric: \u003cstrong\u003emore completed jobs per drive hour\u003c\/strong\u003e. If parking, roof access, or traffic keeps pushing jobs past plan, route density drops and owner income falls even when sales hold steady.\u003c\/p\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 Commercial Accounts\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 Commercial Accounts\u003c\/h3\u003e\n    \u003cp\u003e\u003cstrong\u003eRecurring commercial accounts\u003c\/strong\u003e turn coil cleaning into steadier revenue, so the owner depends less on paid leads. In your model, the commercial property mix rises from \u003cstrong\u003e20%\u003c\/strong\u003e in Year 1 to \u003cstrong\u003e32%\u003c\/strong\u003e in Year 5, while one-time cleaning falls from \u003cstrong\u003e15%\u003c\/strong\u003e to \u003cstrong\u003e6%\u003c\/strong\u003e. That shift also improves CAC from \u003cstrong\u003e$85\u003c\/strong\u003e to \u003cstrong\u003e$65\u003c\/strong\u003e, which leaves more cash for owner pay.\u003c\/p\u003e\n    \u003cp\u003eHere’s the quick math: more repeat accounts mean better route fit, fewer cold leads, and steadier technician schedules. The risk is churn, account concentration, seasonal maintenance budgets, delayed approvals, and service gaps that stretch cash flow. If approvals slow or renewals slip, revenue still looks busy on paper, but take-home income gets tighter fast.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"left-row4\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003eTrack Renewal Mix and CAC\u003c\/h3\u003e\n      \u003cp\u003eMeasure how much revenue comes from recurring commercial contracts, not one-time jobs. That mix tells you whether the business is building predictable cash or buying each month’s sales again.\u003c\/p\u003e\n      \u003cul class=\"lst_crct_blog\"\u003e\n        \u003cli\u003eTrack commercial share by year.\u003c\/li\u003e\n        \u003cli\u003eWatch one-time job mix decline.\u003c\/li\u003e\n        \u003cli\u003eCompare CAC to \u003cstrong\u003e$85\u003c\/strong\u003e and \u003cstrong\u003e$65\u003c\/strong\u003e.\u003c\/li\u003e\n        \u003cli\u003eFlag delayed approvals fast.\u003c\/li\u003e\n        \u003cli\u003eSeparate renewals by account size.\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cp\u003ePrice and schedule contracts around service intervals, then forecast cash by renewal month. If a few accounts drive most of the revenue, watch concentration closely; losing one large property can hit monthly profit and owner draw harder than a dozen small jobs.\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;\"\u003eLabor Model And Productivity\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n\u003cdiv class=\"left-row5\"\u003e\n\u003ch3\u003eLabor Model And Productivity\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong\u003eOwner labor\u003c\/strong\u003e can boost early cash because the founder replaces paid labor, but that only works until the business needs more field capacity. In Year 1, payroll is \u003cstrong\u003e$296,000\u003c\/strong\u003e, including \u003cstrong\u003e$80,000\u003c\/strong\u003e for the owner, \u003cstrong\u003e2\u003c\/strong\u003e service technicians at \u003cstrong\u003e$48,000\u003c\/strong\u003e each, a \u003cstrong\u003e$65,000\u003c\/strong\u003e operations manager, and a \u003cstrong\u003e$55,000\u003c\/strong\u003e sales specialist.\u003c\/p\u003e\n\u003cp\u003eScale comes from hired technicians only when utilization stays high. By Year 5, technician staffing reaches \u003cstrong\u003e14 FTEs\u003c\/strong\u003e, but the model’s payroll figure is shown as \u003cstrong\u003e$1022 million\u003c\/strong\u003e, so that forecast needs a careful check. Here’s the key split: owner labor replacement he\nlps cash flow; true profit depends on billable hours, callbacks, overtime, and idle time.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"right-row5\"\u003e\n\u003cdiv class=\"tips-box\"\u003e\n\u003ch3\u003eTrack Billable Hours\u003c\/h3\u003e\n\u003cp\u003eMeasure \u003cstrong\u003eutilization\u003c\/strong\u003e as billable hours divided by paid hours, then compare it to training time, drive time, and rework. If a technician is on payroll but not on job, the business pays wages without earning margin. In this model, productivity matters more than headcount, because each added tech only lifts owner income when schedules stay full and quality stays tight.\u003c\/p\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eTrack billable hours per tech weekly.\u003c\/li\u003e\n\u003cli\u003eSeparate owner labor from profit.\u003c\/li\u003e\n\u003cli\u003eWatch callbacks and overtime closely.\u003c\/li\u003e\n\u003cli\u003eSchedule work to cut idle time.\u003c\/li\u003e\n\u003cli\u003eHold quality standards before hiring.\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;\"\u003eOverhead And Customer Acquisition Cost\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n\u003cdiv class=\"right-row6\"\u003e\n\u003ch3\u003eOverhead And CAC\u003c\/h3\u003e\n\u003cp\u003eThis driver includes \u003cstrong\u003e$9,100\/month\u003c\/strong\u003e in fixed overhead for rent, software, insurance, supplies, communications, accounting, and payment processing, plus paid acquisition. On paper, margin can look fine; in cash, these costs come out before owner pay. The Year 1 model also shows direct costs like \u003cstrong\u003e85%\u003c\/strong\u003e cleaning solutions and \u003cstrong\u003e52%\u003c\/strong\u003e fuel, so gross profit is only useful if overhead stays lean.\u003c\/p\u003e\n\u003cp\u003eHere’s the quick math: marketing rises from \u003cstrong\u003e$180,000\u003c\/strong\u003e in Year 1 to \u003cstrong\u003e$420,000\u003c\/strong\u003e in Year 5, while CAC drops from \u003cstrong\u003e$85\u003c\/strong\u003e to \u003cstrong\u003e$65\u003c\/strong\u003e. That means roughly \u003cstrong\u003e2,118\u003c\/strong\u003e new customers at Year 1 CAC and about \u003cstrong\u003e6,462\u003c\/strong\u003e at Year 5 CAC, if spend goes straight to acquisition. If callbacks or routing waste climb, the lower CAC gets eaten fast.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"left-row6\"\u003e\n\u003cdiv class=\"tips-box\"\u003e\n\u003ch3\u003eCut CAC Before It Hits Take-Home\u003c\/h3\u003e\n\u003cp\u003eTrack \u003cstrong\u003eCAC\u003c\/strong\u003e, callbacks, and route waste by channel. The owner should know which ads bring booked jobs, which jobs trigger rework, and which neighborhoods create the fewest drive minutes. The goal is simple: keep paid leads cheap and jobs dense.\u003c\/p\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eWatch CAC by channel weekly.\u003c\/li\u003e\n\u003cli\u003eCap callbacks and rework.\u003c\/li\u003e\n\u003cli\u003eCluster jobs to cut fuel.\u003c\/li\u003e\n\u003cli\u003eHold cash for slow months.\u003c\/li\u003e\n\u003cli\u003eProtect reserve gear and upkeep.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eControl the avoidable costs first: ads, callbacks, admin tools, and routing. Leave the unavoidable costs in the forecast: insurance, core equipment, vehicle upkeep, slow-month reserves, and replacement gear. If monthly overhead stays near \u003cstrong\u003e$9,100\u003c\/strong\u003e and CAC trends from \u003cstrong\u003e$85\u003c\/strong\u003e toward \u003cstrong\u003e$65\u003c\/strong\u003e, more of each collected dollar can reach owner draw.\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 lean, base, and high owner-income scenarios\n\u003c\/span\u003e\u003c\/h2\u003e\n\u003csection class=\"fml-scenario-table\" aria-label=\"HVAC Coil Cleaning Service Owner Income Scenarios\" data-site-name=\"Financial Models Lab\" data-site-url=\"https:\/\/financialmodelslab.com\" data-source-title=\"HVAC Coil Cleaning Service Owner Income Scenarios\" data-note-label=\"Planning note\" data-note-text=\"Scenario figures are researched planning assumptions, not guaranteed earnings, salary promises, tax advice, or cash 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 income rises as revenue, technician count, and marketing efficiency improve. EBITDA runs from $904,000 in Year 1 to $6,335,000 in Year 5, but cash, capex, debt, and taxes still shape take-home pay.\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\u003eLow, base, and high owner income cases for an HVAC coil cleaning service.\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=\"Lower earnings path built on Year 1 scale and early demand.\"\u003eLower earnings path built on Year 1 scale and early demand.\u003c\/td\u003e\n\u003ctd data-export-value=\"Modeled earnings path built on Year 3 scale and steady conversion.\"\u003eModeled earnings path built on Year 3 scale and steady conversion.\u003c\/td\u003e\n\u003ctd data-export-value=\"Stronger earnings path built on Year 5 scale and lower CAC.\"\u003eStronger earnings path built on Year 5 scale and lower CAC.\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 revenue is $1.779 million with $904,000 EBITDA, 2 technicians, $180,000 marketing, $85 CAC, break-even by Month 4, and minimum cash of $787,000.\"\u003eYear 1 revenue is $1.779 million with $904,000 EBITDA, 2 technicians, $180,000 marketing, $85 CAC, break-even by Month 4, and minimum cash of $787,000.\u003c\/td\u003e\n\u003ctd data-export-value=\"Year 3 revenue is $5.283 million with $3.437 million EBITDA, 7 technicians, $300,000 marketing, and $72 CAC.\"\u003eYear 3 revenue is $5.283 million with $3.437 million EBITDA, 7 technicians, $300,000 marketing, and $72 CAC.\u003c\/td\u003e\n\u003ctd data-export-value=\"Year 5 revenue reaches $9.299 million with $6.335 million EBITDA, 14 technicians, $420,000 marketing, and $65 CAC.\"\u003eYear 5 revenue reaches $9.299 million with $6.335 million EBITDA, 14 technicians, $420,000 marketing, and $65 CAC.\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=\"2 technicians; $180,000 marketing; $85 CAC; Year 1 volume; 50.8% EBITDA margin\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003e2 technicians\u003c\/li\u003e\n\u003cli\u003e$180,000 marketing\u003c\/li\u003e\n\u003cli\u003e$85 CAC\u003c\/li\u003e\n\u003cli\u003eYear 1 volume\u003c\/li\u003e\n\u003cli\u003e50.8% EBITDA margin\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/td\u003e\n\u003ctd data-export-value=\"7 technicians; $300,000 marketing; $72 CAC; Year 3 volume; 65.1% EBITDA margin\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003e7 technicians\u003c\/li\u003e\n\u003cli\u003e$300,000 marketing\u003c\/li\u003e\n\u003cli\u003e$72 CAC\u003c\/li\u003e\n\u003cli\u003eYear 3 volume\u003c\/li\u003e\n\u003cli\u003e65.1% EBITDA margin\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/td\u003e\n\u003ctd data-export-value=\"14 technicians; $420,000 marketing; $65 CAC; Year 5 volume; 68.1% EBITDA margin\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003e14 technicians\u003c\/li\u003e\n\u003cli\u003e$420,000 marketing\u003c\/li\u003e\n\u003cli\u003e$65 CAC\u003c\/li\u003e\n\u003cli\u003eYear 5 volume\u003c\/li\u003e\n\u003cli\u003e68.1% EBITDA margin\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=\"Salary plus early distributions\"\u003e\n\u003cstrong class=\"fml-scenario-range\"\u003eSalary plus early distributions\u003c\/strong\u003e\u003cspan class=\"fml-scenario-badge is-soft\"\u003eLow Case\u003c\/span\u003e\n\u003c\/td\u003e\n\u003ctd data-export-value=\"Salary plus steady distributions\"\u003e\n\u003cstrong class=\"fml-scenario-range\"\u003eSalary plus steady distributions\u003c\/strong\u003e\u003cspan class=\"fml-scenario-badge is-soft\"\u003eBase Case\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 Case\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 stress-test early demand, hiring pace, and cash needs.\"\u003eUse this to stress-test early demand, hiring pace, and cash needs.\u003c\/td\u003e\n\u003ctd data-export-value=\"Use this as the planning case for normal growth and staffing.\"\u003eUse this as the planning case for normal growth and staffing.\u003c\/td\u003e\n\u003ctd data-export-value=\"Use this to test what faster scaling and lower CAC could do.\"\u003eUse this to test what faster scaling and lower CAC could do.\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 Scenario figures are researched planning assumptions, not guaranteed earnings, salary promises, tax advice, or cash distributions.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e","brand":"FinancialModelsLab","offers":[{"title":"Default Title","offer_id":49303512711411,"sku":"coil-cleaning-service-owner-makes","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/coil-cleaning-service-owner-makes.webp?v=1782679257","url":"https:\/\/financialmodelslab.com\/products\/coil-cleaning-service-owner-makes","provider":"Financial Models Lab","version":"1.0","type":"link"}