{"product_id":"zamboni-ice-rink-cleaning-owner-makes","title":"How Much Ice Rink Cleaning Owners Make: $150K Salary Plus EBITDA","description":"\u003cbr\u003e\u003cdiv class=\"card_smpl\"\u003e\n\u003cp\u003eAn ice rink cleaning business owner can model \u003cstrong\u003e$150,000 in annual salary\u003c\/strong\u003e, plus possible distributions only after debt service, reserves, taxes, and reinvestment Under the researched assumptions, Year 1 EBITDA is \u003cstrong\u003e-$274,000\u003c\/strong\u003e, so owner pay depends on startup funding By Year 2, EBITDA reaches \u003cstrong\u003e$219,000\u003c\/strong\u003e, and by Year 4 it reaches \u003cstrong\u003e$2073 million\u003c\/strong\u003e These are scenario-based estimates before financing differences, tax planning, and owner distribution choices\u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003csection class=\"fml-owner-metric-cards\" aria-label=\"Ice rink cleaning\"\u003e\u003cdiv class=\"metric-grid\"\u003e\n\u003carticle class=\"metric-card is-green\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Year 1 modeled founder salary; excludes taxes, owner draws, and profit 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 modeled founder salary; excludes taxes, owner draws, and profit distributions.\"\u003e$150k\u003c\/strong\u003e\u003c\/article\u003e\u003carticle class=\"metric-card\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Year 1 contribution margin after 21% COGS and 6% variable costs; excludes payroll, fixed overhead, capex, and taxes.\"\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 contribution margin after 21% COGS and 6% variable costs; excludes payroll, fixed overhead, capex, and taxes.\"\u003e73%\u003c\/strong\u003e\u003c\/article\u003e\u003carticle class=\"metric-card\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Annual revenue needed to fund $150k founder pay and modeled fixed costs at 73% contribution; break-even proxy from Year 1 inputs.\"\u003e\u003cimg class=\"metric-icon\" src=\"\/cdn\/shop\/files\/fml-owner-income-kpi-revenue-target.svg\" alt=\"Revenue for target pay icon\" loading=\"lazy\"\u003e\u003c\/span\u003e\u003cspan\u003eRevenue for target pay\u003c\/span\u003e\u003cstrong class=\"metric-value\" tabindex=\"0\" data-tooltip=\"Annual revenue needed to fund $150k founder pay and modeled fixed costs at 73% contribution; break-even proxy from Year 1 inputs.\"\u003e$899k\u003c\/strong\u003e\u003c\/article\u003e\u003carticle class=\"metric-card\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Hard because Year 1 EBITDA is negative, minimum cash hits -$278k in Month 16, and payback takes 42 months.\"\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=\"Hard because Year 1 EBITDA is negative, minimum cash hits -$278k in Month 16, and payback takes 42 months.\"\u003eHard\u003c\/strong\u003e\u003c\/article\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eWant to test your owner pay?\n\u003c\/span\u003e\u003c\/h2\u003e\n\u003csection class=\"fml-owner-calculator\" aria-label=\"Owner Income Calculator\" data-locale=\"en-US\" data-currency=\"USD\" data-default-scenario=\"base\" data-export-filename=\"Owner Income Calculator.xlsx\" data-source-site-name=\"Financial Models Lab\" data-source-site-url=\"https:\/\/financialmodelslab.com\" data-source-page-title=\"Owner Income Calculator\" data-note-title=\"Planning note:\" data-note-text=\"This is a researched planning estimate, 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 target-pay gap from revenue, margin, costs, reserves, and target pay.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-scenarios\" aria-label=\"Income scenario presets\"\u003e\n\u003cbutton class=\"fml-owner-scenario\" type=\"button\" data-scenario=\"low\"\u003eLow\u003c\/button\u003e\u003cbutton class=\"fml-owner-scenario is-active\" type=\"button\" data-scenario=\"base\"\u003eBase\u003c\/button\u003e\u003cbutton class=\"fml-owner-scenario\" type=\"button\" data-scenario=\"high\"\u003eHigh\u003c\/button\u003e\n\u003c\/div\u003e\u003c\/header\u003e\u003cdiv class=\"fml-owner-layout\"\u003e\n\u003cform class=\"fml-owner-inputs\"\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eMonthly revenue\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Average monthly sales collected before expenses. Use a normal operating month, not a peak month.\"\u003ei\u003cspan role=\"tooltip\"\u003eAverage monthly sales collected before expenses. Use a normal operating month, not a peak month.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-money\"\u003e\n\u003cspan\u003e$\u003c\/span\u003e\u003cinput data-owner-field=\"monthlyRevenue\" data-owner-kind=\"money\" data-owner-label=\"Monthly revenue\" data-owner-note=\"Average monthly sales collected before expenses. Use a normal operating month, not a peak month.\" data-low=\"120000\" data-base=\"180000\" data-high=\"240000\" name=\"monthlyRevenue\" type=\"text\" inputmode=\"numeric\" value=\"180,000\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eGross margin\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Percent of revenue left after direct service costs.\"\u003ei\u003cspan role=\"tooltip\"\u003ePercent of revenue left after 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 direct service costs.\" name=\"grossMargin\" type=\"range\" min=\"0\" max=\"100\" step=\"1\" data-low=\"42\" data-base=\"56\" data-high=\"58\" value=\"56\"\u003e\u003coutput\u003e56%\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.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly payroll and contractor cost before owner pay.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-money\"\u003e\n\u003cspan\u003e$\u003c\/span\u003e\u003cinput data-owner-field=\"laborCost\" data-owner-kind=\"money\" data-owner-label=\"Labor cost\" data-owner-note=\"Monthly payroll and contractor cost before owner pay.\" data-low=\"38000\" data-base=\"40000\" data-high=\"48000\" name=\"laborCost\" type=\"text\" inputmode=\"numeric\" value=\"40,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, utilities, software, insurance, admin, and recurring overhead.\"\u003ei\u003cspan role=\"tooltip\"\u003eRent, utilities, software, insurance, admin, and recurring overhead.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-money\"\u003e\n\u003cspan\u003e$\u003c\/span\u003e\u003cinput data-owner-field=\"fixedOverhead\" data-owner-kind=\"money\" data-owner-label=\"Fixed overhead\" data-owner-note=\"Rent, utilities, software, insurance, admin, and recurring overhead.\" data-low=\"14000\" data-base=\"14500\" data-high=\"15000\" name=\"fixedOverhead\" type=\"text\" inputmode=\"numeric\" value=\"14,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 marketing and customer acquisition spend.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly marketing and customer acquisition spend.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-money\"\u003e\n\u003cspan\u003e$\u003c\/span\u003e\u003cinput data-owner-field=\"marketing\" data-owner-kind=\"money\" data-owner-label=\"Marketing\" data-owner-note=\"Monthly marketing and customer acquisition spend.\" data-low=\"7000\" data-base=\"8000\" data-high=\"10000\" name=\"marketing\" type=\"text\" inputmode=\"numeric\" value=\"8,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 equipment payment.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly loan or equipment payment.\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 equipment payment.\" data-low=\"8000\" data-base=\"5500\" data-high=\"6500\" name=\"debtService\" type=\"text\" inputmode=\"numeric\" value=\"5,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\u003eTax reserve\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Percent of profit set aside for taxes before owner take-home.\"\u003ei\u003cspan role=\"tooltip\"\u003ePercent of profit set aside for taxes before owner take-home.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-percent\"\u003e\n\u003cinput data-owner-field=\"taxReserve\" data-owner-kind=\"percent\" data-owner-label=\"Tax reserve\" data-owner-note=\"Percent of profit set aside for taxes before owner take-home.\" name=\"taxReserve\" type=\"range\" min=\"0\" max=\"45\" step=\"1\" data-low=\"15\" data-base=\"18\" data-high=\"20\" value=\"18\"\u003e\u003coutput\u003e18%\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, and working capital.\"\u003ei\u003cspan role=\"tooltip\"\u003ePercent of profit kept for repairs, growth, and working capital.\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, and working capital.\" name=\"reinvestmentReserve\" type=\"range\" min=\"0\" max=\"35\" step=\"1\" data-low=\"10\" data-base=\"10\" data-high=\"12\" value=\"10\"\u003e\u003coutput\u003e10%\u003c\/output\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eTarget owner pay\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Target monthly owner income used to measure the gap.\"\u003ei\u003cspan role=\"tooltip\"\u003eTarget monthly owner income used to measure the gap.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-money\"\u003e\n\u003cspan\u003e$\u003c\/span\u003e\u003cinput data-owner-field=\"targetOwnerPay\" data-owner-kind=\"money\" data-owner-label=\"Target owner pay\" data-owner-note=\"Target monthly owner income used to measure the gap.\" data-low=\"8000\" data-base=\"15000\" data-high=\"22000\" name=\"targetOwnerPay\" type=\"text\" inputmode=\"numeric\" value=\"15,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$23,616\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\"\u003e13%\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$159K\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$8,616\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$283,392\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$32,800\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$9,184\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$8,616\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$180K\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: 56%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$101K\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: 38%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$68,000\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: 5%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$9,184\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: 13%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$23,616\u003c\/b\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbutton class=\"fml-owner-export\" type=\"button\" data-owner-export\u003eEXPORT XLSX\u003c\/button\u003e\u003c\/aside\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-note\"\u003e\n\u003cspan class=\"fml-owner-note-icon\" aria-hidden=\"true\"\u003e!\u003c\/span\u003e\u003cp\u003e\u003cstrong\u003ePlanning note:\u003c\/strong\u003e This is a researched planning estimate, not guaranteed salary, tax advice, or owner distribution advice.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003cbr\u003e\u003cdiv class=\"container_new_design_blog\"\u003e\n\n\u003cdiv class=\"text-section_blog text-2_new_design_blog\"\u003e\n\n\u003cdiv class=\"line_top_blog\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\n\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003eWant to check owner income in the model?\u003c\/span\u003e\u003c\/h3\u003e\n\n\u003cp\u003eSee the \u003ca href=\"\/products\/zamboni-ice-rink-cleaning-financial-model\"\u003eIce Rink Cleaning Financial Model Template\u003c\/a\u003e for revenue, costs, cash flow, EBITDA, and owner income. Open the model.\u003c\/p\u003e\n\n\u003ch4\u003eOwner-income model highlights\u003c\/h4\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eFounder salary:\u003c\/strong\u003e $150K\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eEBITDA path:\u003c\/strong\u003e -$274K to scale\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eStress-test key drivers:\u003c\/strong\u003e pricing, payroll, density\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp\u003eDashboard tabs cover revenue assumptions, contract volume, service mix, labor, equipment costs, maintenance reserves, marketing budget, cash flow, breakeven, and payback. Scenario tabs test $910K startup capex and $14,050 monthly fixed overhead.\u003c\/p\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\/zamboni-ice-rink-cleaning-financial-model-dashboard-financialmodelslab_00ddc9f7-a0dc-46cc-8c92-581680e4e194.webp\"\u003e\n\u003cimg class=\"preview-img\" width=\"100%\" height=\"auto\" src=\"\/cdn\/shop\/files\/zamboni-ice-rink-cleaning-financial-model-dashboard-financialmodelslab_00ddc9f7-a0dc-46cc-8c92-581680e4e194.webp?width=500\" alt=\"Ice Rink Cleaning Financial Model dashboard summarizes key KPIs, runway and cash position with a dynamic dashboard, helping owners spot cash-flow blind spots and present investor-ready metrics.\"\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 affects ice rink cleaning profit margin?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003eFor \u003cstrong\u003eIce Rink Cleaning\u003c\/strong\u003e, Year 1 profit margin is negative because \u003cstrong\u003edirect and variable costs\u003c\/strong\u003e hit \u003cstrong\u003e270%\u003c\/strong\u003e of revenue, which leaves a \u003cstrong\u003e-170%\u003c\/strong\u003e contribution margin before owner pay. For the setup side, see \u003ca href=\"\/blogs\/startup-costs\/zamboni-ice-rink-cleaning\"\u003eHow Much Does It Cost To Open, Start, And Launch Your Ice Rink Cleaning Business?\u003c\/a\u003e. After that, owner take-home still has to absorb \u003cstrong\u003e$4875K\u003c\/strong\u003e payroll, \u003cstrong\u003e$1686K\u003c\/strong\u003e fixed overhead, \u003cstrong\u003e$50K\u003c\/strong\u003e marketing, \u003cstrong\u003e$910K\u003c\/strong\u003e startup capex, plus reserves, debt service, and taxes.\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\u003eContribution margin\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eConsumables run \u003cstrong\u003e40%\u003c\/strong\u003e of revenue\u003c\/li\u003e\n\u003cli\u003eDirect technician labor is \u003cstrong\u003e100%\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eEquipment maintenance and fuel are \u003cstrong\u003e70%\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eCommissions, project marketing, fees total \u003cstrong\u003e60%\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"card_smpl\"\u003e\n\u003cdiv class=\"card_smpl_header\"\u003e\n\u003cimg src=\"\/cdn\/shop\/files\/fml_20_fml-intro-icon.svg\" alt=\"Icon\" class=\"icon_how_to_use\"\u003e\u003ch3\u003eOwner take-home\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003ePayroll absorbs \u003cstrong\u003e$4875K\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eFixed overhead adds \u003cstrong\u003e$1686K\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eMarketing and capex add \u003cstrong\u003e$50K\u003c\/strong\u003e and \u003cstrong\u003e$910K\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eReserves, debt service, and taxes still remain\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eCan one person run an ice rink cleaning business?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003eYes, one person can run \u003cstrong\u003eIce Rink Cleaning\u003c\/strong\u003e, but only at a very limited job count because resurfacing time, travel, event schedules, and emergency calls stack up fast; see \u003ca href=\"\/blogs\/kpi-metrics\/zamboni-ice-rink-cleaning\"\u003eWhat Is The Key Measure Of Success For Ice Rink Cleaning?\u003c\/a\u003e for the core operating metric. The researched plan is not solo: Year 1 includes \u003cstrong\u003e1 operations manager\u003c\/strong\u003e, \u003cstrong\u003e1 senior technician\u003c\/strong\u003e, \u003cstrong\u003e2 ice technicians\u003c\/strong\u003e, \u003cstrong\u003e0.5 sales manager\u003c\/strong\u003e, \u003cstrong\u003e0.5 admin\u003c\/strong\u003e, and the founder.\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\u003eSolo limits\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eTravel time cuts paid work\u003c\/li\u003e\n\u003cli\u003eEvent schedules compress service windows\u003c\/li\u003e\n\u003cli\u003eEmergency calls disrupt planned jobs\u003c\/li\u003e\n\u003cli\u003eFounder labor can block sales\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\u003ePlanned team\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003e1\u003c\/strong\u003e operations manager\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e3\u003c\/strong\u003e technician roles\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e0.5\u003c\/strong\u003e sales manager\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e0.5\u003c\/strong\u003e admin support\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eHow do you scale an ice rink cleaning business profitably?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003eIce Rink Cleaning can scale profitably only when each new contract covers \u003cstrong\u003epayroll\u003c\/strong\u003e, equipment capacity, dispatch time, and route gaps. The modeled EBITDA moves from \u003cstrong\u003e-$274K\u003c\/strong\u003e in Year 1 to \u003cstrong\u003e$219K\u003c\/strong\u003e in Year 2, \u003cstrong\u003e$964K\u003c\/strong\u003e in Year 3, and \u003cstrong\u003e$2073M\u003c\/strong\u003e in Year 4, but wages also rise from \u003cstrong\u003e$4875K\u003c\/strong\u003e in Year 1 to \u003cstrong\u003e$11875M\u003c\/strong\u003e in Year 4. So the best lever is dense rink routes with a higher premium mix, not revenue growth that adds idle labor.\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\u003eProfit triggers\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003ePack \u003cstrong\u003edense rink routes\u003c\/strong\u003e first.\u003c\/li\u003e\n\u003cli\u003eSell more \u003cstrong\u003epremium mix\u003c\/strong\u003e contracts.\u003c\/li\u003e\n\u003cli\u003eCover \u003cstrong\u003epayroll\u003c\/strong\u003e before adding stops.\u003c\/li\u003e\n\u003cli\u003eUse capacity, not vanity growth.\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\u003eScale risks\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eIdle labor cuts margin fast.\u003c\/li\u003e\n\u003cli\u003eDispatch gaps waste paid hours.\u003c\/li\u003e\n\u003cli\u003eWages rise to \u003cstrong\u003e$11875M\u003c\/strong\u003e by Year 4.\u003c\/li\u003e\n\u003cli\u003eYear 1 EBITDA starts at \u003cstrong\u003e-$274K\u003c\/strong\u003e.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eWant to see the six biggest income drivers?\n\u003c\/span\u003e\u003c\/h2\u003e\n\u003csection class=\"fml-main-income-drivers\" aria-label=\"Accessible label for the Main Income Drivers card grid.\"\u003e\u003carticle class=\"driver-option is-cards\"\u003e\u003cdiv class=\"main-driver-grid\"\u003e\n\u003carticle class=\"main-driver-card is-primary\"\u003e\u003cdiv class=\"main-driver-heading\"\u003e\n\u003cspan class=\"driver-rank\"\u003e1\u003c\/span\u003e\u003ch4\u003eContract Count\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$3K-$6K\u003c\/strong\u003e\u003cp\u003eEach new arena adds recurring monthly revenue, and more contracts spread the $14,050 fixed overhead across a bigger base.\u003c\/p\u003e\u003c\/article\u003e\u003carticle class=\"main-driver-card\"\u003e\u003cdiv class=\"main-driver-heading\"\u003e\n\u003cspan class=\"driver-rank\"\u003e2\u003c\/span\u003e\u003ch4\u003ePricing Mix\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e73%\u003c\/strong\u003e\u003cp\u003eShifting more work into premium monthly maintenance lifts revenue per account from $3,000 to $6,000 and pushes margin up.\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\u003eUtilization\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e20h\u003c\/strong\u003e\u003cp\u003eMore billable hours per active customer raise revenue without much extra fixed cost, so each account pays back faster.\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\u003eLabor Efficiency\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e8%-10%\u003c\/strong\u003e\u003cp\u003eKeeping direct technician labor in line and the founder out of routine field work leaves more gross profit for owner pay.\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\u003eEquipment Costs\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e6%-7%\u003c\/strong\u003e\u003cp\u003eLower fuel and maintenance spend protects cash as the fleet works more hours and the business scales.\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\u003eEvent Demand\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003eM17\u003c\/strong\u003e\u003cp\u003eEmergency repairs and project work help on busy weeks, but uneven demand means cash still has to cover the Month 17 breakeven.\u003c\/p\u003e\u003c\/article\u003e\n\u003c\/div\u003e\u003c\/article\u003e\u003c\/section\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eIce Rink Cleaning Core Six Income Drivers\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\u003cbr\u003e\n\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003eContract Volume And Customer Mix\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n  \u003cdiv class=\"left-row1\"\u003e\n    \u003ch3\u003eContract Volume and Mix\u003c\/h3\u003e\n    \u003cp\u003e\u003cstrong\u003eMore recurring rink contracts\u003c\/strong\u003e usually make revenue steadier, but owner pay only rises if the contract mix stays profitable after labor and equipment. In this model, monthly pricing is \u003cstrong\u003e$3,000\u003c\/strong\u003e for standard maintenance and \u003cstrong\u003e$6,000\u003c\/strong\u003e for premium maintenance, so mix matters as much as volume. If premium work adds load faster than staffing can absorb it, \u003cstrong\u003eEBITDA\u003c\/strong\u003e — earnings before interest, taxes, depreciation, and amortization — can flatten even when sales grow.\u003c\/p\u003e\n    \u003cp\u003eThe model says customer mix shifts from \u003cstrong\u003e700% standard and 200% premium\u003c\/strong\u003e in Year 1 to \u003cstrong\u003e620% standard and 330% premium\u003c\/strong\u003e by Year 4. That means the owner must track contract count, service hours per rink, and technician capacity together. One clean contract at the right price is worth more than two overloaded ones. If premium contracts push overtime or downtime, take-home income can fall.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"right-row1\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003eTrack Mix Before You Add Accounts\u003c\/h3\u003e\n      \u003cp\u003eMeasure \u003cstrong\u003emonthly recurring contract revenue\u003c\/strong\u003e, service hours per contract, and direct labor tied to each tier. The key test is simple: does each new premium rink raise gross profit after staffing and equipment use, or just add strain? If the answer is no, the extra revenue is busy work, not owner income.\u003c\/p\u003e\n      \u003cp\u003eUse a short control list: \u003cstrong\u003econtract count\u003c\/strong\u003e, \u003cstrong\u003estandard vs. premium mix\u003c\/strong\u003e, \u003cstrong\u003ehours per rink\u003c\/strong\u003e, \u003cstrong\u003eovertime\u003c\/strong\u003e, and \u003cstrong\u003eequipment downtime\u003c\/strong\u003e. Premium work should only expand when the team can cover it without missed service or rushed jobs. That is what protects cash flow and the owner’s draw.\u003c\/p\u003e\n      \u003cul class=\"lst_crct_blog\"\u003e\n        \u003cli\u003e\n\u003cstrong\u003eTrack\u003c\/strong\u003e revenue per active rink.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eWatch\u003c\/strong\u003e technician hours by contract tier.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eLimit\u003c\/strong\u003e premium sales if service load spikes.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eTest\u003c\/strong\u003e staffing before adding more contracts.\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"timeline\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"step-circle step1\"\u003e1\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003eResurfacing Frequency And Schedule Utilization\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n  \u003cdiv class=\"right-row2\"\u003e\n    \u003ch3\u003eResurfacing Frequency\u003c\/h3\u003e\n    \u003cp\u003eHigher resurfacing frequency helps when more of each operator day is paid work, not unpaid travel or waiting. In the model, average billable hours per active customer rise from \u003cstrong\u003e20\u003c\/strong\u003e a month in Year 1 to \u003cstrong\u003e24\u003c\/strong\u003e in Year 4 and \u003cstrong\u003e25\u003c\/strong\u003e in Year 5, so the same route can produce more revenue without the same jump in payroll or vehicle cost.\u003c\/p\u003e\n    \u003cp\u003eRoute density is the key test. Two nearby arenas can share the same operator block, but two distant accounts create dead time between events. If scheduling adds idle gaps, revenue grows slower than wages, fuel, and vehicle wear, so owner cash gets squeezed even when bookings look full.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"left-row2\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003eTrack Billable Hours Per Route\u003c\/h3\u003e\n      \u003cp\u003eMeasure \u003cstrong\u003ebillable hours per active customer\u003c\/strong\u003e, travel minutes per stop, and dead time between jobs. The goal is simple: turn more of each shift into paid service. If the monthly billable-hour trend stays near \u003cstrong\u003e20\u003c\/strong\u003e for too long, utilization is weak and the route is probably too spread out.\u003c\/p\u003e\n      \u003cul class=\"lst_crct_blog\"\u003e\n        \u003cli\u003eTrack paid hours by arena.\u003c\/li\u003e\n        \u003cli\u003eLog travel time by route.\u003c\/li\u003e\n        \u003cli\u003eReview dead gaps weekly.\u003c\/li\u003e\n        \u003cli\u003eGroup nearby rinks first.\u003c\/li\u003e\n        \u003cli\u003eMatch event timing to staff shifts.\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cp\u003eUse this data to set minimum route density before you add accounts. When the schedule fills with short trips and waiting, gross profit drops fast, and the owner feels it in cash flow before revenue shows the strain. The fix is tighter routing, fewer gaps, and pricing that covers non-billable time.\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;\"\u003ePricing And Contract Structure\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n\u003cdiv class=\"left-row3\"\u003e\n\u003ch3\u003ePricing And Contract Structure\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong\u003ePricing\u003c\/strong\u003e sets margin before cash hits the bank. In Year 1, the model uses \u003cstrong\u003e$3,000\u003c\/strong\u003e per month for standard maintenance, \u003cstrong\u003e$6,000\u003c\/strong\u003e for premium maintenance, \u003cstrong\u003e$1,000\u003c\/strong\u003e for a major resurfacing project, and \u003cstrong\u003e$500\u003c\/strong\u003e for an emergency repair retainer. Those retainers improve cash flow, while project and emergency work can lift revenue but also push scheduling, labor, and travel costs higher.\u003c\/p\u003e\n\u003cp\u003eHere’s the quick math: recurring contracts create the base, then project and emergency work add variable upside. If pricing is too low for rink size, service level, or operating hours, the owner can end up busy but underpaid. \u003cstrong\u003eWhat this estimate hides\u003c\/strong\u003e is local market fit; these are Year 1 inputs, not universal U.S. prices.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"right-row3\"\u003e\n\u003cdiv class=\"tips-box\"\u003e\n\u003ch3\u003eTrack Contract Mix and Billable Load\u003c\/h3\u003e\n\u003cp\u003eMeasure revenue by contract type, not just total sales. Track \u003cstrong\u003emonthly recurring revenue\u003c\/strong\u003e, project counts, emergency retainers, billable hours, and unfilled route gaps. The owner pays themselves from the spread after labor and vehicle time, so a contract that looks large on paper can still hurt cash if it creates dead time or overtime.\u003c\/p\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eTrack standard and premium mix\u003c\/li\u003e\n\u003cli\u003ePrice by rink hours\u003c\/li\u003e\n\u003cli\u003eTest project change-order fees\u003c\/li\u003e\n\u003cli\u003eWatch travel time per job\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eUse contract terms that lock in minimum monthly spend and clear scope. Retainers smooth cash flow, and written service limits protect margin when rinks add last-minute work. If emergency calls rise but scheduling gets tight, profit can stall even as revenue rises. The goal is simple: keep the rate high enough that each visit adds \u003cstrong\u003egross margin\u003c\/strong\u003e, not just activity.\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 Efficiency And Owner Role\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n  \u003cdiv class=\"right-row4\"\u003e\n    \u003ch3\u003eOwner Labor vs Paid Operators\u003c\/h3\u003e\n    \u003cp\u003eOwner-led work saves cash early, but it also caps \u003cstrong\u003esales calls\u003c\/strong\u003e, \u003cstrong\u003ebillable hours\u003c\/strong\u003e, and emergency coverage. In this plan, wages are shown at \u003cstrong\u003e$4,875K\u003c\/strong\u003e in Year 1, then \u003cstrong\u003e$675K\u003c\/strong\u003e, \u003cstrong\u003e$970K\u003c\/strong\u003e, and \u003cstrong\u003e$11,875M\u003c\/strong\u003e by Year 4, so the switch from owner labor to paid operators only helps if contract volume grows faster than payroll.\u003c\/p\u003e\n    \u003cp\u003eHere’s the quick math: more staff can raise route coverage, but if the crew sits idle, owner take-home drops. The real risk is paying for labor before the schedule is full, which lowers cash flow and profit even when revenue looks better on paper. Missed \u003cstrong\u003eemergency calls\u003c\/strong\u003e and overtime are the first signs the model is stretched.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"left-row4\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003eMeasure Technician Output\u003c\/h3\u003e\n      \u003cp\u003eTrack \u003cstrong\u003erevenue per technician\u003c\/strong\u003e, \u003cstrong\u003ebillable hours\u003c\/strong\u003e, \u003cstrong\u003eovertime\u003c\/strong\u003e, and \u003cstrong\u003emissed emergency calls\u003c\/strong\u003e every month. If one tech’s route is thin, add nearby accounts before adding headcount. That keeps labor tied to paid work instead of dead travel time, which protects owner draw and cash.\u003c\/p\u003e\n      \u003cp\u003eUse a simple test: if adding an operator does not lift scheduled work enough to cover wages and travel, keep the owner in the field. If nearby contracts can share the same route, labor efficiency improves fast; if not, payroll grows faster than income. One empty hour can cost more than it looks.\u003c\/p\u003e\n      \u003cul class=\"lst_crct_blog\"\u003e\n        \u003cli\u003eRevenue per technician\u003c\/li\u003e\n        \u003cli\u003eBillable hours per week\u003c\/li\u003e\n        \u003cli\u003eOvertime by route\u003c\/li\u003e\n        \u003cli\u003eMissed emergency calls\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;\"\u003eEquipment Costs And Maintenance Reserves\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n\u003cdiv class=\"left-row5\"\u003e\n\u003ch3\u003eEquipment Costs And Maintenance Reserves\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong\u003eEquipment\u003c\/strong\u003e is the biggest cash strain here. The model ties up \u003cstrong\u003e$910K\u003c\/strong\u003e in startup capex, led by \u003cstrong\u003e$600K\u003c\/strong\u003e for resurfacing machines and \u003cstrong\u003e$150K\u003c\/strong\u003e for service vehicles. That cash leaves before the first contract pays, so owner income starts under pressure even if sales look strong on paper.\u003c\/p\u003e\n\u003cp\u003eOngoing cost is the real squeeze. Vehicle fleet lease payments add \u003cstrong\u003e$8,000 per month\u003c\/strong\u003e, and equipment maintenance plus fuel run at \u003cstrong\u003e70% of revenue in Year 1\u003c\/strong\u003e. Add downtime, blade replacement, and repair reserves, and less cash is left for owner pay. Busy routes do not help if machines sit idle or break down.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"right-row5\"\u003e\n\u003cdiv class=\"tips-box\"\u003e\n\u003ch3\u003eTrack the cash burn on each machine\u003c\/h3\u003e\n\u003cp\u003eMeasure what each asset earns and co\nsts: billable hours, fuel per route, repair days, blade life, and lease payments. The key test is simple: if a machine’s direct cost stays near \u003cstrong\u003e70% of revenue\u003c\/strong\u003e, owner draw stays thin unless pricing or route density improves.\u003c\/p\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eTrack\u003c\/strong\u003e billable hours per vehicle.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eReserve\u003c\/strong\u003e cash for blade swaps.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eLog\u003c\/strong\u003e downtime by machine.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCompare\u003c\/strong\u003e fuel cost per route.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eForecast\u003c\/strong\u003e repair spend monthly.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eKeep a separate reserve for repairs so one breakdown does not wipe out profit. If a machine misses work, the loss hits twice: fewer service hours and more rush repair cost. That is the part that cuts distributable owner cash, even when revenue holds up.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"timeline\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"step-circle step5\"\u003e5\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003eSeasonality And Event Demand\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n\u003cdiv class=\"right-row6\"\u003e\n\u003ch3\u003eSeasonal Demand\u003c\/h3\u003e\n\u003cp\u003eWhen \u003cstrong\u003ehockey seasons\u003c\/strong\u003e, public skating, and tournaments are busy, billable visits rise and owner cash flow improves. Off-season closures do the opposite: revenue slows, but payroll, insurance, leases, and maintenance still land. The model needs \u003cstrong\u003eyear-round minimums\u003c\/strong\u003e to cover \u003cstrong\u003e$14,050\u003c\/strong\u003e in monthly fixed overhead, or cash reserves to bridge the gap.\u003c\/p\u003e\n\u003cp\u003eEvent spikes can lift take-home pay fast. Major resurfacing projects are modeled at \u003cstrong\u003e150%\u003c\/strong\u003e of Year 1 customer allocation and emergency repairs at \u003cstrong\u003e50%\u003c\/strong\u003e, rising to \u003cstrong\u003e200%\u003c\/strong\u003e and \u003cstrong\u003e80%\u003c\/strong\u003e by Year 5. The risk is simple: more demand helps only if crews, travel, and repair time stay under control.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"left-row6\"\u003e\n\u003cdiv class=\"tips-box\"\u003e\n\u003ch3\u003eTrack the Event Calendar\u003c\/h3\u003e\n\u003cp\u003eMeasure each rink’s season dates, tournament weeks, closure months, and emergency call rate. The key inputs are active customer count, billable visits, minimum monthly retainer, and the share of work tied to events versus routine service. One clean rule: if the route has dead weeks, owner income gets shaky fast.\u003c\/p\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eHockey season start and end\u003c\/li\u003e\n\u003cli\u003ePublic skating peaks\u003c\/li\u003e\n\u003cli\u003eTournament weekends\u003c\/li\u003e\n\u003cli\u003eOff-season closure windows\u003c\/li\u003e\n\u003cli\u003eEmergency repair calls\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eBuild a 12-month cash forecast and compare revenue against \u003cstrong\u003e$14,050\u003c\/strong\u003e fixed overhead each month. If winter demand is strong but summer drops, push minimums, pre-book tournament cleanings, and hold cash before closures start. That keeps profit from looking good on paper but turning thin in the bank.\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 cases\n\u003c\/span\u003e\u003c\/h2\u003e\n\u003csection class=\"fml-scenario-table\" aria-label=\"Ice Rink Cleaning Owner Income Scenarios\" data-site-name=\"Financial Models Lab\" data-site-url=\"https:\/\/financialmodelslab.com\" data-source-title=\"Ice Rink Cleaning 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\"\u003eYear 1 stays loss-making, Year 2 turns profitable, and Year 4 scales fast. Owner income moves with mix, staffing, marketing, and the heavy vehicle and equipment load.\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\u003eCompare launch, base, and upside owner income cases.\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\"\u003eDownside 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\"\u003eUpside 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 launch-year case, where the business is still funding growth and owner pay stays constrained.\"\u003eThis is the launch-year case, where the business is still funding growth and owner pay stays constrained.\u003c\/td\u003e\n\u003ctd data-export-value=\"This is the early-scale case, where Year 2 economics support positive owner income.\"\u003eThis is the early-scale case, where Year 2 economics support positive owner income.\u003c\/td\u003e\n\u003ctd data-export-value=\"This is the mature-case path, where Year 4 scale pushes owner income much higher.\"\u003eThis is the mature-case path, where Year 4 scale pushes owner income much higher.\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 about $592K, contribution margin is 73%, payroll runs about $487.5K, and $50K of marketing sits on top of a full fixed-cost base.\"\u003eYear 1 revenue is about $592K, contribution margin is 73%, payroll runs about $487.5K, and $50K of marketing sits on top of a full fixed-cost base.\u003c\/td\u003e\n\u003ctd data-export-value=\"Year 2 revenue is about $1.55M, contribution margin is 74.3%, payroll is about $675K, and $90K of marketing supports a positive EBITDA of $219K.\"\u003eYear 2 revenue is about $1.55M, contribution margin is 74.3%, payroll is about $675K, and $90K of marketing supports a positive EBITDA of $219K.\u003c\/td\u003e\n\u003ctd data-export-value=\"Year 4 revenue is about $4.70M, contribution margin is 77.3%, payroll is about $1.19M, and $200K of marketing supports EBITDA of $2.073M.\"\u003eYear 4 revenue is about $4.70M, contribution margin is 77.3%, payroll is about $1.19M, and $200K of marketing supports EBITDA of $2.073M.\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 EBITDA -$274K; 73% contribution margin; $487.5K payroll; $50K marketing; $168.6K fixed overhead\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003eYear 1 EBITDA -$274K\u003c\/li\u003e\n\u003cli\u003e73% contribution margin\u003c\/li\u003e\n\u003cli\u003e$487.5K payroll\u003c\/li\u003e\n\u003cli\u003e$50K marketing\u003c\/li\u003e\n\u003cli\u003e$168.6K fixed overhead\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/td\u003e\n\u003ctd data-export-value=\"Year 2 EBITDA $219K; 74.3% contribution margin; $675K payroll; $90K marketing; 21 billable hours\/customer\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003eYear 2 EBITDA $219K\u003c\/li\u003e\n\u003cli\u003e74.3% contribution margin\u003c\/li\u003e\n\u003cli\u003e$675K payroll\u003c\/li\u003e\n\u003cli\u003e$90K marketing\u003c\/li\u003e\n\u003cli\u003e21 billable hours\/customer\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/td\u003e\n\u003ctd data-export-value=\"Year 4 EBITDA $2.073M; 77.3% contribution margin; $1.1875M payroll; $200K marketing; 24 billable hours\/customer\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003eYear 4 EBITDA $2.073M\u003c\/li\u003e\n\u003cli\u003e77.3% contribution margin\u003c\/li\u003e\n\u003cli\u003e$1.1875M payroll\u003c\/li\u003e\n\u003cli\u003e$200K marketing\u003c\/li\u003e\n\u003cli\u003e24 billable hours\/customer\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=\"No owner draw\"\u003e\n\u003cstrong class=\"fml-scenario-range\"\u003eNo owner draw\u003c\/strong\u003e\u003cspan class=\"fml-scenario-badge is-soft\"\u003eCash burn\u003c\/span\u003e\n\u003c\/td\u003e\n\u003ctd data-export-value=\"$150K - $219K\"\u003e\n\u003cstrong class=\"fml-scenario-range\"\u003e$150K - $219K\u003c\/strong\u003e\u003cspan class=\"fml-scenario-badge is-soft\"\u003eSalary supported\u003c\/span\u003e\n\u003c\/td\u003e\n\u003ctd data-export-value=\"$219K - $2.07M\"\u003e\n\u003cstrong class=\"fml-scenario-range\"\u003e$219K - $2.07M\u003c\/strong\u003e\u003cspan class=\"fml-scenario-badge is-warning\"\u003eScale 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 to stress-test slow sales and a founder who cannot pay themselves yet.\"\u003eUse this to stress-test slow sales and a founder who cannot pay themselves yet.\u003c\/td\u003e\n\u003ctd data-export-value=\"Use this for a funded plan that aims for a $150K founder salary and modest profit.\"\u003eUse this for a funded plan that aims for a $150K founder salary and modest profit.\u003c\/td\u003e\n\u003ctd data-export-value=\"Use this to test a strong scale case with premium mix and room for bigger owner pay.\"\u003eUse this to test a strong scale case with premium mix and room for bigger owner pay.\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":49304402493683,"sku":"zamboni-ice-rink-cleaning-owner-makes","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/zamboni-ice-rink-cleaning-owner-makes.webp?v=1782695687","url":"https:\/\/financialmodelslab.com\/products\/zamboni-ice-rink-cleaning-owner-makes","provider":"Financial Models Lab","version":"1.0","type":"link"}