{"product_id":"kitchen-exhaust-system-cleaning-owner-makes","title":"How Much Can a Kitchen Exhaust Cleaning Owner Make? 5-Year View","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 estimating owner take-home, not a guaranteed salary or tax result This five-year planning view uses \u003cstrong\u003e$154M Year 1 revenue\u003c\/strong\u003e, a \u003cstrong\u003e$120,000 CEO\/GM salary line\u003c\/strong\u003e, direct job costs, payroll, overhead, marketing, startup assets, and reinvestment limits\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=\"Kitchen Exhaust Cleaning\"\u003e\u003cdiv class=\"metric-grid\"\u003e\n\u003carticle class=\"metric-card is-green\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Year 5 owner capacity adds $120k CEO\/GM salary to $1.26M EBITDA; it excludes taxes, debt service, and reserves, so cash can be lower.\"\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 5 owner capacity adds $120k CEO\/GM salary to $1.26M EBITDA; it excludes taxes, debt service, and reserves, so cash can be lower.\"\u003e$1.38M\u003c\/strong\u003e\u003c\/article\u003e\u003carticle class=\"metric-card\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"EBITDA divided by implied revenue from the model, using Year 1 to Year 5 costs; this is operating margin, not after-tax profit.\"\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=\"EBITDA divided by implied revenue from the model, using Year 1 to Year 5 costs; this is operating margin, not after-tax profit.\"\u003e-27% to 22%\u003c\/strong\u003e\u003c\/article\u003e\u003carticle class=\"metric-card\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Year 1 break-even revenue is implied from $686.8k fixed load and 26% variable costs; it's the minimum to support the modeled owner salary.\"\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=\"Year 1 break-even revenue is implied from $686.8k fixed load and 26% variable costs; it's the minimum to support the modeled owner salary.\"\u003e$928k\u003c\/strong\u003e\u003c\/article\u003e\u003carticle class=\"metric-card\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Heavy capex, Year 1 EBITDA is -$183k, minimum cash hits $276k in Month 17, and payback takes 44 months. That's a hard build.\"\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=\"Heavy capex, Year 1 EBITDA is -$183k, minimum cash hits $276k in Month 17, and payback takes 44 months. That's a hard build.\"\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 own hood cleaning owner pay?\n\u003c\/span\u003e\u003c\/h2\u003e\n\u003csection class=\"fml-owner-calculator\" aria-label=\"Kitchen Exhaust Cleaning Owner Income Calculator\" data-locale=\"en-US\" data-currency=\"USD\" data-default-scenario=\"base\" data-export-filename=\"Kitchen Exhaust Cleaning Owner Income Calculator.xlsx\" data-source-site-name=\"Financial Models Lab\" data-source-site-url=\"https:\/\/financialmodelslab.com\" data-source-page-title=\"Kitchen Exhaust Cleaning Owner Income Calculator\" data-note-title=\"Planning note:\" data-note-text=\"This is a researched 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=\"Monthly sales from recurring accounts and one-off jobs before costs. Use the average operating month, not a peak emergency month.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly sales from recurring accounts and one-off jobs before costs. Use the average operating month, not a peak emergency 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 from recurring accounts and one-off jobs before costs. Use the average operating month, not a peak emergency month.\" data-low=\"100000\" data-base=\"200000\" data-high=\"350000\" name=\"monthlyRevenue\" type=\"text\" inputmode=\"numeric\" value=\"200,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=\"Percent of revenue left after direct cleaning supplies, equipment, fuel, and vehicle maintenance.\"\u003ei\u003cspan role=\"tooltip\"\u003ePercent of revenue left after direct cleaning supplies, equipment, fuel, and vehicle maintenance.\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 cleaning supplies, equipment, fuel, and vehicle maintenance.\" name=\"grossMargin\" type=\"range\" min=\"0\" max=\"100\" step=\"1\" data-low=\"74\" data-base=\"77\" data-high=\"81\" value=\"77\"\u003e\u003coutput\u003e77%\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 crew pay, payroll burden, and staffing coverage before owner pay. Base it on crew hours and technician wage.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly crew pay, payroll burden, and staffing coverage before owner pay. Base it on crew hours and technician wage.\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 crew pay, payroll burden, and staffing coverage before owner pay. Base it on crew hours and technician wage.\" data-low=\"25833\" data-base=\"46500\" data-high=\"117417\" name=\"laborCost\" type=\"text\" inputmode=\"numeric\" value=\"46,500\"\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=\"Monthly rent, insurance, software, professional services, utilities, and training.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly rent, insurance, software, professional services, utilities, and training.\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=\"Monthly rent, insurance, software, professional services, utilities, and training.\" data-low=\"11400\" data-base=\"11400\" data-high=\"11400\" name=\"fixedOverhead\" type=\"text\" inputmode=\"numeric\" value=\"11,400\"\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 customer acquisition spend needed to keep new accounts coming in.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly customer acquisition spend needed to keep new accounts coming in.\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 customer acquisition spend needed to keep new accounts coming in.\" data-low=\"10000\" data-base=\"20000\" data-high=\"30000\" name=\"marketing\" type=\"text\" inputmode=\"numeric\" value=\"20,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 principal and interest. Use 0 if there is no debt.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly loan principal and interest. 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 principal and interest. 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 operating profit set aside for taxes before owner take-home.\"\u003ei\u003cspan role=\"tooltip\"\u003ePercent of operating 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 operating 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 operating profit kept for repairs, growth, and cash buffer.\"\u003ei\u003cspan role=\"tooltip\"\u003ePercent of operating profit kept for repairs, growth, and cash 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 operating profit kept for repairs, growth, and cash 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=\"Monthly owner income target used to measure the target-pay gap.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly owner income target used to measure 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 target used to measure the target-pay gap.\" data-low=\"15000\" data-base=\"25000\" data-high=\"35000\" name=\"targetOwnerPay\" type=\"text\" inputmode=\"numeric\" value=\"25,000\"\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$51,748\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\"\u003e26%\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$149K\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$26,748\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$620,976\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$76,100\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$24,352\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$26,748\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$200K\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: 77%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$154K\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: 39%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$77,900\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: 12%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$24,352\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: 26%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$51,748\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 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 check owner income in the Kitchen Exhaust Cleaning model?\u003c\/span\u003e\u003c\/h3\u003e\n\n\u003cp\u003eThis \u003ca href=\"\/products\/kitchen-exhaust-system-cleaning-financial-model\"\u003eKitchen Exhaust Cleaning Financial Model Template\u003c\/a\u003e ties revenue, margin, costs, reserves, and owner pay together: $154M Year 1 revenue, $453,000 operating profit, a $120,000 CEO\/GM salary, and $999M Year 5 revenue with $607M operating profit. Open the model.\u003c\/p\u003e\n\n\u003ch4\u003eOwner-income model highlights\u003c\/h4\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eOwner take-home sensitivity\u003c\/li\u003e\n\u003cli\u003eRevenue by service mix\u003c\/li\u003e\n\u003cli\u003ePayroll and marketing growth\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\/kitchen-exhaust-system-cleaning-financial-model-dashboard-financialmodelslab_1eb41523-ffb4-4a7f-ab04-5007bedd1b0e.webp\"\u003e\n\u003cimg class=\"preview-img\" width=\"100%\" height=\"auto\" src=\"\/cdn\/shop\/files\/kitchen-exhaust-system-cleaning-financial-model-dashboard-financialmodelslab_1eb41523-ffb4-4a7f-ab04-5007bedd1b0e.webp?width=500\" alt=\"Kitchen Exhaust Cleaning Financial Model dashboard summarizing key KPIs, runway and cash position with a dynamic dashboard that tracks revenue, margins, bookings and performance for investor-ready reporting.\"\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 a kitchen exhaust cleaning owner pay themselves?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003eA Kitchen Exhaust Cleaning owner can pay themselves \u003cstrong\u003e$120,000 per year\u003c\/strong\u003e in this model from launch, because the plan includes a CEO\/GM salary for the full \u003cstrong\u003efive-year period\u003c\/strong\u003e. Year 1 still shows about \u003cstrong\u003e$453,000\u003c\/strong\u003e in EBITDA-style profit after direct costs, payroll, fixed overhead, and marketing; for demand context, see \u003ca href=\"\/blogs\/kpi-metrics\/kitchen-exhaust-system-cleaning\"\u003eWhat Is The Current Growth Rate Of Kitchen Exhaust Cleaning Business?\u003c\/a\u003e.\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\u003ePay Capacity\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003e$120,000\u003c\/strong\u003e annual CEO\/GM salary\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e$10,000\u003c\/strong\u003e monthly owner paycheck\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e$453,000\u003c\/strong\u003e Year 1 profit capacity\u003c\/li\u003e\n\u003cli\u003ePay comes from profit, not hope\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\u003eCash Guardrails\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eModel includes \u003cstrong\u003e4 field technicians\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eOwner labor may lift early cash\u003c\/li\u003e\n\u003cli\u003eFund vehicles, equipment, and training\u003c\/li\u003e\n\u003cli\u003eHold reserves before distributions\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 kitchen exhaust cleaning contracts to make $100k?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003eFor \u003cstrong\u003eKitchen Exhaust Cleaning\u003c\/strong\u003e, you need about \u003cstrong\u003e31 active contracts\u003c\/strong\u003e to reach \u003cstrong\u003e$100,000 before overhead\u003c\/strong\u003e, because Year 1 weighted monthly revenue is \u003cstrong\u003e$428 per account\u003c\/strong\u003e and gross profit is about \u003cstrong\u003e$267 a month\u003c\/strong\u003e, or roughly \u003cstrong\u003e$3,200 a year\u003c\/strong\u003e. Once you include fixed overhead, marketing, and non-owner support payroll, the target rises to about \u003cstrong\u003e152 account equivalents\u003c\/strong\u003e. The \u003cstrong\u003e$120,000\u003c\/strong\u003e marketing case at \u003cstrong\u003e$400 CAC\u003c\/strong\u003e points to \u003cstrong\u003e300 Year 1 accounts\u003c\/strong\u003e in scenario math, not a promise.\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\u003eBefore overhead\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003e$428\u003c\/strong\u003e weighted monthly revenue per account\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e62%\u003c\/strong\u003e gross margin after direct job costs\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e$267\u003c\/strong\u003e gross profit per month per account\u003c\/li\u003e\n\u003cli\u003eAbout \u003cstrong\u003e$3,200\u003c\/strong\u003e per year per account\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\u003eAfter overhead\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003e31\u003c\/strong\u003e account equivalents for $100,000 pre-overhead\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e152\u003c\/strong\u003e account equivalents after overhead\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e$120,000\u003c\/strong\u003e marketing can buy \u003cstrong\u003e300\u003c\/strong\u003e accounts\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e$400 CAC\u003c\/strong\u003e is scenario math, not a promise\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eWhat is the profit margin for kitchen exhaust cleaning?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003eKitchen Exhaust Cleaning doesn’t have one fixed profit margin; it moves with \u003cstrong\u003esupplies\u003c\/strong\u003e, \u003cstrong\u003efuel\u003c\/strong\u003e, \u003cstrong\u003emaintenance\u003c\/strong\u003e, and technician payroll. In Year 1, cleaning supplies and equipment are \u003cstrong\u003e18%\u003c\/strong\u003e of revenue and vehicle fuel and maintenance are \u003cstrong\u003e8%\u003c\/strong\u003e, so you’re at \u003cstrong\u003e26%\u003c\/strong\u003e before labor; see \u003ca href=\"\/blogs\/startup-costs\/kitchen-exhaust-system-cleaning\"\u003eWhat Is The Estimated Cost To Open And Launch Your Kitchen Exhaust Cleaning Business?\u003c\/a\u003e for the setup side. The margin improves when routes are tight, but \u003cstrong\u003erework\u003c\/strong\u003e, \u003cstrong\u003ecallbacks\u003c\/strong\u003e, night premiums, and poor routing can still cut take-home.\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\u003eYear 1 cost load\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003e18%\u003c\/strong\u003e for supplies and equipment\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e8%\u003c\/strong\u003e for fuel and maintenance\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e26%\u003c\/strong\u003e direct cost before labor\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e4\u003c\/strong\u003e field techs at \u003cstrong\u003e$45,000\u003c\/strong\u003e each\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 moves margin up\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eSupplies and fuel fall to \u003cstrong\u003e19%\u003c\/strong\u003e combined\u003c\/li\u003e\n\u003cli\u003eField technician payroll reaches \u003cstrong\u003e$720,000\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRework\u003c\/strong\u003e and \u003cstrong\u003ecallbacks\u003c\/strong\u003e hit take-home\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eNight premiums\u003c\/strong\u003e and routing waste also hurt\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;\"\u003eWant to see what drives hood cleaning owner income?\n\u003c\/span\u003e\u003c\/h2\u003e\n\u003csection class=\"fml-main-income-drivers\" aria-label=\"Main income driver cards for kitchen exhaust cleaning.\"\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\u003eRecurring Base\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$1.54M\u003c\/strong\u003e\u003cp\u003e300 Year 1 accounts at $428 a month put revenue near $1.54M, so more recurring jobs and stronger rebook rates drive most 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\u003eAverage Ticket\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$428\u003c\/strong\u003e\u003cp\u003eA higher blended monthly ticket lifts revenue fast because each account repeats, so price and service mix changes flow straight into 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\u003eCrew Output\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e4-16 FTE\u003c\/strong\u003e\u003cp\u003eField tech staffing rises from 4 FTE in Year 1 to 16 FTE by Year 5, so keeping each crew productive is what stops labor from eating margin.\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\u003eCost Control\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e26%-19%\u003c\/strong\u003e\u003cp\u003eCombined variable cost moves from 26% in Year 1 to 19% by Year 5, and each point saved drops straight to profit.\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\u003eRoute Density\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e8%-6%\u003c\/strong\u003e\u003cp\u003eVehicle fuel and maintenance falls from 8% to 6%, so tighter routes and fewer dead miles protect cash on every stop.\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\u003eFixed Overhead\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$136.8K\u003c\/strong\u003e\u003cp\u003eFixed overhead runs $136.8K a year, and lean admin plus reserve control matter because the model still needs cash until Month 9 breakeven and Month 17 minimum cash.\u003c\/p\u003e\u003c\/article\u003e\n\u003c\/div\u003e\u003c\/article\u003e\u003c\/section\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eKitchen Exhaust Cleaning Core Six Income Drivers\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\u003cbr\u003e\n\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003eRecurring Account Base And Cleaning Frequency\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n  \u003cdiv class=\"left-row1\"\u003e\n    \u003ch3\u003eRecurring Accounts\u003c\/h3\u003e\n    \u003cp\u003eIf you have repeat commercial kitchen accounts, revenue gets steadier and crews stay busy at night. Here’s the quick math: \u003cstrong\u003e300 accounts × $428\u003c\/strong\u003e weighted monthly revenue per account is about \u003cstrong\u003e$128,400 per month\u003c\/strong\u003e in Year 1, and \u003cstrong\u003e1,125 × $740\u003c\/strong\u003e is about \u003cstrong\u003e$832,500 per month\u003c\/strong\u003e by Year 5.\u003c\/p\u003e\n    \u003cp\u003eWhat this driver hides is renewal risk. Slow onboarding or weak renewals turns the business into constant reselling, which makes cash flow choppy. Cleaning frequency matters because it shapes retention, service mix, and crew utilization, so owner pay improves when recurring work fills more nights with less selling.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"right-row1\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003eImprove Retention\u003c\/h3\u003e\n      \u003cp\u003eTrack \u003cstrong\u003eactive accounts\u003c\/strong\u003e, \u003cstrong\u003ecleaning frequency\u003c\/strong\u003e, \u003cstrong\u003erenewal rate\u003c\/strong\u003e, and \u003cstrong\u003eCAC\u003c\/strong\u003e from the marketing budget. The key formula is \u003cstrong\u003emonthly revenue = active accounts × weighted monthly revenue per account\u003c\/strong\u003e, so even small retention drops hit income fast. Faster onboarding and automatic reminders help keep service on schedule.\u003c\/p\u003e\n      \u003cul class=\"lst_crct_blog\"\u003e\n        \u003cli\u003e\n\u003cstrong\u003eMeasure\u003c\/strong\u003e renewals monthly.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eWatch\u003c\/strong\u003e onboarding time closely.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003ePrice\u003c\/strong\u003e for repeat frequency.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eSchedule\u003c\/strong\u003e by service route.\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cp\u003eWhen accounts stay active, the owner gets more predictable cash, better crew use, and less dead time between jobs. That usually means more profit available for payroll, reserves, and owner draw, without needing to keep replacing lost accounts.\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;\"\u003eAverage Ticket And Job Pricing\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n  \u003cdiv class=\"right-row2\"\u003e\n    \u003ch3\u003eAverage Ticket and Job Pricing\u003c\/h3\u003e\n    \u003cp\u003e\u003cstrong\u003eAverage ticket\u003c\/strong\u003e is the price mix across hood cleaning, full system cleaning, inspections, grease containment, and emergency calls. In Year 1, that mix is \u003cstrong\u003e$180\u003c\/strong\u003e basic hood cleaning, \u003cstrong\u003e$350\u003c\/strong\u003e full system cleaning, \u003cstrong\u003e$95\u003c\/strong\u003e fire safety inspection, \u003cstrong\u003e$125\u003c\/strong\u003e grease containment, and \u003cstrong\u003e$450\u003c\/strong\u003e emergency response, with weighted monthly revenue per account at \u003cstrong\u003e$428\u003c\/strong\u003e. When labor is controlled, better pricing lifts revenue and gross margin fast.\u003c\/p\u003e\n    \u003cp\u003eThe risk is underpricing hard work. A job with more hood size, fan and duct count, grease load, access trouble, travel, or documentation risk should not be sold like a simple clean. If those jobs are priced too low, you get rework, low-margin nights, and weaker owner pay. By Year 5, the same account mix reaches \u003cstrong\u003e$740\u003c\/strong\u003e weighted monthly revenue, so pricing discipline matters more as volume grows.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"left-row2\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003ePrice by complexity, not by habit\u003c\/h3\u003e\n      \u003cp\u003eTrack ticket size by job type, crew hours, and callback rate. Here’s the quick math: if a job needs more access time, more duct work, or extra reporting, the price should rise with it. The inputs that matter most are hood size, fan and duct count, grease load, travel time, and inspection documentation. One clean rule: if the job is harder, the ticket has to be higher.\u003c\/p\u003e\n      \u003cp\u003eReview quotes against actual labor and revisit any job that takes longer than planned. Compare \u003cstrong\u003e$180\u003c\/strong\u003e, \u003cstrong\u003e$350\u003c\/strong\u003e, \u003cstrong\u003e$125\u003c\/strong\u003e, and \u003cstrong\u003e$450\u003c\/strong\u003e jobs by gross profit, not by sales volume alone. If hard jobs keep landing below target margin, raise the rate or split the scope so the owner keeps take-home income instead of funding extra labor with thin pricing.\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;\"\u003eCrew Productivity And Labor Hours\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n\u003cdiv class=\"left-row3\"\u003e\n\u003ch3\u003eCrew Productivity And Labor Hours\u003c\/h3\u003e\n\u003cp\u003eWhen crews finish right the first time, the owner keeps more of each job. The model assumes field technicians at \u003cstrong\u003e$45,000 per FTE\u003c\/strong\u003e, rising from \u003cstrong\u003e4 FTE\u003c\/strong\u003e in Year 1 to \u003cstrong\u003e16 FTE\u003c\/strong\u003e in Year 5, so payroll climbs from \u003cstrong\u003e$180,000\u003c\/strong\u003e to \u003cstrong\u003e$720,000\u003c\/strong\u003e. Labor hours, callbacks, and overtime decide how much of that revenue turns into owner income.\u003c\/p\u003e\n\u003cp\u003eThe risk is simple: cutting labor too far can trigger rework, customer loss, and insurance exposure. Here’s the key point: the model’s reported gross margin after supplies, fuel, maintenance, and field tech payroll improves from \u003cstrong\u003e623%\u003c\/strong\u003e to \u003cstrong\u003e738%\u003c\/strong\u003e, so any wasted hour hits profit and cash flow fast.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"right-row3\"\u003e\n\u003cdiv class=\"tips-box\"\u003e\n\u003ch3\u003eTrack hours and callbacks\u003c\/h3\u003e\n\u003cp\u003eMeasure \u003cstrong\u003elabor hours per cleaning\u003c\/strong\u003e, \u003cstrong\u003ecallback rate\u003c\/strong\u003e, \u003cstrong\u003eovertime hours\u003c\/strong\u003e, and first-pass completion on every crew. Also flag the jobs with heavy duct work, rooftop access, or grease buildup, since those jobs usually create the biggest labor swings.\u003c\/p\u003e\n\u003cp\u003eUse payroll as your guardrail: \u003cstrong\u003e4 FTE = $180,000\u003c\/strong\u003e and \u003cstrong\u003e16 FTE = $720,000\u003c\/strong\u003e. If labor goes up, it should come with fewer callbacks, lower overtime, and tighter quality control so the owner’s draw doesn’t get squeezed by rework.\u003c\/p\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eTrack hours per job.\u003c\/li\u003e\n\u003cli\u003eReview callback causes weekly.\u003c\/li\u003e\n\u003cli\u003eCap overtime from rework.\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;\"\u003eRoute Density And Overnight Scheduling\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n\u003cdiv class=\"right-row4\"\u003e\n\u003ch3\u003eRoute Density\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong\u003eRoute density\u003c\/strong\u003e means putting nearby accounts on the same night route so crews spend less time driving and more time cleaning. In this business, that directly protects take-home income because vehicle \u003cstrong\u003efuel and maintenance\u003c\/strong\u003e are modeled at \u003cstrong\u003e8% of revenue in Year 1\u003c\/strong\u003e and \u003cstrong\u003e6% by Year 5\u003c\/strong\u003e. If accounts are scattered, paid hours shift from billable work to windshield time, and gross margin falls.\u003c\/p\u003e\n\u003cp\u003eTrack \u003cstrong\u003ejobs per truck-night\u003c\/strong\u003e, \u003cstrong\u003edrive time per route\u003c\/strong\u003e, and \u003cstrong\u003ebillable crew hours\u003c\/strong\u003e. One clean rule: more clustered stops should raise completed jobs without lowering cleaning quality. Use routing by area, service scope, and crew capacity, because mixed or far-apart stops can make strong revenue look weak on cash flow and owner draw.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"left-row4\"\u003e\n\u003cdiv class=\"tips-box\"\u003e\n\u003ch3\u003eCluster by Area\u003c\/h3\u003e\n\u003cp\u003eBuild schedules by \u003cstrong\u003eZIP code\u003c\/strong\u003e, service type, and crew size. Here’s the quick test: if a route has high revenue but too many unpaid miles, it is probably under-earning. Measure \u003cstrong\u003ewindshield time\u003c\/strong\u003e, fuel spend, maintenance spend, and the number of accounts each crew closes per night. That tells you whether routing is helping margin or leaking it.\u003c\/p\u003e\n\u003cp\u003eSet a routing rule that groups nearby accounts first, then fills the night with compatible work. Keep the same crew on similar jobs when you can, so setup time stays low and quality stays steady. The goal is simple: \u003cstrong\u003emore billable hours\u003c\/strong\u003e, fewer paid driving hours, and a cleaner path to owner 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;\"\u003eDirect Cost 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\u003eDirect Cost Control\u003c\/h3\u003e\n\u003cp\u003eFor kitchen exhaust cleaning, \u003cstrong\u003edirect cost control\u003c\/strong\u003e means the variable spend tied to each job: degreaser, supplies, PPE, disposal, equipment wear, fuel, maintenance, and rework. Those costs run at \u003cstrong\u003e26%\u003c\/strong\u003e of revenue in Year 1 and imp\nrove to \u003cstrong\u003e19%\u003c\/strong\u003e by Year 5 before field labor. If pricing holds, every \u003cstrong\u003e1 point\u003c\/strong\u003e saved here lifts operating profit and the cash available for owner pay.\u003c\/p\u003e\n\u003cp\u003eHere’s the quick math: if a job brings in \u003cstrong\u003e$100\u003c\/strong\u003e, direct costs drop from \u003cstrong\u003e$26\u003c\/strong\u003e to \u003cstrong\u003e$19\u003c\/strong\u003e as the model improves. That \u003cstrong\u003e$7\u003c\/strong\u003e stays in the business to cover crew payroll and overhead. The risk is simple: heavy grease, poor access, or weak process can push up rework and wipe out margin fast.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"right-row5\"\u003e\n\u003cdiv class=\"tips-box\"\u003e\n\u003ch3\u003eCut Variable Spend\u003c\/h3\u003e\n\u003cp\u003eTrack direct cost by job, not just by month. Watch \u003cstrong\u003edegreaser use\u003c\/strong\u003e, supply usage, PPE, disposal, fuel, maintenance, and callbacks on every site. If one route or crew runs above the \u003cstrong\u003e26%\u003c\/strong\u003e start rate, fix the process before it spreads. One clean job with tight material use pays better than two messy ones.\u003c\/p\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eSet material limits per cleaning type.\u003c\/li\u003e\n\u003cli\u003eLog fuel and maintenance by route.\u003c\/li\u003e\n\u003cli\u003eCharge extra for heavy grease or access.\u003c\/li\u003e\n\u003cli\u003eReview rework and disposal costs weekly.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eKeep the estimate tied to job mix and field discipline. As cleaning supplies and equipment move from \u003cstrong\u003e18%\u003c\/strong\u003e of revenue in Year 1 to \u003cstrong\u003e13%\u003c\/strong\u003e in Year 5, the gap comes from better control, not luck. What this estimate hides: if crews rush and create rework, the savings vanish and owner draw falls with it.\u003c\/p\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, Insurance, And Reserves\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n\u003cdiv class=\"right-row6\"\u003e\n\u003ch3\u003eFixed Overhead And Reserves\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong\u003e$11,400 per month\u003c\/strong\u003e in fixed overhead means owner pay only starts after rent, insurance, software, professional services, utilities, and training are covered. The business also has about \u003cstrong\u003e$450,000\u003c\/strong\u003e in startup equipment and setup spend, so cash has to stay on hand for vehicles, repairs, and payroll timing. One-liner: profit on paper is not spendable cash.\u003c\/p\u003e\n\u003cp\u003eIf reserves are too thin, a strong month can still leave the owner short when a truck breaks or customer cash comes in late. The key check is simple: after overhead, keep enough cash back for near-term shocks before any draw.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"left-row6\"\u003e\n\u003cdiv class=\"tips-box\"\u003e\n\u003ch3\u003eProtect Cash Before Owner Draw\u003c\/h3\u003e\n\u003cp\u003eTrack monthly overhead, bank balance, and near-term spend on vehicles and repairs. Tie owner draws to cash after reserve funding, not just accounting profit. With overhead at \u003cstrong\u003e$136,800 per year\u003c\/strong\u003e, every month has to clear that floor before owner income is safe.\u003c\/p\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eReview cash weekly.\u003c\/li\u003e\n\u003cli\u003eReserve for payroll timing.\u003c\/li\u003e\n\u003cli\u003eHold cash for repairs.\u003c\/li\u003e\n\u003cli\u003eDelay draws after heavy capex.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eWhat this hides: a profitable month can still be unsafe if collections slip or a truck fails. A written reserve policy protects operating cash before any distribution.\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 higher-capacity owner income scenarios\n\u003c\/span\u003e\u003c\/h2\u003e\n\u003csection class=\"fml-scenario-table\" aria-label=\"Kitchen Exhaust Cleaning Owner Income Scenarios\" data-site-name=\"Financial Models Lab\" data-site-url=\"https:\/\/financialmodelslab.com\" data-source-title=\"Kitchen Exhaust Cleaning 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; taxes, debt service, and reserves can cut withdrawable cash.\"\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 changes fast with account count, pricing mix, and crew scale. Early ramp can pay well, but the bigger cases need more staff and working cash.\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 cases show how route density and crew size change owner income.\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\"\u003eEarly ramp\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\"\u003eScaled route\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\"\u003eMulti-crew operator\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 lower earnings path, modeled on the Year 1 launch route with 300 accounts and about $453k operating profit.\"\u003eThis is the lower earnings path, modeled on the Year 1 launch route with 300 accounts and about $453k operating profit.\u003c\/td\u003e\n\u003ctd data-export-value=\"This is the modeled middle case, built on the Year 3 operating plan with 667 accounts and about $2.33M operating profit.\"\u003eThis is the modeled middle case, built on the Year 3 operating plan with 667 accounts and about $2.33M operating profit.\u003c\/td\u003e\n\u003ctd data-export-value=\"This is the stronger earnings path, based on the Year 5 model with 1,125 accounts and about $6.07M operating profit.\"\u003eThis is the stronger earnings path, based on the Year 5 model with 1,125 accounts and about $6.07M operating profit.\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=\"The business is still in early ramp, with about $428 weighted monthly revenue per account, roughly 62.3% gross margin, and a $120k CEO\/GM salary base.\"\u003eThe business is still in early ramp, with about $428 weighted monthly revenue per account, roughly 62.3% gross margin, and a $120k CEO\/GM salary base.\u003c\/td\u003e\n\u003ctd data-export-value=\"This is the scaled route case, with about $575 weighted monthly revenue per account and roughly 70.2% gross margin as the team and route network thicken.\"\u003eThis is the scaled route case, with about $575 weighted monthly revenue per account and roughly 70.2% gross margin as the team and route network thicken.\u003c\/td\u003e\n\u003ctd data-export-value=\"This is the multi-crew operator case, with about $740 weighted monthly revenue per account and roughly 73.8% gross margin after direct costs and payroll.\"\u003eThis is the multi-crew operator case, with about $740 weighted monthly revenue per account and roughly 73.8% gross margin after direct costs and payroll.\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=\"300 accounts; $428 monthly revenue per account; direct job costs; field tech payroll; fixed overhead\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003e300 accounts\u003c\/li\u003e\n\u003cli\u003e$428 monthly revenue per account\u003c\/li\u003e\n\u003cli\u003edirect job costs\u003c\/li\u003e\n\u003cli\u003efield tech payroll\u003c\/li\u003e\n\u003cli\u003efixed overhead\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/td\u003e\n\u003ctd data-export-value=\"667 accounts; $575 monthly revenue per account; direct job costs; field tech payroll; route density\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003e667 accounts\u003c\/li\u003e\n\u003cli\u003e$575 monthly revenue per account\u003c\/li\u003e\n\u003cli\u003edirect job costs\u003c\/li\u003e\n\u003cli\u003efield tech payroll\u003c\/li\u003e\n\u003cli\u003eroute density\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/td\u003e\n\u003ctd data-export-value=\"1,125 accounts; $740 monthly revenue per account; crew scale; direct job costs; working capital\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003e1,125 accounts\u003c\/li\u003e\n\u003cli\u003e$740 monthly revenue per account\u003c\/li\u003e\n\u003cli\u003ecrew scale\u003c\/li\u003e\n\u003cli\u003edirect job costs\u003c\/li\u003e\n\u003cli\u003eworking capital\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=\"About $453k\"\u003e\n\u003cstrong class=\"fml-scenario-range\"\u003eAbout $453k\u003c\/strong\u003e\u003cspan class=\"fml-scenario-badge is-soft\"\u003eLaunch case\u003c\/span\u003e\n\u003c\/td\u003e\n\u003ctd data-export-value=\"About $2.33M\"\u003e\n\u003cstrong class=\"fml-scenario-range\"\u003eAbout $2.33M\u003c\/strong\u003e\u003cspan class=\"fml-scenario-badge is-soft\"\u003eMid-case\u003c\/span\u003e\n\u003c\/td\u003e\n\u003ctd data-export-value=\"About $6.07M\"\u003e\n\u003cstrong class=\"fml-scenario-range\"\u003eAbout $6.07M\u003c\/strong\u003e\u003cspan class=\"fml-scenario-badge is-warning\"\u003eUpside 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 if you want a conservative launch case and want to test cash use before the route fills.\"\u003eUse this if you want a conservative launch case and want to test cash use before the route fills.\u003c\/td\u003e\n\u003ctd data-export-value=\"Use this as the middle case if you expect steady account growth and want a realistic operator target.\"\u003eUse this as the middle case if you expect steady account growth and want a realistic operator target.\u003c\/td\u003e\n\u003ctd data-export-value=\"Use this to test what happens when you add crews, grow the account base, and need more cash buffer.\"\u003eUse this to test what happens when you add crews, grow the account base, and need more cash buffer.\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; taxes, debt service, and reserves can cut withdrawable cash.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e","brand":"FinancialModelsLab","offers":[{"title":"Default Title","offer_id":49303954030835,"sku":"kitchen-exhaust-system-cleaning-owner-makes","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/kitchen-exhaust-system-cleaning-owner-makes.webp?v=1782685531","url":"https:\/\/financialmodelslab.com\/products\/kitchen-exhaust-system-cleaning-owner-makes","provider":"Financial Models Lab","version":"1.0","type":"link"}