{"product_id":"legionella-prevention-owner-makes","title":"How Much Can a Legionella Prevention Service Owner Make by Year 5?","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 looking at a compliance-heavy water safety company where revenue can scale fast, but owner cash is not the same as sales This estimate uses a five-year operating model with \u003cstrong\u003e$203M Year 1 revenue, $1410M Year 5 revenue, $145K annual CEO pay, and a $610K minimum cash need\u003c\/strong\u003e It covers revenue, margin, payroll, lab costs, insurance, equipment, reserves, and owner take-home before tax, but not tax planning or guaranteed distributions\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\u003cdiv class=\"image-section image-1_new_design\" id=\"main_article_image\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003csection class=\"fml-owner-metric-cards\" aria-label=\"Legionella Prevention Service\"\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 CEO salary is $145K; this excludes dividends and taxes, so it is the base take-home floor.\"\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 CEO salary is $145K; this excludes dividends and taxes, so it is the base take-home floor.\"\u003e$145K\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 runs about 47% to 89%; this is a proxy, not after-tax net margin.\"\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 runs about 47% to 89%; this is a proxy, not after-tax net margin.\"\u003e47%–89%\u003c\/strong\u003e\u003c\/article\u003e\u003carticle class=\"metric-card\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"To support $145K owner pay at Year 1 margin, revenue needs to be about $309K; this ignores reserves and taxes.\"\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=\"To support $145K owner pay at Year 1 margin, revenue needs to be about $309K; this ignores reserves and taxes.\"\u003e$309K\u003c\/strong\u003e\u003c\/article\u003e\u003carticle class=\"metric-card\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Model-based first-year execution is hard because of $345K early capex, $610K minimum cash, and Month 4 breakeven.\"\u003e\u003cimg class=\"metric-icon\" src=\"\/cdn\/shop\/files\/fml-owner-income-kpi-business-difficulty.svg\" alt=\"Business difficulty icon\" loading=\"lazy\"\u003e\u003c\/span\u003e\u003cspan\u003eBusiness difficulty\u003c\/span\u003e\u003cstrong class=\"metric-value\" tabindex=\"0\" data-tooltip=\"Model-based first-year execution is hard because of $345K early capex, $610K minimum cash, and Month 4 breakeven.\"\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=\"Legionella Prevention Service Owner Income Calculator\" data-locale=\"en-US\" data-currency=\"USD\" data-default-scenario=\"base\" data-export-filename=\"Legionella Prevention Service Owner Income Calculator.xlsx\" data-source-site-name=\"Financial Models Lab\" data-source-site-url=\"https:\/\/financialmodelslab.com\" data-source-page-title=\"Legionella Prevention Service Owner Income Calculator\" data-note-title=\"Planning note:\" data-note-text=\"Research-based planning estimate only. Actual owner income depends on revenue, margins, payroll, reserves, and timing. It is 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. Use it to test how active clients, tier mix, audit fees, and direct service costs change cash left for the owner.\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 active clients, tier mix, audit attach rate, sampling, treatment, and remediation before expenses.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly sales from active clients, tier mix, audit attach rate, sampling, treatment, and remediation before expenses.\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 active clients, tier mix, audit attach rate, sampling, treatment, and remediation before expenses.\" data-low=\"170000\" data-base=\"400000\" data-high=\"1100000\" name=\"monthlyRevenue\" type=\"text\" inputmode=\"numeric\" value=\"400,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 lab analysis, testing kits, and other direct service costs.\"\u003ei\u003cspan role=\"tooltip\"\u003ePercent of revenue left after lab analysis, testing kits, and other direct service costs.\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 lab analysis, testing kits, and other direct service costs.\" name=\"grossMargin\" type=\"range\" min=\"0\" max=\"100\" step=\"1\" data-low=\"90\" data-base=\"92\" data-high=\"93\" value=\"92\"\u003e\u003coutput\u003e92%\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 for technicians, sales, operations, and owner salary before owner pay.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly payroll for technicians, sales, operations, and owner salary before owner pay.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-money\"\u003e\n\u003cspan\u003e$\u003c\/span\u003e\u003cinput data-owner-field=\"laborCost\" data-owner-kind=\"money\" data-owner-label=\"Labor cost\" data-owner-note=\"Monthly payroll for technicians, sales, operations, and owner salary before owner pay.\" data-low=\"50000\" data-base=\"85000\" data-high=\"125000\" name=\"laborCost\" type=\"text\" inputmode=\"numeric\" value=\"85,000\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eFixed overhead\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Rent, software, insurance, vehicles, utilities, and other recurring overhead.\"\u003ei\u003cspan role=\"tooltip\"\u003eRent, software, insurance, vehicles, utilities, and other recurring overhead.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-money\"\u003e\n\u003cspan\u003e$\u003c\/span\u003e\u003cinput data-owner-field=\"fixedOverhead\" data-owner-kind=\"money\" data-owner-label=\"Fixed overhead\" data-owner-note=\"Rent, software, insurance, vehicles, utilities, and other recurring overhead.\" data-low=\"12500\" data-base=\"12500\" data-high=\"12500\" name=\"fixedOverhead\" type=\"text\" inputmode=\"numeric\" value=\"12,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\u003eMarketing\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Monthly lead generation spend to win new building accounts and keep pipeline full.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly lead generation spend to win new building accounts and keep pipeline full.\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 lead generation spend to win new building accounts and keep pipeline full.\" data-low=\"10000\" data-base=\"15000\" data-high=\"37500\" name=\"marketing\" type=\"text\" inputmode=\"numeric\" value=\"15,000\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eDebt service\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Monthly loan or financing payments; use 0 if there is no debt.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly loan or financing payments; use 0 if there is no debt.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-money\"\u003e\n\u003cspan\u003e$\u003c\/span\u003e\u003cinput data-owner-field=\"debtService\" data-owner-kind=\"money\" data-owner-label=\"Debt service\" data-owner-note=\"Monthly loan or financing payments; use 0 if there is no debt.\" data-low=\"0\" data-base=\"0\" data-high=\"0\" name=\"debtService\" type=\"text\" inputmode=\"numeric\" value=\"\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eTax reserve\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Percent of profit set aside before owner take-home is calculated.\"\u003ei\u003cspan role=\"tooltip\"\u003ePercent of profit set aside before owner take-home is calculated.\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 before owner take-home is calculated.\" name=\"taxReserve\" type=\"range\" min=\"0\" max=\"45\" step=\"1\" data-low=\"18\" data-base=\"22\" data-high=\"25\" value=\"22\"\u003e\u003coutput\u003e22%\u003c\/output\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eReinvestment reserve\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Percent of profit kept for repairs, growth, working capital, and risk buffer.\"\u003ei\u003cspan role=\"tooltip\"\u003ePercent of profit kept for repairs, growth, working capital, and risk buffer.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-percent\"\u003e\n\u003cinput data-owner-field=\"reinvestmentReserve\" data-owner-kind=\"percent\" data-owner-label=\"Reinvestment reserve\" data-owner-note=\"Percent of profit kept for repairs, growth, working capital, and risk buffer.\" name=\"reinvestmentReserve\" type=\"range\" min=\"0\" max=\"35\" step=\"1\" data-low=\"8\" data-base=\"10\" data-high=\"12\" value=\"10\"\u003e\u003coutput\u003e10%\u003c\/output\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eTarget owner pay\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"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=\"15000\" data-base=\"25000\" data-high=\"40000\" 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$174K\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\"\u003e43%\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$162K\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$149K\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdl class=\"fml-owner-result-list\"\u003e\n\u003cdiv\u003e\n\u003cdt\u003eAnnual owner income\u003c\/dt\u003e\n\u003cdd data-owner-output=\"annualOwnerIncome\"\u003e$2,084,880\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$255,500\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$81,760\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$148,740\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$400K\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: 92%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$368K\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: 28%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$112K\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: 20%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$81,760\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: 43%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$174K\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. Actual owner income depends on revenue, margins, payroll, reserves, and timing. It is 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;\"\u003eHow do you check owner income in the model?\u003c\/span\u003e\u003c\/h3\u003e\n\n\u003cp\u003eThis Legionella Prevention Service dashboard shows \u003cstrong\u003erevenue\u003c\/strong\u003e, \u003cstrong\u003eEBITDA\u003c\/strong\u003e, \u003cstrong\u003eowner pay\u003c\/strong\u003e, \u003cstrong\u003ecash need\u003c\/strong\u003e, \u003cstrong\u003epayback\u003c\/strong\u003e, and \u003cstrong\u003eIRR\u003c\/strong\u003e; tabs include subscriptions, audits, lab costs, payroll, capex, reserves, and scenarios. Open the \u003ca href=\"\/products\/legionella-prevention-financial-model\"\u003eLegionella Prevention Service Financial Model Template\u003c\/a\u003e.\u003c\/p\u003e\n\n\u003ch4\u003eOwner-income model highlights\u003c\/h4\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eOwner pay is clear\u003c\/li\u003e\n\u003cli\u003eRevenue charts scale up\u003c\/li\u003e\n\u003cli\u003e4-month break-even shown\u003c\/li\u003e\n\u003cli\u003e10-month payback shown\u003c\/li\u003e\n\u003cli\u003e$610K cash floor\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\/legionella-prevention-financial-model-dashboard-financialmodelslab_f2bc21b0-593c-47ee-ab5a-b08ec442d93a.webp\"\u003e\n\u003cimg class=\"preview-img\" width=\"100%\" height=\"auto\" src=\"\/cdn\/shop\/files\/legionella-prevention-financial-model-dashboard-financialmodelslab_f2bc21b0-593c-47ee-ab5a-b08ec442d93a.webp?width=500\" alt=\"Legionella Prevention Service Financial Model dashboard summarizing key KPIs, runway\/cash and performance with a dynamic dashboard, investor-ready overview that exposes cash-flow blind spots.\"\u003e\n\u003cdiv class=\"preview-overlay\"\u003e\n\u003cbutton class=\"preview-btn\" type=\"button\" style=\"align-items: center; vertical-align: middle; display: inline-flex; justify-content: center; gap: 6px; line-height: 1;\"\u003e\nPREVIEW \u003csvg fill=\"#fff\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\" role=\"presentation\" viewbox=\"0 0 448 512\" width=\"14\"\u003e\u003cpath d=\"M416 176V86.63L246.6 256L416 425.4V336c0-8.844 7.156-16 16-16s16 7.156 16 16v128c0 8.844-7.156 16-16 16h-128c-8.844 0-16-7.156-16-16s7.156-16 16-16h89.38L224 278.6L54.63 448H144C152.8 448 160 455.2 160 464S152.8 480 144 480h-128C7.156 480 0 472.8 0 464v-128C0 327.2 7.156 320 16 320S32 327.2 32 336v89.38L201.4 256L32 86.63V176C32 184.8 24.84 192 16 192S0 184.8 0 176v-128C0 39.16 7.156 32 16 32h128C152.8 32 160 39.16 160 48S152.8 64 144 64H54.63L224 233.4L393.4 64H304C295.2 64 288 56.84 288 48S295.2 32 304 32h128C440.8 32 448 39.16 448 48v128C448 184.8 440.8 192 432 192S416 184.8 416 176z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eHow much revenue does a Legionella prevention business need for owner pay?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003eThe \u003cstrong\u003eLegionella Prevention Service\u003c\/strong\u003e needs revenue high enough to cover \u003cstrong\u003e$145K\u003c\/strong\u003e owner pay after \u003cstrong\u003e85%\u003c\/strong\u003e variable plus lab costs, \u003cstrong\u003e$150K\u003c\/strong\u003e fixed overhead, \u003cstrong\u003e$550K\u003c\/strong\u003e payroll, and \u003cstrong\u003e$120K\u003c\/strong\u003e marketing. Here’s the quick math: a \u003cstrong\u003e$145K\u003c\/strong\u003e owner salary is \u003cstrong\u003e71%\u003c\/strong\u003e of \u003cstrong\u003e$203K\u003c\/strong\u003e revenue, not \u003cstrong\u003e$203M\u003c\/strong\u003e, so that ratio only works if the revenue figure is a typo. Break-even lands in \u003cstrong\u003eMonth 4\u003c\/strong\u003e only if the sales ramp is strong and cash reserves hold.\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\u003eCost stack\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003e$150K\u003c\/strong\u003e fixed overhead\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e$550K\u003c\/strong\u003e payroll\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e$120K\u003c\/strong\u003e marketing\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e85%\u003c\/strong\u003e variable and lab costs\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\u003ePay math\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003e$145K\u003c\/strong\u003e owner pay target\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMonth 4\u003c\/strong\u003e break-even timing\u003c\/li\u003e\n\u003cli\u003eStrong sales ramp needed\u003c\/li\u003e\n\u003cli\u003eCash reserves must hold\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eHow much does a Legionella prevention service owner make?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003eA Legionella Prevention Service owner can model \u003cstrong\u003e$145K\u003c\/strong\u003e as CEO salary, but extra owner distributions depend on cash left after reserves, taxes, capex, and debt payments; see \u003ca href=\"\/blogs\/how-to-open\/legionella-prevention\"\u003eHow To Launch Legionella Prevention Service Business?\u003c\/a\u003e for the setup path. Year 1 shows \u003cstrong\u003e$203M revenue\u003c\/strong\u003e and \u003cstrong\u003e$955K EBITDA\u003c\/strong\u003e, but EBITDA is not guaranteed take-home pay.\u003c\/p\u003e\n\u003cdiv class=\"container_2_clmn_row\"\u003e\n\u003cdiv class=\"card_smpl blue_card\"\u003e\n\u003cdiv class=\"card_smpl_header\"\u003e\n\u003cimg src=\"\/cdn\/shop\/files\/fml_20_fml-Orange-blog-colons-icon.svg\" alt=\"Icon\" class=\"icon_how_to_use\"\u003e\u003ch3\u003eOwner Pay\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eModeled CEO salary: \u003cstrong\u003e$145K\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eYear 1 EBITDA: \u003cstrong\u003e$955K\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eEBITDA is not cash pay\u003c\/li\u003e\n\u003cli\u003eDistributions need cash surplus\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\u003eScale Case\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eYear 5 revenue: \u003cstrong\u003e$1410M\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eYear 5 EBITDA: \u003cstrong\u003e$1258M\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eContract base drives scale\u003c\/li\u003e\n\u003cli\u003eDebt and capex reduce payouts\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eWhat Legionella prevention service costs most affect profit margin?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003eFor \u003cstrong\u003eLegionella Prevention Service\u003c\/strong\u003e, the biggest margin drag is lab analysis and testing kits at \u003cstrong\u003e45%\u003c\/strong\u003e of Year 1 revenue, easing to \u003cstrong\u003e35%\u003c\/strong\u003e by Year 5, and the profit tradeoff is clear in \u003ca href=\"\/blogs\/profitability\/legionella-prevention\"\u003eHow Increase Profits For Legionella Prevention Service?\u003c\/a\u003e. Sales commissions and processing also stay heavy, falling from \u003cstrong\u003e40%\u003c\/strong\u003e to \u003cstrong\u003e30%\u003c\/strong\u003e, while payroll rises from \u003cstrong\u003e$550K\u003c\/strong\u003e to \u003cstrong\u003e$143M\u003c\/strong\u003e as the team scales.\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\u003eBig cost drains\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eLab analysis and kits: \u003cstrong\u003e45%\u003c\/strong\u003e Year 1\u003c\/li\u003e\n\u003cli\u003eLab analysis and kits: \u003cstrong\u003e35%\u003c\/strong\u003e Year 5\u003c\/li\u003e\n\u003cli\u003eSales commissions and processing: \u003cstrong\u003e40%\u003c\/strong\u003e to \u003cstrong\u003e30%\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eWatch variable cost mix closely\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\u003eScale costs to watch\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003ePayroll grows from \u003cstrong\u003e$550K\u003c\/strong\u003e to \u003cstrong\u003e$143M\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eFixed overhead starts at \u003cstrong\u003e$125K\u003c\/strong\u003e monthly\u003c\/li\u003e\n\u003cli\u003eEarly capex totals \u003cstrong\u003e$345K\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eCapex covers vehicles, lab setup, IT, furniture\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 income drivers at a glance?\n\u003c\/span\u003e\u003c\/h2\u003e\n\u003csection class=\"fml-main-income-drivers\" aria-label=\"Main income driver cards for a water safety 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\u003eContract Base\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$2.0M-$14.1M\u003c\/strong\u003e\u003cp\u003eSubscriptions and audits build the cash base, lifting revenue from $2.0M in Year 1 to $14.1M in Year 5 as renewals stack.\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\u003eLab Costs\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e4.5%-3.5%\u003c\/strong\u003e\u003cp\u003eLab kits run at 4.5% of revenue in Year 1 and 3.5% in Year 5, so tighter test control drops more gross profit to EBITDA.\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\u003ePremium Margin\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$2.8K-$3.6K\u003c\/strong\u003e\u003cp\u003eHigher-ticket remediation and premium work at $2.8K to $3.6K gives more room after labor, so take-home rises.\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\u003eRoute Density\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e4x\u003c\/strong\u003e\u003cp\u003eField techs scale from 2 to 8 FTE, so dense routes and high utilization decide whether wage growth turns into 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\u003eMix Shift\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$950-$3.6K\u003c\/strong\u003e\u003cp\u003eMoving accounts from basic to advanced and premium raises average monthly revenue because plan prices span $950 to $3,600.\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\u003eOverhead Control\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$150K\u003c\/strong\u003e\u003cp\u003eFixed overhead is about $150K a year, and the $610K cash trough in Month 4 means reserve discipline matters as much as spend control.\u003c\/p\u003e\u003c\/article\u003e\n\u003c\/div\u003e\u003c\/article\u003e\u003c\/section\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eLegionella Prevention Service Core Six Income Drivers\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\u003cbr\u003e\n\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003eRecurring Contract Base\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 Contract Floor\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong\u003eRecurring Legionella compliance contracts\u003c\/strong\u003e set the monthly income floor. Year 1 pricing runs from \u003cstrong\u003e$950\u003c\/strong\u003e for Basic to \u003cstrong\u003e$1,850\u003c\/strong\u003e for Advanced and \u003cstrong\u003e$3,200\u003c\/strong\u003e for Premium, so the contract mix drives how much cash lands before any project work. By Year 5, the mix shifts to \u003cstrong\u003e45%\u003c\/strong\u003e Advanced and \u003cstrong\u003e25%\u003c\/strong\u003e Premium, which lifts average monthly revenue per account to about \u003cstrong\u003e$1,918\u003c\/strong\u003e.\u003c\/p\u003e\n\u003cp\u003eHere’s the quick math: the Year 5 mix leaves \u003cstrong\u003e30%\u003c\/strong\u003e Basic, \u003cstrong\u003e45%\u003c\/strong\u003e Advanced, and \u003cstrong\u003e25%\u003c\/strong\u003e Premium. That raises revenue quality, but only if churn stays low and renewals are not missed. Scope creep and underpriced reporting work hit gross margin fast, so the owner’s take-home depends on keeping each contract tied to a clear service scope and a clean renewal calendar.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"right-row1\"\u003e\n\u003cdiv class=\"tips-box\"\u003e\n\u003ch3\u003eProtect Renewal Value\u003c\/h3\u003e\n\u003cp\u003eTrack \u003cstrong\u003eactive contracts\u003c\/strong\u003e, \u003cstrong\u003etier mix\u003c\/strong\u003e, renewal month, and realized monthly fee. If the mix moves toward Advanced and Premium, forecast cash flow and owner pay from the weighted fee, not just the logo count. One clean metric to watch is monthly recurring revenue per account; if it slips, churn or discounting is usually the cause.\u003c\/p\u003e\n\u003cp\u003ePrice reporting, retesting, and extra site work separately. Use a renewal checklist so each account has a defined scope, service frequency, and document load. If a client wants more sampling, more reports, or faster turnaround, price it into the next tier or a change order. That keeps recurring cash predictable and stops hidden labor from eating 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 step1\"\u003e1\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003eTesting Volume And Lab Cost Control\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n\u003cdiv class=\"right-row2\"\u003e\n\u003ch3\u003eTesting Volume and Lab Cost Control\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong\u003eLegionella testing volume\u003c\/strong\u003e drives revenue, but each extra sample also adds \u003cstrong\u003ethird-party lab\u003c\/strong\u003e and kit cost. In the model, lab analysis and testing kits are \u003cstrong\u003e45% of revenue in Year 1\u003c\/strong\u003e and ease to \u003cstrong\u003e35% by Year 5\u003c\/strong\u003e. That spread is the margin story: higher test counts help cash flow only if pricing covers sample volume, retests, and travel.\u003c\/p\u003e\n\u003cp\u003eTrack \u003cstrong\u003esamples per site\u003c\/strong\u003e, \u003cstrong\u003eretest rate\u003c\/strong\u003e, and \u003cstrong\u003erevenue per route\u003c\/strong\u003e. If testing and remediation are blended, margin gets blurred and owner pay gets less predictable. Here’s the quick math: every point of lab cost saved flows straight into gross profit, while uncontrolled retests or small one-off visits can eat the gain.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"left-row2\"\u003e\n\u003cdiv class=\"tips-box\"\u003e\n\u003ch3\u003eProtect Testing Margin\u003c\/h3\u003e\n\u003cp\u003ePrice \u003cstrong\u003eretests separately\u003c\/strong\u003e and set \u003cstrong\u003esample-count limits\u003c\/strong\u003e in the contract. Use route batching so one trip covers more sites, and keep markup discipline on kits and analysis. The owner should forecast revenue using site count, scheduled samples, and expected retests, then compare actual lab spend to the \u003cstrong\u003e45% to 35%\u003c\/strong\u003e target band.\u003c\/p\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\u003cp\u003eTrack lab cost per sample.\u003c\/p\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cp\u003eReview retests weekly.\u003c\/p\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cp\u003eBatch nearby service calls.\u003c\/p\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cp\u003eSeparate testing from remediation.\u003c\/p\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eWhat this estimate hides: rush orders, failed samples, and extra documentation can raise cost fast. If testing volume rises but markup stays flat, owner take-home falls even when top-line revenue looks better.\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;\"\u003eRemediation And Treatment Project Margin\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n  \u003cdiv class=\"left-row3\"\u003e\n    \u003ch3\u003eRemediation Project Margin\u003c\/h3\u003e\n    \u003cp\u003eLegionella remediation can lift revenue when testing finds a problem, but profit depends on what the project really costs. Each job should include \u003cstrong\u003eshock chlorination\u003c\/strong\u003e, flushing, retesting, technician hours, supervisor review, and client reporting. If you miss change orders or undercount documentation time, the sale looks good but owner take-home falls because rework, liability, and callback risk eat the margin.\u003c\/p\u003e\n    \u003cp\u003eHere’s the quick math: revenue only matters after direct costs. A corrective job can turn weak fast when labor, chemicals, and retests stack up, while the business still carries \u003cstrong\u003e$125K\u003c\/strong\u003e a month in fixed overhead. The key input is scope discipline; \u003cstrong\u003echain-of-custody\u003c\/strong\u003e records, meaning sample handoff logs, protect cash by reducing disputes and unpaid follow-up work.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"right-row3\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003ePrice Scope, Track Rework\u003c\/h3\u003e\n      \u003cp\u003eBuild every quote from the same inputs: technician hours, supervisor hours, chemicals, retests, reporting, and expected callbacks. Put \u003cstrong\u003echange orders\u003c\/strong\u003e in writing before extra work starts. That is how you protect gross margin and cash flow when a remediation job gets bigger than the first estimate.\u003c\/p\u003e\n      \u003cul class=\"lst_crct_blog\"\u003e\n        \u003cli\u003eTrack labor by job.\u003c\/li\u003e\n        \u003cli\u003eTrack retests by project.\u003c\/li\u003e\n        \u003cli\u003eTrack change orders daily.\u003c\/li\u003e\n        \u003cli\u003eLog chain-of-custody every sample.\u003c\/li\u003e\n        \u003cli\u003ePrice documentation as billable work.\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cp\u003eIf the team cannot prove sample handling and corrective steps, the job can become a margin leak. The owner earns more when the crew closes out jobs fast, invoices cleanly, and avoids unpaid revisits.\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;\"\u003eTechnician Utilization And Route Density\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n  \u003cdiv class=\"right-row4\"\u003e\n    \u003ch3\u003eTechnician Utilization and Route Density\u003c\/h3\u003e\n    \u003cp\u003e\u003cstrong\u003eUtilization\u003c\/strong\u003e means the share of paid time spent on billable field work. In this model, the labor base is \u003cstrong\u003e2\u003c\/strong\u003e senior field technicians in \u003cstrong\u003eYear 1\u003c\/strong\u003e and \u003cstrong\u003e8\u003c\/strong\u003e by \u003cstrong\u003eYear 5\u003c\/strong\u003e at \u003cstrong\u003e$75K\u003c\/strong\u003e each, so payroll rises from \u003cstrong\u003e$150K\u003c\/strong\u003e to \u003cstrong\u003e$600K\u003c\/strong\u003e before any burden. Owner take-home improves when each tech completes more compliant sampling visits per day, because payroll then supports more revenue instead of more drive time.\u003c\/p\u003e\n    \u003cp\u003e\u003cstrong\u003eRoute density\u003c\/strong\u003e is the number of jobs packed into a smaller travel area. Better density cuts unpaid windshield time, missed appointments, and callbacks, which protects gross margin and cash flow. The risk is simple: if speed starts hurting documentation quality or sample handling, rework and liability eat the gain fast.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"left-row4\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003eMeasure Visits, Drive Time, and Callbacks\u003c\/h3\u003e\n      \u003cp\u003eTrack \u003cstrong\u003ebillable visits per technician per day\u003c\/strong\u003e, \u003cstrong\u003edrive minutes per stop\u003c\/strong\u003e, \u003cstrong\u003ecallback rate\u003c\/strong\u003e, and \u003cstrong\u003edocumentation pass rate\u003c\/strong\u003e. Here’s the quick math: more completed compliant visits spread the same salary across more revenue, while lower route waste keeps labor from leaking into non-billable time. If a tech needs extra revisits or weak chain-of-custody work, the margin gain disappears.\u003c\/p\u003e\n      \u003cul class=\"lst_crct_blog\"\u003e\n        \u003cli\u003eSet a daily visit target per tech\u003c\/li\u003e\n        \u003cli\u003eMap stops by zip code clusters\u003c\/li\u003e\n        \u003cli\u003eReject low-density one-off routes\u003c\/li\u003e\n        \u003cli\u003eReview callbacks by technician\u003c\/li\u003e\n        \u003cli\u003eAudit sample handling and paperwork\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cp\u003eUse route planning to batch nearby accounts and cut dead miles. Tie dispatch to compliance quality, not just speed, so the team keeps samples clean and records auditable. That keeps more of each subscription and testing dollar available for overhead, reserves, and owner draw.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"timeline\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"step-circle step4\"\u003e4\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003eCustomer Segment And Pricing 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 Segment Mix\u003c\/h3\u003e\n    \u003cp\u003eCustomer mix sets both revenue and admin load. Healthcare, senior living, hospitality, multifamily, commercial buildings, and cooling towers each bring different urgency, documentation, and renewal timing, so the same contract can take ver\ny different effort. If the mix skews toward high-touch accounts, non-billable work rises and owner pay gets squeezed unless pricing keeps up.\u003c\/p\u003e\n    \u003cp\u003eHere’s the quick math: \u003cstrong\u003eBasic at $950\u003c\/strong\u003e drops from \u003cstrong\u003e45%\u003c\/strong\u003e in Year 1 to \u003cstrong\u003e30%\u003c\/strong\u003e in Year 5, while \u003cstrong\u003eAdvanced at $1,850\u003c\/strong\u003e rises from \u003cstrong\u003e35%\u003c\/strong\u003e to \u003cstrong\u003e45%\u003c\/strong\u003e. That mix shift improves pricing power because the tier spread is \u003cstrong\u003e$900 per month\u003c\/strong\u003e per account. The gain shows up in margin and cash flow only if extra reporting time is controlled.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"right-row5\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003ePrice for Complexity\u003c\/h3\u003e\n      \u003cp\u003eTrack \u003cstrong\u003esegment count\u003c\/strong\u003e, \u003cstrong\u003etier mix\u003c\/strong\u003e, \u003cstrong\u003eadmin hours per account\u003c\/strong\u003e, and \u003cstrong\u003erenewal rate by segment\u003c\/strong\u003e. If one segment keeps asking for more reports, faster turnarounds, or tighter proof of work, raise the price or narrow the scope before it turns into unpaid labor. The goal is simple: more revenue per account without letting admin time outrun billing.\u003c\/p\u003e\n      \u003cul class=\"lst_crct_blog\"\u003e\n        \u003cli\u003eWatch renewals by client type.\u003c\/li\u003e\n        \u003cli\u003eCharge more for heavy documentation.\u003c\/li\u003e\n        \u003cli\u003eLimit free scope creep.\u003c\/li\u003e\n        \u003cli\u003eProtect margin on higher-touch accounts.\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cp\u003eWhat this estimate hides is labor drag. A segment with stronger urgency can also create more follow-up, more file checks, and more compliance proof, so the owner should measure billed revenue against service minutes, not just signed contract value. When the mix shifts toward Advanced, take-home income improves only if those extra minutes stay billed or tightly capped.\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, Equipment, 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, Insurance, and Reserves\u003c\/h3\u003e\n    \u003cp\u003e\u003cstrong\u003e$125K\u003c\/strong\u003e a month in fixed costs sets the cash floor here, including \u003cstrong\u003e$55K\u003c\/strong\u003e rent, \u003cstrong\u003e$25K\u003c\/strong\u003e fleet insurance and maintenance, and \u003cstrong\u003e$18K\u003c\/strong\u003e professional liability insurance. That overhead protects delivery capacity, but it also cuts distributable cash, so owner pay depends on staying ahead of the burn rate.\u003c\/p\u003e\n    \u003cp\u003eEarly capex is \u003cstrong\u003e$345K\u003c\/strong\u003e, and the model’s minimum cash need hits \u003cstrong\u003e$610K\u003c\/strong\u003e in Month 4. Cash is the real constraint here. If monthly revenue slips or collections slow, the owner may have to hold back draws even when jobs are busy.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"left-row6\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003eTrack Cash Burn Before Owner Draw\u003c\/h3\u003e\n      \u003cp\u003eWatch fixed cost coverage each month: \u003cstrong\u003erevenue minus $125K overhead\u003c\/strong\u003e, before variable testing and labor costs. That tells you how much cash is left for the owner, reserves, and growth. If overhead rises faster than contract backlog, take-home income gets squeezed fast.\u003c\/p\u003e\n      \u003cul class=\"lst_crct_blog\"\u003e\n        \u003cli\u003eTrack cash runway monthly\u003c\/li\u003e\n        \u003cli\u003eHold the \u003cstrong\u003e$610K\u003c\/strong\u003e reserve\u003c\/li\u003e\n        \u003cli\u003eReview insurance and fleet spend\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cp\u003eKeep the reserve target tied to the Month 4 cash need, not to hope. A simple rule works: don’t expand equipment or add fixed staff unless recurring contracts can cover the added burn. That keeps cash available for payroll, claims gaps, and delayed payments.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"timeline\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"step-circle step6\"\u003e6\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eCompare lean, base, and high owner-income scenarios\n\u003c\/span\u003e\u003c\/h2\u003e\n\u003csection class=\"fml-scenario-table\" aria-label=\"Legionella Prevention Service Owner Income Scenarios\" data-site-name=\"Financial Models Lab\" data-site-url=\"https:\/\/financialmodelslab.com\" data-source-title=\"Legionella Prevention Service Owner Income Scenarios\" data-note-label=\"Planning note\" data-note-text=\"These ranges are researched planning assumptions, not guaranteed earnings, salary promises, tax advice, or distributions.\"\u003e\u003cdiv class=\"fml-scenario-table-card\"\u003e\n\u003cheader class=\"fml-scenario-table-header\"\u003e\u003cdiv\u003e\n\u003cp class=\"fml-scenario-table-eyebrow\"\u003eOwner income scenarios\u003c\/p\u003e\n\u003cp class=\"fml-scenario-table-description\"\u003eOwner income changes with revenue scale, staffing, and lab-plus-processing costs. Year 1 is mainly salary driven, while Year 5 leaves more room for distributions after reserves.\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\u003eSalary-first to distribution-heavy planning view.\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\"\u003eConservative\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\"\u003eCore\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\"\u003eUpside\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 cautious path, where the owner mostly relies on salary.\"\u003eThis is the cautious path, where the owner mostly relies on salary.\u003c\/td\u003e\n\u003ctd data-export-value=\"This is the modeled middle path, where the owner pays themselves and keeps some cash after reserves.\"\u003eThis is the modeled middle path, where the owner pays themselves and keeps some cash after reserves.\u003c\/td\u003e\n\u003ctd data-export-value=\"This is the stronger path, where scale supports salary and larger distributions.\"\u003eThis is the stronger path, where scale supports salary and larger distributions.\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-scenario-row\u003e\n\u003cth class=\"fml-scenario-row-heading\" scope=\"row\" data-export-value=\"Typical setup\"\u003e\u003cspan class=\"fml-scenario-row-heading-inner\"\u003e\u003cspan class=\"fml-scenario-row-icon is-setup\" aria-hidden=\"true\"\u003e\u003cimg class=\"fml-scenario-row-icon-img\" src=\"\/cdn\/shop\/files\/scenario-typical-setup.svg\" alt=\"Typical setup icon\" loading=\"lazy\"\u003e\u003c\/span\u003e\u003cspan\u003e\u003cspan class=\"fml-scenario-row-title\"\u003eTypical setup\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/th\u003e\n\u003ctd data-export-value=\"Year 1 revenue is $2.033 million with $955,000 EBITDA, a 45% basic mix, and about $550,000 payroll before any distributions.\"\u003eYear 1 revenue is $2.033 million with $955,000 EBITDA, a 45% basic mix, and about $550,000 payroll before any distributions.\u003c\/td\u003e\n\u003ctd data-export-value=\"Year 3 revenue reaches $6.385 million with $5.506 million EBITDA as the mix shifts toward more advanced and premium plans.\"\u003eYear 3 revenue reaches $6.385 million with $5.506 million EBITDA as the mix shifts toward more advanced and premium plans.\u003c\/td\u003e\n\u003ctd data-export-value=\"Year 5 revenue reaches $14.096 million with $12.580 million EBITDA, lower unit costs, and enough cash for distributions after reserves.\"\u003eYear 5 revenue reaches $14.096 million with $12.580 million EBITDA, lower unit costs, and enough cash for distributions after reserves.\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=\"Year 1 scale; 4.5% lab cost; 4.0% processing cost; $550k payroll; $120k marketing\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003eYear 1 scale\u003c\/li\u003e\n\u003cli\u003e4.5% lab cost\u003c\/li\u003e\n\u003cli\u003e4.0% processing cost\u003c\/li\u003e\n\u003cli\u003e$550k payroll\u003c\/li\u003e\n\u003cli\u003e$120k marketing\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/td\u003e\n\u003ctd data-export-value=\"Year 3 scale; 4.0% lab cost; 3.5% processing cost; $250k marketing; richer plan mix\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003eYear 3 scale\u003c\/li\u003e\n\u003cli\u003e4.0% lab cost\u003c\/li\u003e\n\u003cli\u003e3.5% processing cost\u003c\/li\u003e\n\u003cli\u003e$250k marketing\u003c\/li\u003e\n\u003cli\u003ericher plan mix\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/td\u003e\n\u003ctd data-export-value=\"Year 5 scale; 3.5% lab cost; 3.0% processing cost; $450k marketing; $1.425m payroll\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003eYear 5 scale\u003c\/li\u003e\n\u003cli\u003e3.5% lab cost\u003c\/li\u003e\n\u003cli\u003e3.0% processing cost\u003c\/li\u003e\n\u003cli\u003e$450k marketing\u003c\/li\u003e\n\u003cli\u003e$1.425m payroll\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=\"CEO salary only\"\u003e\n\u003cstrong class=\"fml-scenario-range\"\u003eCEO salary only\u003c\/strong\u003e\u003cspan class=\"fml-scenario-badge is-soft\"\u003eSalary only\u003c\/span\u003e\n\u003c\/td\u003e\n\u003ctd data-export-value=\"Salary plus modest distributions\"\u003e\n\u003cstrong class=\"fml-scenario-range\"\u003eSalary plus modest distributions\u003c\/strong\u003e\u003cspan class=\"fml-scenario-badge is-soft\"\u003eModest upside\u003c\/span\u003e\n\u003c\/td\u003e\n\u003ctd data-export-value=\"Salary plus larger distributions\"\u003e\n\u003cstrong class=\"fml-scenario-range\"\u003eSalary plus larger distributions\u003c\/strong\u003e\u003cspan class=\"fml-scenario-badge is-warning\"\u003eDistribution upside\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 downside check and plan to stay close to Year 1 scale.\"\u003eUse this if you want a downside check and plan to stay close to Year 1 scale.\u003c\/td\u003e\n\u003ctd data-export-value=\"Use this as the working plan most founders would budget against.\"\u003eUse this as the working plan most founders would budget against.\u003c\/td\u003e\n\u003ctd data-export-value=\"Use this to test upside if sales, staffing, and cash discipline all hold.\"\u003eUse this to test upside if sales, staffing, and cash discipline all hold.\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\u003c\/div\u003e\n\u003cdiv class=\"fml-scenario-table-note\"\u003e\n\u003cspan class=\"fml-scenario-table-note-icon\" aria-hidden=\"true\"\u003e!\u003c\/span\u003e\u003cp\u003e\u003cstrong\u003ePlanning note:\u003c\/strong\u003e These ranges are researched planning assumptions, not guaranteed earnings, salary promises, tax advice, or distributions.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e","brand":"FinancialModelsLab","offers":[{"title":"Default Title","offer_id":49303992238323,"sku":"legionella-prevention-owner-makes","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/legionella-prevention-owner-makes.webp?v=1782685859","url":"https:\/\/financialmodelslab.com\/products\/legionella-prevention-owner-makes","provider":"Financial Models Lab","version":"1.0","type":"link"}