{"product_id":"dryer-vent-cleaning-owner-makes","title":"How Much Dryer Vent Cleaning Owners Make: $75k Pay, $65k EBITDA","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 trying to turn service calls into real owner income, not just busy routes This five-year planning model separates \u003cstrong\u003e$483,000 in Year 1 revenue\u003c\/strong\u003e, \u003cstrong\u003e$65,000 in Year 1 EBITDA\u003c\/strong\u003e, and owner pay before personal taxes EBITDA means operating profit before interest, taxes, depreciation, and amortization it is not the same as cash you can safely withdraw\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=\"Owner income snapshot\"\u003e\u003cdiv class=\"metric-grid\"\u003e\n\u003carticle class=\"metric-card is-green\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Year 1 GM salary if the owner fills that role; excludes personal taxes, benefits, and guaranteed distributions.\"\u003e\u003cimg class=\"metric-icon\" src=\"\/cdn\/shop\/files\/fml-owner-income-kpi-owner-income.svg\" alt=\"Owner income icon\" loading=\"lazy\"\u003e\u003c\/span\u003e\u003cspan\u003eOwner income\u003c\/span\u003e\u003cstrong class=\"metric-value\" tabindex=\"0\" data-tooltip=\"Year 1 GM salary if the owner fills that role; excludes personal taxes, benefits, and guaranteed distributions.\"\u003e$75k\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 the model; it excludes interest, taxes, depreciation, amortization, and owner draws.\"\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 the model; it excludes interest, taxes, depreciation, amortization, and owner draws.\"\u003e13.5% to 48.1%\u003c\/strong\u003e\u003c\/article\u003e\u003carticle class=\"metric-card\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Year 1 service revenue averages about $40.3k per month from $483k annual revenue; model revenue only, not a pay guarantee.\"\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 service revenue averages about $40.3k per month from $483k annual revenue; model revenue only, not a pay guarantee.\"\u003e$40.3k\/mo\u003c\/strong\u003e\u003c\/article\u003e\u003carticle class=\"metric-card\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Startup cash peaks at $799k in Month 2, with vans, labor, and working capital driving the setup.\"\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=\"Startup cash peaks at $799k in Month 2, with vans, labor, and working capital driving the setup.\"\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 target?\n\u003c\/span\u003e\u003c\/h2\u003e\n\u003csection class=\"fml-owner-calculator\" aria-label=\"Dryer Vent Cleaning Service Owner Income Calculator\" data-locale=\"en-US\" data-currency=\"USD\" data-default-scenario=\"base\" data-export-filename=\"Dryer Vent Cleaning Service Owner Income Calculator.xlsx\" data-source-site-name=\"Financial Models Lab\" data-source-site-url=\"https:\/\/financialmodelslab.com\" data-source-page-title=\"Dryer Vent Cleaning Service Owner Income Calculator\" data-note-title=\"Planning note:\" data-note-text=\"Research-based planning estimate only. It is not guaranteed salary, tax advice, or owner distribution advice. Actual owner income depends on revenue, margin, 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 target-pay gap from revenue, margin, costs, reserves, and target pay for a dryer vent cleaning service.\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=\"Average operating month revenue before expenses. Use annual model revenue divided by 12.\"\u003ei\u003cspan role=\"tooltip\"\u003eAverage operating month revenue before expenses. Use annual model revenue divided by 12.\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=\"Average operating month revenue before expenses. Use annual model revenue divided by 12.\" data-low=\"40250\" data-base=\"134750\" data-high=\"233500\" name=\"monthlyRevenue\" type=\"text\" inputmode=\"numeric\" value=\"134,750\"\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 left after cleaning supplies, fuel and maintenance, payment processing, and referral commissions.\"\u003ei\u003cspan role=\"tooltip\"\u003ePercent left after cleaning supplies, fuel and maintenance, payment processing, and referral commissions.\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 left after cleaning supplies, fuel and maintenance, payment processing, and referral commissions.\" name=\"grossMargin\" type=\"range\" min=\"0\" max=\"100\" step=\"0.1\" data-low=\"71.5\" data-base=\"74.2\" data-high=\"77\" value=\"74.2\"\u003e\u003coutput\u003e74.2%\u003c\/output\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eLabor cost\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Monthly payroll and contractor cost before owner pay. Use the technician, office, and sales staffing plan.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly payroll and contractor cost before owner pay. Use the technician, office, and sales staffing plan.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-money\"\u003e\n\u003cspan\u003e$\u003c\/span\u003e\u003cinput data-owner-field=\"laborCost\" data-owner-kind=\"money\" data-owner-label=\"Labor cost\" data-owner-note=\"Monthly payroll and contractor cost before owner pay. Use the technician, office, and sales staffing plan.\" data-low=\"15958.33\" data-base=\"33333.33\" data-high=\"46541.67\" name=\"laborCost\" type=\"text\" inputmode=\"numeric\" value=\"33,333\"\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, CRM and scheduling software, utilities, licensing, and uniforms and PPE.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly rent, insurance, CRM and scheduling software, utilities, licensing, and uniforms and PPE.\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, CRM and scheduling software, utilities, licensing, and uniforms and PPE.\" data-low=\"3650\" data-base=\"3650\" data-high=\"3650\" name=\"fixedOverhead\" type=\"text\" inputmode=\"numeric\" value=\"3,650\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eMarketing\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Monthly customer acquisition spend based on the annual marketing budget.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly customer acquisition spend based on the annual marketing budget.\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 based on the annual marketing budget.\" data-low=\"1250\" data-base=\"2500\" data-high=\"3333.33\" name=\"marketing\" type=\"text\" inputmode=\"numeric\" value=\"2,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\u003eDebt service\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Monthly loan payment, if any. Use 0 if the business has no debt.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly loan payment, if any. Use 0 if the business has 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 payment, if any. Use 0 if the business has 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=\"50\" step=\"1\" data-low=\"20\" data-base=\"24\" data-high=\"28\" value=\"24\"\u003e\u003coutput\u003e24%\u003c\/output\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eReinvestment reserve\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Percent of profit kept for repairs, growth, working capital, and cash buffer.\"\u003ei\u003cspan role=\"tooltip\"\u003ePercent of profit kept for repairs, growth, working capital, 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 profit kept for repairs, growth, working capital, and cash buffer.\" name=\"reinvestmentReserve\" type=\"range\" min=\"0\" max=\"50\" 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 goal used to calculate the target-pay gap.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly owner income goal 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=\"Monthly owner income goal used to calculate the target-pay gap.\" data-low=\"6000\" data-base=\"10000\" data-high=\"15000\" name=\"targetOwnerPay\" type=\"text\" inputmode=\"numeric\" value=\"10,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$39,931\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\"\u003e30%\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$73,632\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$29,931\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$479,174\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$60,501\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$20,570\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$29,931\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$135K\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: 74%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$99,984\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: 29%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$39,483\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: 15%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$20,570\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: 30%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$39,931\u003c\/b\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbutton class=\"fml-owner-export\" type=\"button\" data-owner-export\u003eEXPORT XLSX\u003c\/button\u003e\u003c\/aside\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-note\"\u003e\n\u003cspan class=\"fml-owner-note-icon\" aria-hidden=\"true\"\u003e!\u003c\/span\u003e\u003cp\u003e\u003cstrong\u003ePlanning note:\u003c\/strong\u003e Research-based planning estimate only. It is not guaranteed salary, tax advice, or owner distribution advice. Actual owner income depends on revenue, margin, 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;\"\u003eWant to check owner income month by month?\u003c\/span\u003e\u003c\/h3\u003e\n\n\u003cp\u003eThe screenshot shows \u003cstrong\u003erevenue\u003c\/strong\u003e, margin, costs, reserves, and owner take-home logic in the \u003ca href=\"\/products\/dryer-vent-cleaning-financial-model\"\u003eDryer Vent Cleaning Service Financial Model Template\u003c\/a\u003e—open it now.\u003c\/p\u003e\n\n\u003ch4\u003eOwner-income model highlights\u003c\/h4\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\u003cstrong\u003e$483k to $2.802M revenue\u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eEBITDA grows to $1.348M\u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eBreakeven hits Month 6\u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eMonth 2 cash need: $799k\u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003e19-month payback window\u003c\/strong\u003e\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\/dryer-vent-cleaning-financial-model-dashboard-financialmodelslab_2c5456a7-04aa-430b-b4e2-da57a80dd13b.webp\"\u003e\n\u003cimg class=\"preview-img\" width=\"100%\" height=\"auto\" src=\"\/cdn\/shop\/files\/dryer-vent-cleaning-financial-model-dashboard-financialmodelslab_2c5456a7-04aa-430b-b4e2-da57a80dd13b.webp?width=500\" alt=\"Dryer Vent Cleaning Service Financial Model dashboard summarizing key KPIs, runway, cash position and performance with a dynamic dashboard for investor-ready reporting and cash-flow blind spot visibility.\"\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;\"\u003eWhat is the profit margin for a dryer vent cleaning business?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003eFor a \u003cstrong\u003eDryer Vent Cleaning Service\u003c\/strong\u003e, profit margin should be read as \u003cstrong\u003eowner income\u003c\/strong\u003e, not just generic profit: modeled \u003cstrong\u003eEBITDA\u003c\/strong\u003e (operating cash profit before debt and taxes) is \u003cstrong\u003e135%\u003c\/strong\u003e in Year 1, then \u003cstrong\u003e316%\u003c\/strong\u003e, \u003cstrong\u003e393%\u003c\/strong\u003e, \u003cstrong\u003e458%\u003c\/strong\u003e, and \u003cstrong\u003e481%\u003c\/strong\u003e by Year 5. Here’s the catch: early cost pressure is real, with \u003cstrong\u003esupplies at 85%\u003c\/strong\u003e, \u003cstrong\u003efuel and direct maintenance at 120%\u003c\/strong\u003e, \u003cstrong\u003eprocessing at 30%\u003c\/strong\u003e, \u003cstrong\u003ereferral commissions at 50%\u003c\/strong\u003e, plus \u003cstrong\u003e$3,650\/month\u003c\/strong\u003e in fixed overhead before payroll and marketing. If you’re mapping the numbers into a plan, see \u003ca href=\"\/blogs\/write-business-plan\/dryer-vent-cleaning\"\u003eHow To Write A Business Plan For Dryer Vent Cleaning Service?\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\u003eMargin drivers\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003e135%\u003c\/strong\u003e Year 1 EBITDA\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e316%\u003c\/strong\u003e Year 2 EBITDA\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e393%\u003c\/strong\u003e Year 3 EBITDA\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e481%\u003c\/strong\u003e Year 5 EBITDA\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 points\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003e85%\u003c\/strong\u003e supplies in Year 1\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e120%\u003c\/strong\u003e fuel and maintenance\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e30%\u003c\/strong\u003e processing fees\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e$3,650\/month\u003c\/strong\u003e fixed overhead\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eCan a dryer vent cleaning business scale?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003eYes, \u003cstrong\u003eDryer Vent Cleaning Service\u003c\/strong\u003e can scale, but not if the owner stays on every job. Growth comes when the owner moves to routes, technicians, recurring accounts, and customer acquisition, because one-truck income is limited by appointments, drive time, and job length. In the model, adding \u003cstrong\u003eService Van 2\u003c\/strong\u003e in \u003cstrong\u003eMonth 6\u003c\/strong\u003e for \u003cstrong\u003e$45,000\u003c\/strong\u003e reaches breakeven in \u003cstrong\u003eMonth 6\u003c\/strong\u003e, while annual subscriptions rise from \u003cstrong\u003e20%\u003c\/strong\u003e in Year 1 to \u003cstrong\u003e40%\u003c\/strong\u003e in Year 5. Cash is the real squeeze: minimum cash need hits \u003cstrong\u003e$799,000\u003c\/strong\u003e in Month 2, and payback takes \u003cstrong\u003e19 months\u003c\/strong\u003e, so reserves need to come before distributions.\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\u003eScale drivers\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eRoutes\u003c\/strong\u003e beat solo jobs\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTechnicians\u003c\/strong\u003e replace owner labor\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRecurring plans\u003c\/strong\u003e lift repeat revenue\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCommercial mix\u003c\/strong\u003e stays at 10%\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\u003eCash risks\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003e$799,000\u003c\/strong\u003e cash need in Month 2\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e19-month\u003c\/strong\u003e payback period\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMonth 6\u003c\/strong\u003e adds Van 2\u003c\/li\u003e\n\u003cli\u003eKeep 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;\"\u003eIs dryer vent cleaning profitable as an owner operator?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003eYes—\u003cstrong\u003eDryer Vent Cleaning Service\u003c\/strong\u003e can be profitable as an owner-operator because the owner keeps more of the labor margin, but the tradeoff is a hard cap on jobs from driving, cleaning, quoting, and admin. In the staffed version, Year 1 payroll is \u003cstrong\u003e$191,500\u003c\/strong\u003e; if the owner replaces the GM role, the modeled salary is \u003cstrong\u003e$75,000\u003c\/strong\u003e before personal taxes.\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\u003eOwner-operator upside\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eOwner keeps more labor margin\u003c\/li\u003e\n\u003cli\u003ePayroll stays lower at start\u003c\/li\u003e\n\u003cli\u003eTake-home can improve fast\u003c\/li\u003e\n\u003cli\u003eCapacity still tops out quickly\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\u003eHiring changes the math\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eTechnicians add route capacity\u003c\/li\u003e\n\u003cli\u003ePayroll burden rises with staff\u003c\/li\u003e\n\u003cli\u003eTraining and callbacks add drag\u003c\/li\u003e\n\u003cli\u003eRevenue must beat labor and overhead\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 the six drivers behind owner income?\n\u003c\/span\u003e\u003c\/h2\u003e\n\u003csection class=\"fml-main-income-drivers\" aria-label=\"Main income drivers for dryer vent cleaning service.\"\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~39\/wk\u003c\/strong\u003e\u003cp\u003eMore completed jobs raise revenue fastest, because each booked route adds labor hours with little extra overhead.\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\u003eTicket Mix\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$241\u003c\/strong\u003e\u003cp\u003eThe weighted Year 1 ticket is about $241, so upsells and more commercial work lift income without many extra stops.\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 Model\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$191.5K\u003c\/strong\u003e\u003cp\u003ePayroll is about $191.5K in Year 1, so crew mix decides how much of each dollar reaches profit.\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\u003eOverhead\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$3.65K\/mo\u003c\/strong\u003e\u003cp\u003eFixed overhead runs about $3,650 a month, so lean back-office costs protect take-home as volume grows.\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\u003eMed-High\u003c\/strong\u003e\u003cp\u003eGrouping nearby stops cuts drive time and fuel, so the same crew can finish more jobs each day.\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\u003eLead Cost\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$45-\u0026gt;$35\u003c\/strong\u003e\u003cp\u003eCustomer acquisition cost (CAC) falls from $45 in Year 1 to $35 by Year 5, so marketing buys cheaper leads over time.\u003c\/p\u003e\u003c\/article\u003e\n\u003c\/div\u003e\u003c\/article\u003e\u003c\/section\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eDryer Vent Cleaning Service Core Six Income Drivers\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\u003cbr\u003e\n\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003eJobs Completed\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n\u003cdiv class=\"left-row1\"\u003e\n\u003ch3\u003eCompleted Jobs\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong\u003eCompleted paid jobs\u003c\/strong\u003e are what turn leads into revenue. At the Year 1 plan of \u003cstrong\u003e$483,000\u003c\/strong\u003e revenue and a \u003cstrong\u003e$241\u003c\/strong\u003e weighted ticket, the math works out to about \u003cstrong\u003e2,002 jobs a year\u003c\/strong\u003e, or \u003cstrong\u003e39 per week\u003c\/strong\u003e. Leads that cancel, no-show, or price-shop never hit the income line, so the owner only gets paid on jobs the crew finishes and collects.\u003c\/p\u003e\n\u003cp\u003eThis driver is squeezed by travel time, job length, dispatch gaps, seasonal demand, and callbacks. If crews miss \u003cstrong\u003eone job per day\u003c\/strong\u003e, revenue and contribution fall fast because fixed costs and payroll still need the same cash. One clean job can carry a lot of overhead; one lost job can break the week.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"right-row1\"\u003e\n\u003cdiv class=\"tips-box\"\u003e\n\u003ch3\u003eTrack the Finished-Ticket Rate\u003c\/h3\u003e\n\u003cp\u003eMeasure \u003cstrong\u003ebooked jobs\u003c\/strong\u003e, \u003cstrong\u003ecompleted jobs\u003c\/strong\u003e, \u003cstrong\u003eno-shows\u003c\/strong\u003e, \u003cstrong\u003ecancels\u003c\/strong\u003e, and \u003cstrong\u003ecallbacks\u003c\/strong\u003e every week. The key inputs are jobs per day, average ticket, drive time, job duration, and close rate from lead to paid ticket. If the team cannot hold \u003cstrong\u003e39 completed jobs per week\u003c\/strong\u003e, the plan’s revenue and owner draw both shrink.\u003c\/p\u003e\n\u003cp\u003eUse simple controls: group stops by area, confirm appointments twice, and cut rework fast. Track jobs per tech-day and lost time between stops. \u003cstrong\u003eHere’s the quick check:\u003c\/strong\u003e more finished tickets at the same cost base means higher cash flow and more money left for owner pay.\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 Add-Ons\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\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong\u003eAverage ticket\u003c\/strong\u003e is the cash you collect per completed job. It matters because the same trip can produce more revenue without adding the same number of visits. In Year 1, the weighted ticket is about \u003cstrong\u003e$241\u003c\/strong\u003e, built from \u003cstrong\u003e$165\u003c\/strong\u003e residential cleaning, \u003cstrong\u003e$11875\u003c\/strong\u003e annual subscription visits, and \u003cstrong\u003e$1,020\u003c\/strong\u003e commercial contracts. Higher ticket lifts owner pay if labor and travel stay controlled.\u003c\/p\u003e\n\u003cp\u003eBy Year 5, the weighted ticket rises to about \u003cstrong\u003e$281\u003c\/strong\u003e, or roughly \u003cstrong\u003e16.6%\u003c\/strong\u003e more than Year 1. That helps gross profit per stop, but only if pricing holds and add-ons do not create callbacks. One bad upsell can erase the margin from several clean jobs.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"left-row2\"\u003e\n\u003cdiv class=\"tips-box\"\u003e\n\u003ch3\u003ePrice Add-Ons Carefully\u003c\/h3\u003e\n\u003cp\u003eTrack \u003cstrong\u003eaverage ticket by job type\u003c\/strong\u003e, \u003cstrong\u003eadd-on attach rate\u003c\/strong\u003e, and \u003cstrong\u003ecallback cost\u003c\/strong\u003e. Add-ons only help when the sell price clears parts, labor, and rework risk. Do not count vent parts or repair work as guaranteed revenue until it is booked, installed, and paid.\u003c\/p\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eSplit residential, subscription, and commercial ticket.\u003c\/li\u003e\n\u003cli\u003ePrice above parts and labor.\u003c\/li\u003e\n\u003cli\u003eMeasure callback rate monthly.\u003c\/li\u003e\n\u003cli\u003eTest higher prices before discounting.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eHere’s the quick math: if the mix shifts toward subscriptions and hourly pricing rises, the same route can support more take-home income. But if add-ons are underpriced, they add time and risk without adding profit. That turns a good-looking sale into weak cash flow fast.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"timeline\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"step-circle step2\"\u003e2\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003eRoute Density\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 paid jobs crews can finish in one area before they have to drive again. In this model, tighter routes lift owner income because less \u003cstrong\u003ewindshield time\u003c\/strong\u003e, fuel, overtime, and dispatch waste turns into either more jobs per day or lower labor cost. With fuel and direct maintenance modeled at \u003cstrong\u003e120%\u003c\/strong\u003e of revenue in Year 1 and \u003cstrong\u003e100%\u003c\/strong\u003e by Year 5, weak routing can wipe out margin fast.\u003c\/p\u003e\n    \u003cp\u003eThe inputs that matter are \u003cstrong\u003ejobs per day\u003c\/strong\u003e, drive minutes per job, service area size, and callback rate. A full schedule with long gaps looks busy, but if crews spend the day driving, cash flow drops and owner pay gets squeezed. Booking neighborhoods by day and grouping commercial visits keeps the same payroll tied to more billable work.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"right-row3\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003eTighten the Map\u003c\/h3\u003e\n      \u003cp\u003eTrack \u003cstrong\u003edrive minutes per job\u003c\/strong\u003e, \u003cstrong\u003efuel per job\u003c\/strong\u003e, and \u003cstrong\u003ejobs per route\u003c\/strong\u003e every week. Start with one zip or neighborhood per day, then batch nearby homes and commercial stops so crews stay on-site longer and in transit less. If route changes lift completed jobs without adding labor hours, the gain flows straight to profit.\u003c\/p\u003e\n      \u003cp\u003eWatch three leak points: \u003cstrong\u003epaid windshield time\u003c\/strong\u003e, \u003cstrong\u003eschedule gaps\u003c\/strong\u003e, and overtime. A wider service area can grow lead volume, but if it adds cross-town driving, it hurts take-home income. Price and staff for dense zones first, then expand only when the extra miles still leave enough margin to pay the owner after payroll and overhead.\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;\"\u003eLabor Model\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n  \u003cdiv class=\"right-row4\"\u003e\n    \u003ch3\u003eLabor Model\u003c\/h3\u003e\n    \u003cp\u003eOwner pay moves with the labor mix. If the owner is the technician, dispatcher, salesperson, or manager, income depends on how much work stays billable versus how much time gets pushed into payroll and supervision. Modeled payroll starts at \u003cstrong\u003e$191,500\u003c\/strong\u003e in Year 1 and rises to \u003cstrong\u003e$558,500\u003c\/strong\u003e in Year 5 as the team expands.\u003c\/p\u003e\n    \u003cp\u003eFrom Year 2, the model adds a \u003cstrong\u003e$75,000 GM\u003c\/strong\u003e, \u003cstrong\u003e$52,000 lead technician\u003c\/strong\u003e, \u003cstrong\u003e$42,000 junior technician\u003c\/strong\u003e, \u003cstrong\u003e$45,000 office coordinator\u003c\/strong\u003e, and \u003cstrong\u003e$50,000 sales representative\u003c\/strong\u003e. The risk is simple: labor can free the owner from daily dispatch and quality control, or it can dilute profit if payroll burden grows faster than completed jobs and pricing.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"left-row4\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003eTrack labor cost per booked job\u003c\/h3\u003e\n      \u003cp\u003eWatch \u003cstrong\u003epayroll burden\u003c\/strong\u003e, \u003cstrong\u003ebillable hours per tech\u003c\/strong\u003e, callbacks, and owner nonbillable time. Here’s the quick math: every hire has to produce enough completed jobs to cover wages plus the time lost to training and quality control. If the owner still handles dispatch or sales, that work should be measured, not assumed away.\u003c\/p\u003e\n      \u003cp\u003eUse role-based targets. Technicians should lift completed jobs, the GM should reduce no-shows and rework, and the sales rep should lift booked work without heavy discounting. One clean rule: if a role does not raise booked revenue, route density, or retention fast enough, it only raises fixed cost.\u003c\/p\u003e\n      \u003cul class=\"lst_crct_blog\"\u003e\n        \u003cli\u003eTrack payroll burden per completed job\u003c\/li\u003e\n        \u003cli\u003eMeasure callbacks and rework weekly\u003c\/li\u003e\n        \u003cli\u003eSeparate billable and nonbillable hours\u003c\/li\u003e\n        \u003cli\u003eTest each hire against job growth\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 step4\"\u003e4\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003eCustomer Acquisition Mix\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n  \u003cdiv class=\"left-row5\"\u003e\n    \u003ch3\u003eCustomer Acquisition Mix\u003c\/h3\u003e\n    \u003cp\u003eCustomer acquisition mix is margin-sensitive because every booked job has to earn back its marketing cost. In Year 1, the annual marketing budget is \u003cstrong\u003e$15,000\u003c\/strong\u003e and CAC is \u003cstrong\u003e$45\u003c\/strong\u003e; by Year 5, marketing rises to \u003cstrong\u003e$40,000\u003c\/strong\u003e while CAC drops to \u003cstrong\u003e$35\u003c\/strong\u003e. The best mix shifts volume toward referrals, property managers, appliance repair partnerships, local search leads, and commercial laundry accounts.\u003c\/p\u003e\n    \u003cp\u003eWhat this hides is channel cost. Referral commissions still take \u003cstrong\u003e50%\u003c\/strong\u003e of revenue in Year 1 and \u003cstrong\u003e40%\u003c\/strong\u003e by Year 5, so cheap leads are not always cheap jobs. If the mix stays heavy on one-off leads, owner take-home gets squeezed even when revenue grows. \u003cstrong\u003eOne bad channel can erase a good\njob.\u003c\/strong\u003e\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"right-row5\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003eMeasure CAC by channel\u003c\/h3\u003e\n      \u003cp\u003eTrack CAC, close rate, and referral commission by source every month. The key question is simple: how much cash stays after the lead is won and the job is completed? If a channel needs \u003cstrong\u003e$45\u003c\/strong\u003e to book a job and gives away \u003cstrong\u003e50%\u003c\/strong\u003e of revenue in commission, it has to be priced and staffed tightly to protect profit.\u003c\/p\u003e\n      \u003cul class=\"lst_crct_blog\"\u003e\n        \u003cli\u003eSplit CAC by source weekly\u003c\/li\u003e\n        \u003cli\u003eTrack commission by partner\u003c\/li\u003e\n        \u003cli\u003eFavor repeat B2B accounts\u003c\/li\u003e\n        \u003cli\u003eCut expensive one-off leads\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cp\u003ePush more budget into channels that can repeat, like property managers and commercial laundry accounts. Those leads usually support steadier volume and better cash flow than paid one-time calls. \u003cstrong\u003eBetter mix beats more spend.\u003c\/strong\u003e\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"timeline\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"step-circle step5\"\u003e5\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003eOverhead 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\u003eOverhead and reserves\u003c\/h3\u003e\n    \u003cp\u003e\u003cstrong\u003eNet profit is not the same as cash you can take home.\u003c\/strong\u003e Fixed overhead runs \u003cstrong\u003e$3,650 per month\u003c\/strong\u003e for rent, insurance, CRM and scheduling software, utilities, licensing, uniforms, and PPE. That is \u003cstrong\u003e$43,800 a year\u003c\/strong\u003e before any owner draw. Here’s the quick math: if bookings slow or callbacks rise, overhead still hits every month, so cash, not profit, decides how much the owner can safely pay themselves.\u003c\/p\u003e\n    \u003cp\u003eReserves matter even more because growth cash gets tied up in \u003cstrong\u003etwo $45,000 service vans\u003c\/strong\u003e, tools, office tech, wraps, and parts. The modeled \u003cstrong\u003eminimum cash need is $799,000 in Month 2\u003c\/strong\u003e, so the business can look profitable on paper and still be short on cash. That reserve protects payroll, repairs, insurance, and weak months.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"left-row6\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003eBuild the cash floor first\u003c\/h3\u003e\n      \u003cp\u003e\u003cstrong\u003eTrack cash, not just profit.\u003c\/strong\u003e Keep a rolling view of monthly overhead, capex timing, and cash on hand. If the reserve can’t cover \u003cstrong\u003e$3,650\u003c\/strong\u003e in fixed overhead plus scheduled vehicle and equipment spend, owner withdrawals should wait. One clean rule: no draw unless cash stays above the next 60 to 90 days of fixed costs.\u003c\/p\u003e\n      \u003cul class=\"lst_crct_blog\"\u003e\n        \u003cli\u003eWatch cash after every large purchase\u003c\/li\u003e\n        \u003cli\u003eSeparate operating cash from reserves\u003c\/li\u003e\n        \u003cli\u003eStress-test slow months and repairs\u003c\/li\u003e\n        \u003cli\u003eHold back cash before adding headcount\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cp\u003eWhat this estimate hides is surprise repair risk and uneven monthly bookings. If the reserve gets thin, one van issue or insurance bill can wipe out owner pay fast. So the job is simple: control fixed spend, delay nonessential capex, and keep a cash buffer big enough to ride out a bad month without borrowing.\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 low, base, and high owner-income scenarios for planning\n\u003c\/span\u003e\u003c\/h2\u003e\n\u003csection class=\"fml-scenario-table\" aria-label=\"Dryer Vent Cleaning Service Owner Income Scenarios\" data-site-name=\"Financial Models Lab\" data-site-url=\"https:\/\/financialmodelslab.com\" data-source-title=\"Dryer Vent Cleaning Service Owner Income Scenarios\" data-note-label=\"Planning note\" data-note-text=\"Scenario ranges are researched planning assumptions, not guaranteed earnings, salary promises, tax advice, or distributions.\"\u003e\u003cdiv class=\"fml-scenario-table-card\"\u003e\n\u003cheader class=\"fml-scenario-table-header\"\u003e\u003cdiv\u003e\n\u003cp class=\"fml-scenario-table-eyebrow\"\u003eOwner income scenarios\u003c\/p\u003e\n\u003cp class=\"fml-scenario-table-description\"\u003eOwner income shifts with route density, CAC, crew size, and how much work the owner keeps in-field. Early ramp stays tight; the Year 5 setup can support much stronger 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 cases show how pay changes as the route gets denser and the crew scales.\u003c\/caption\u003e\n\u003cthead\u003e\u003ctr\u003e\n\u003cth class=\"fml-scenario-table-stub\" scope=\"col\" data-export-value=\"Scenario\"\u003eScenario\u003c\/th\u003e\n\u003cth class=\"fml-scenario-table-column\" scope=\"col\" data-export-value=\"Low Case\"\u003e\n\u003cspan class=\"fml-scenario-column-title\"\u003eLow Case\u003c\/span\u003e\u003cspan class=\"fml-scenario-badge is-soft\"\u003eLow Case\u003c\/span\u003e\n\u003c\/th\u003e\n\u003cth class=\"fml-scenario-table-column\" scope=\"col\" data-export-value=\"Base Case\"\u003e\n\u003cspan class=\"fml-scenario-column-title\"\u003eBase Case\u003c\/span\u003e\u003cspan class=\"fml-scenario-badge is-soft\"\u003eBase Case\u003c\/span\u003e\n\u003c\/th\u003e\n\u003cth class=\"fml-scenario-table-column\" scope=\"col\" data-export-value=\"High Case\"\u003e\n\u003cspan class=\"fml-scenario-column-title\"\u003eHigh Case\u003c\/span\u003e\u003cspan class=\"fml-scenario-badge is-warning\"\u003eHigh Case\u003c\/span\u003e\n\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr data-scenario-row\u003e\n\u003cth class=\"fml-scenario-row-heading\" scope=\"row\" data-export-value=\"Launch model\"\u003e\u003cspan class=\"fml-scenario-row-heading-inner\"\u003e\u003cspan class=\"fml-scenario-row-icon is-launch\" aria-hidden=\"true\"\u003e\u003cimg class=\"fml-scenario-row-icon-img\" src=\"\/cdn\/shop\/files\/scenario-launch-model.svg\" alt=\"Launch model icon\" loading=\"lazy\"\u003e\u003c\/span\u003e\u003cspan\u003e\u003cspan class=\"fml-scenario-row-title\"\u003eLaunch model\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/th\u003e\n\u003ctd data-export-value=\"This is the early-ramp case, where the owner stays in the field and income is held back by slower booking and higher CAC.\"\u003eThis is the early-ramp case, where the owner stays in the field and income is held back by slower booking and higher CAC.\u003c\/td\u003e\n\u003ctd data-export-value=\"This is the modeled operating case, with Year 1 revenue of $483,000 and $65,000 EBITDA before owner pay choices.\"\u003eThis is the modeled operating case, with Year 1 revenue of $483,000 and $65,000 EBITDA before owner pay choices.\u003c\/td\u003e\n\u003ctd data-export-value=\"This is the later-scale case, where Year 5 revenue reaches $2.802 million and EBITDA rises to $1.348 million.\"\u003eThis is the later-scale case, where Year 5 revenue reaches $2.802 million and EBITDA rises to $1.348 million.\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 runs lean, with the owner doing more jobs, lower route density, and tighter payouts while the $15,000 launch marketing budget works through the market.\"\u003eThe business runs lean, with the owner doing more jobs, lower route density, and tighter payouts while the $15,000 launch marketing budget works through the market.\u003c\/td\u003e\n\u003ctd data-export-value=\"The plan lands near 39 jobs per week at about $241 per weighted ticket, with a 13.5% EBITDA margin and a $75,000 GM salary if the owner fills that role.\"\u003eThe plan lands near 39 jobs per week at about $241 per weighted ticket, with a 13.5% EBITDA margin and a $75,000 GM salary if the owner fills that role.\u003c\/td\u003e\n\u003ctd data-export-value=\"CAC drops to $35, the technician team is larger, and the business carries a 48.1% EBITDA margin with more work off the owner's plate.\"\u003eCAC drops to $35, the technician team is larger, and the business carries a 48.1% EBITDA margin with more work off the owner's plate.\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=\"Higher CAC; lower route density; owner in field; tighter distributions; lean staffing\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003eHigher CAC\u003c\/li\u003e\n\u003cli\u003elower route density\u003c\/li\u003e\n\u003cli\u003eowner in field\u003c\/li\u003e\n\u003cli\u003etighter distributions\u003c\/li\u003e\n\u003cli\u003elean staffing\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/td\u003e\n\u003ctd data-export-value=\"Year 1 revenue; 39 jobs\/week; $241 weighted ticket; $65,000 EBITDA; $75,000 GM salary\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003eYear 1 revenue\u003c\/li\u003e\n\u003cli\u003e39 jobs\/week\u003c\/li\u003e\n\u003cli\u003e$241 weighted ticket\u003c\/li\u003e\n\u003cli\u003e$65,000 EBITDA\u003c\/li\u003e\n\u003cli\u003e$75,000 GM salary\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/td\u003e\n\u003ctd data-export-value=\"$35 CAC; larger technician team; higher subscription mix; $1.348M EBITDA; 48.1% margin\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003e$35 CAC\u003c\/li\u003e\n\u003cli\u003elarger technician team\u003c\/li\u003e\n\u003cli\u003ehigher subscription mix\u003c\/li\u003e\n\u003cli\u003e$1.348M EBITDA\u003c\/li\u003e\n\u003cli\u003e48.1% 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=\"Under $75,000\"\u003e\n\u003cstrong class=\"fml-scenario-range\"\u003eUnder $75,000\u003c\/strong\u003e\u003cspan class=\"fml-scenario-badge is-soft\"\u003eLow Case\u003c\/span\u003e\n\u003c\/td\u003e\n\u003ctd data-export-value=\"$75,000\"\u003e\n\u003cstrong class=\"fml-scenario-range\"\u003e$75,000\u003c\/strong\u003e\u003cspan class=\"fml-scenario-badge is-soft\"\u003eBase Case\u003c\/span\u003e\n\u003c\/td\u003e\n\u003ctd data-export-value=\"Above $75,000\"\u003e\n\u003cstrong class=\"fml-scenario-range\"\u003eAbove $75,000\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 a slow start, tight cash, and an owner-led operation with limited reserves.\"\u003eUse this to stress-test a slow start, tight cash, and an owner-led operation with limited reserves.\u003c\/td\u003e\n\u003ctd data-export-value=\"Use this as the core planning case for staffing, cash needs, and owner pay.\"\u003eUse this as the core planning case for staffing, cash needs, and owner pay.\u003c\/td\u003e\n\u003ctd data-export-value=\"Use this to test upside, hiring pace, and whether growth can stay funded with enough reserve for payroll and vehicles.\"\u003eUse this to test upside, hiring pace, and whether growth can stay funded with enough reserve for payroll and vehicles.\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 ranges are researched planning assumptions, not guaranteed earnings, salary promises, tax advice, or distributions.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e","brand":"FinancialModelsLab","offers":[{"title":"Default Title","offer_id":49303827284211,"sku":"dryer-vent-cleaning-owner-makes","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/dryer-vent-cleaning-owner-makes.webp?v=1782681404","url":"https:\/\/financialmodelslab.com\/products\/dryer-vent-cleaning-owner-makes","provider":"Financial Models Lab","version":"1.0","type":"link"}