{"product_id":"steam-locomotive-restoration-owner-makes","title":"Steam Locomotive Restoration Owner Income: $145k Salary To $163M EBITDA","description":"\u003cbr\u003e\u003cdiv class=\"card_smpl\"\u003e\n\u003cp\u003eA steam locomotive restoration service owner can make a modeled \u003cstrong\u003e$145k salary\u003c\/strong\u003e if they fill the chief mechanical engineer role, but owner distributions depend on profit and cash reserves Under the researched assumptions, annual revenue grows from about \u003cstrong\u003e$220k in Year 1\u003c\/strong\u003e to \u003cstrong\u003e$439M in Year 5\u003c\/strong\u003e EBITDA is negative in Years 1 to 3, then reaches about \u003cstrong\u003e$405k in Year 4\u003c\/strong\u003e and \u003cstrong\u003e$163M in Year 5\u003c\/strong\u003e before taxes, debt service, reserves, and reinvestment The clean takeaway: this can become a strong owner-income business, but only after backlog, billing, and crew utilization catch up to heavy fixed costs\u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003csection class=\"fml-owner-metric-cards\" aria-label=\"Top owner income KPI cards\"\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 owner salary is $145k; true take-home still depends on reserves, debt service, taxes, and reinvestment.\"\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 owner salary is $145k; true take-home still depends on reserves, debt service, taxes, and reinvestment.\"\u003e$145k\u003c\/strong\u003e\u003c\/article\u003e\u003carticle class=\"metric-card\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"EBITDA margin from Year 1 to Year 5 runs from negative to 39%; it excludes taxes, debt, and reinvestment.\"\u003e\u003cimg class=\"metric-icon\" src=\"\/cdn\/shop\/files\/fml-owner-income-kpi-net-margin.svg\" alt=\"Net margin icon\" loading=\"lazy\"\u003e\u003c\/span\u003e\u003cspan\u003eNet margin\u003c\/span\u003e\u003cstrong class=\"metric-value\" tabindex=\"0\" data-tooltip=\"EBITDA margin from Year 1 to Year 5 runs from negative to 39%; it excludes taxes, debt, and reinvestment.\"\u003e-24% to 39%\u003c\/strong\u003e\u003c\/article\u003e\u003carticle class=\"metric-card\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Using Year 5 EBITDA margin as a proxy, about $370k annual revenue supports a $145k modeled salary before reserves and tax.\"\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=\"Using Year 5 EBITDA margin as a proxy, about $370k annual revenue supports a $145k modeled salary before reserves and tax.\"\u003e$370k\u003c\/strong\u003e\u003c\/article\u003e\u003carticle class=\"metric-card\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Heavy capex, a Month 9 cash trough, and negative Year 1 EBITDA make this a hard build despite later margin gains.\"\u003e\u003cimg class=\"metric-icon\" src=\"\/cdn\/shop\/files\/fml-owner-income-kpi-business-difficulty.svg\" alt=\"Business difficulty icon\" loading=\"lazy\"\u003e\u003c\/span\u003e\u003cspan\u003eBusiness difficulty\u003c\/span\u003e\u003cstrong class=\"metric-value\" tabindex=\"0\" data-tooltip=\"Heavy capex, a Month 9 cash trough, and negative Year 1 EBITDA make this a hard build despite later margin gains.\"\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 take-home?\n\u003c\/span\u003e\u003c\/h2\u003e\n\u003csection class=\"fml-owner-calculator\" aria-label=\"Steam Locomotive Restoration Service Owner Income Calculator\" data-locale=\"en-US\" data-currency=\"USD\" data-default-scenario=\"base\" data-export-filename=\"Steam Locomotive Restoration Service Owner Income Calculator.xlsx\" data-source-site-name=\"Financial Models Lab\" data-source-site-url=\"https:\/\/financialmodelslab.com\" data-source-page-title=\"Steam Locomotive Restoration Service Owner Income Calculator\" data-note-title=\"Planning note:\" data-note-text=\"Research-based planning estimate only. It is not guaranteed salary, tax advice, or owner distribution advice.\"\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 monthly revenue, gross margin, labor, overhead, marketing, debt, 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 collected revenue in a normal month. Use the operating mix from restoration, inspections, and fabrication.\"\u003ei\u003cspan role=\"tooltip\"\u003eAverage collected revenue in a normal month. Use the operating mix from restoration, inspections, and fabrication.\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 collected revenue in a normal month. Use the operating mix from restoration, inspections, and fabrication.\" data-low=\"217833\" data-base=\"303500\" data-high=\"476500\" name=\"monthlyRevenue\" type=\"text\" inputmode=\"numeric\" value=\"303,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\u003eGross margin\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Percent left after steel, foundry casting, consumables, freight, and subcontracted shop work.\"\u003ei\u003cspan role=\"tooltip\"\u003ePercent left after steel, foundry casting, consumables, freight, and subcontracted shop work.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-percent\"\u003e\n\u003cinput data-owner-field=\"grossMargin\" data-owner-kind=\"percent\" data-owner-label=\"Gross margin\" data-owner-note=\"Percent left after steel, foundry casting, consumables, freight, and subcontracted shop work.\" name=\"grossMargin\" type=\"range\" min=\"0\" max=\"100\" step=\"1\" data-low=\"71\" data-base=\"73\" data-high=\"76\" value=\"73\"\u003e\u003coutput\u003e73%\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. Based on the shop team and FTE mix.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly payroll and contractor cost before owner pay. Based on the shop team and FTE mix.\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. Based on the shop team and FTE mix.\" data-low=\"67083\" data-base=\"85833\" data-high=\"108333\" name=\"laborCost\" type=\"text\" inputmode=\"numeric\" value=\"85,833\"\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=\"Recurring shop overhead like lease, insurance, power, certification, and admin.\"\u003ei\u003cspan role=\"tooltip\"\u003eRecurring shop overhead like lease, insurance, power, certification, and admin.\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=\"Recurring shop overhead like lease, insurance, power, certification, and admin.\" data-low=\"26700\" data-base=\"26700\" data-high=\"26700\" name=\"fixedOverhead\" type=\"text\" inputmode=\"numeric\" value=\"26,700\"\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 spend to support inquiries and project flow.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly marketing spend to support inquiries and project flow.\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 spend to support inquiries and project flow.\" data-low=\"4333\" data-base=\"5000\" data-high=\"5833\" name=\"marketing\" type=\"text\" inputmode=\"numeric\" value=\"5,000\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eDebt service\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Monthly loan or financing payment. Enter 0 if there is no debt.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly loan or financing payment. Enter 0 if there is no debt.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-money\"\u003e\n\u003cspan\u003e$\u003c\/span\u003e\u003cinput data-owner-field=\"debtService\" data-owner-kind=\"money\" data-owner-label=\"Debt service\" data-owner-note=\"Monthly loan or financing payment. Enter 0 if there is no debt.\" data-low=\"0\" data-base=\"0\" data-high=\"0\" name=\"debtService\" type=\"text\" inputmode=\"numeric\" value=\"\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eTax reserve\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Percent of profit set aside for taxes before owner draw.\"\u003ei\u003cspan role=\"tooltip\"\u003ePercent of profit set aside for taxes before owner draw.\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 draw.\" name=\"taxReserve\" type=\"range\" min=\"0\" max=\"45\" step=\"1\" data-low=\"18\" data-base=\"24\" data-high=\"28\" value=\"24\"\u003e\u003coutput\u003e24%\u003c\/output\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eReinvestment reserve\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Percent kept for repairs, working capital, and future capex.\"\u003ei\u003cspan role=\"tooltip\"\u003ePercent kept for repairs, working capital, and future capex.\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 kept for repairs, working capital, and future capex.\" name=\"reinvestmentReserve\" type=\"range\" min=\"0\" max=\"35\" step=\"1\" data-low=\"5\" data-base=\"10\" data-high=\"14\" 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 pay goal used to measure the target-pay gap.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly owner pay goal used to measure the target-pay gap.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-money\"\u003e\n\u003cspan\u003e$\u003c\/span\u003e\u003cinput data-owner-field=\"targetOwnerPay\" data-owner-kind=\"money\" data-owner-label=\"Target owner pay\" data-owner-note=\"Monthly owner pay goal used to measure the target-pay gap.\" data-low=\"8000\" data-base=\"12000\" data-high=\"18000\" name=\"targetOwnerPay\" type=\"text\" inputmode=\"numeric\" value=\"12,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$68,655\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\"\u003e23%\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$186K\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$56,655\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$823,860\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$104,022\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$35,367\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$56,655\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$304K\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: 73%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$222K\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-bar-row\" data-owner-bridge=\"operatingCosts\"\u003e\n\u003cspan\u003eOperating costs\u003c\/span\u003e\u003cdiv\u003e\u003ci style=\"--fml-owner-share: 39%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$118K\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-bar-row\" data-owner-bridge=\"reserveAmount\"\u003e\n\u003cspan\u003eReserves\u003c\/span\u003e\u003cdiv\u003e\u003ci style=\"--fml-owner-share: 12%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$35,367\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: 23%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$68,655\u003c\/b\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbutton class=\"fml-owner-export\" type=\"button\" data-owner-export\u003eEXPORT XLSX\u003c\/button\u003e\u003c\/aside\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-note\"\u003e\n\u003cspan class=\"fml-owner-note-icon\" aria-hidden=\"true\"\u003e!\u003c\/span\u003e\u003cp\u003e\u003cstrong\u003ePlanning note:\u003c\/strong\u003e Research-based planning estimate only. It is not guaranteed salary, tax advice, or owner distribution advice.\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 I check owner income in the Steam Locomotive Restoration Service model?\u003c\/span\u003e\u003c\/h3\u003e\n\n\u003cp\u003eThe screenshot shows revenue, margin, costs, reserves, and owner take-home assumptions in the \u003ca href=\"\/products\/steam-locomotive-restoration-financial-model\"\u003eSteam Locomotive Restoration Service Financial Model Template\u003c\/a\u003e; open it to test scenarios.\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\u003eOwner take-home\u003c\/strong\u003e output chart\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRevenue and margin\u003c\/strong\u003e drivers\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eScenarios\u003c\/strong\u003e for planning only\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\/steam-locomotive-restoration-financial-model-dashboard-financialmodelslab_05a55053-d987-47db-a9c1-7062e7df8965.webp\"\u003e\n\u003cimg class=\"preview-img\" width=\"100%\" height=\"auto\" src=\"\/cdn\/shop\/files\/steam-locomotive-restoration-financial-model-dashboard-financialmodelslab_05a55053-d987-47db-a9c1-7062e7df8965.webp?width=500\" alt=\"Steam Locomotive Restoration Service Financial Model dashboard summarizes key KPIs, runway and cash position with a dynamic dashboard, highlighting performance and fixing cash-flow blind spots for investor-ready reporting\"\u003e\n\u003cdiv class=\"preview-overlay\"\u003e\n\u003cbutton class=\"preview-btn\" type=\"button\" style=\"align-items: center; vertical-align: middle; display: inline-flex; justify-content: center; gap: 6px; line-height: 1;\"\u003e\nPREVIEW \u003csvg fill=\"#fff\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\" role=\"presentation\" viewbox=\"0 0 448 512\" width=\"14\"\u003e\u003cpath d=\"M416 176V86.63L246.6 256L416 425.4V336c0-8.844 7.156-16 16-16s16 7.156 16 16v128c0 8.844-7.156 16-16 16h-128c-8.844 0-16-7.156-16-16s7.156-16 16-16h89.38L224 278.6L54.63 448H144C152.8 448 160 455.2 160 464S152.8 480 144 480h-128C7.156 480 0 472.8 0 464v-128C0 327.2 7.156 320 16 320S32 327.2 32 336v89.38L201.4 256L32 86.63V176C32 184.8 24.84 192 16 192S0 184.8 0 176v-128C0 39.16 7.156 32 16 32h128C152.8 32 160 39.16 160 48S152.8 64 144 64H54.63L224 233.4L393.4 64H304C295.2 64 288 56.84 288 48S295.2 32 304 32h128C440.8 32 448 39.16 448 48v128C448 184.8 440.8 192 432 192S416 184.8 416 176z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eAre steam locomotive restoration services profitable?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003eYes — a \u003cstrong\u003eSteam Locomotive Restoration Service\u003c\/strong\u003e can be profitable, but the margin swings hard by job type; if you’re mapping one out, see \u003ca href=\"\/blogs\/write-business-plan\/steam-locomotive-restoration\"\u003eHow Do I Write A Business Plan For Steam Locomotive Restoration Service?\u003c\/a\u003e. Here’s the quick math: variable costs rise from \u003cstrong\u003e30%\u003c\/strong\u003e of revenue in Year 1 to \u003cstrong\u003e244%\u003c\/strong\u003e in Year 5, while fixed overhead climbs from \u003cstrong\u003e$760k\u003c\/strong\u003e to \u003cstrong\u003e$13M\u003c\/strong\u003e. EBITDA stays negative in Years \u003cstrong\u003e1 to 3\u003c\/strong\u003e, then turns about \u003cstrong\u003e$405k\u003c\/strong\u003e in Year 4 and about \u003cstrong\u003e$3.204M\u003c\/strong\u003e in Year 5, so profit depends on tight change orders, high utilization, and disciplined sourcing.\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\u003eProfit drivers\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eFull restorations need change-order control.\u003c\/li\u003e\n\u003cli\u003eInspections need high utilization.\u003c\/li\u003e\n\u003cli\u003eYear 4 turns about \u003cstrong\u003e$405k\u003c\/strong\u003e positive.\u003c\/li\u003e\n\u003cli\u003eYear 5 EBITDA reaches about \u003cstrong\u003e$3.204M\u003c\/strong\u003e.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"card_smpl\"\u003e\n\u003cdiv class=\"card_smpl_header\"\u003e\n\u003cimg src=\"\/cdn\/shop\/files\/fml_20_fml-Orange-blog-intro-icon.svg\" alt=\"Icon\" class=\"icon_how_to_use\"\u003e\u003ch3\u003eProfit risks\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eSteel and casting push costs up.\u003c\/li\u003e\n\u003cli\u003eFreight and payroll add pressure.\u003c\/li\u003e\n\u003cli\u003eBoiler work and machining delay cash.\u003c\/li\u003e\n\u003cli\u003eInsurance, cranes, and rework can erase profit.\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 revenue can a steam locomotive restoration service generate?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003eRevenue for a \u003cstrong\u003eSteam Locomotive Restoration Service\u003c\/strong\u003e can start around \u003cstrong\u003e$220k in Year 1\u003c\/strong\u003e and scale to \u003cstrong\u003e$439M by Year 5\u003c\/strong\u003e if it lands full restorations, \u003cstrong\u003eFederal Railroad Administration (FRA)\u003c\/strong\u003e compliance inspections, custom fabrication, winter maintenance, emergency repairs, and multi-year contracts. Here’s the quick math: full restorations run \u003cstrong\u003e$125 to $145 per hour\u003c\/strong\u003e for \u003cstrong\u003e480 to 640 hours\u003c\/strong\u003e, inspections run \u003cstrong\u003e$150 to $170 per hour\u003c\/strong\u003e for \u003cstrong\u003e80 to 90 hours\u003c\/strong\u003e, and fabrication runs \u003cstrong\u003e$175 to $200 per hour\u003c\/strong\u003e for \u003cstrong\u003e40 to 60 hours\u003c\/strong\u003e.\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\u003eRevenue drivers\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eFull restorations\u003c\/strong\u003e drive the biggest jobs\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFRA inspections\u003c\/strong\u003e add steady billable hours\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCustom fabrication\u003c\/strong\u003e pays the highest hourly rate\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMulti-year contracts\u003c\/strong\u003e smooth repeat revenue\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"card_smpl blue_card\"\u003e\n\u003cdiv class=\"card_smpl_header\"\u003e\n\u003cimg src=\"\/cdn\/shop\/files\/fml_20_fml-Orange-blog-colons-icon.svg\" alt=\"Icon\" class=\"icon_how_to_use\"\u003e\u003ch3\u003eCash risk\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003ePayroll\u003c\/strong\u003e starts before final payment\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMaterials deposits\u003c\/strong\u003e eat upfront cash\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFreight\u003c\/strong\u003e adds project cost fast\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBilling milestones\u003c\/strong\u003e can lag work done\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eHow does a steam locomotive restoration service owner increase income?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003eFor a \u003cstrong\u003eSteam Locomotive Restoration Service\u003c\/strong\u003e, the fastest way to raise owner income is to stop treating every hour as unpaid craft labor and start pricing the work, managing crews, and controlling backlog. Moving rates from \u003cstrong\u003e$125\u003c\/strong\u003e to \u003cstrong\u003e$200\u003c\/strong\u003e per service is a \u003cstrong\u003e60%\u003c\/strong\u003e lift, and cutting customer acquisition cost from \u003cstrong\u003e$4,500\u003c\/strong\u003e to \u003cstrong\u003e$3,500\u003c\/strong\u003e helps more projects land without burning cash.\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\u003ePrice the craft\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eRaise service rates from \u003cstrong\u003e$125\u003c\/strong\u003e to \u003cstrong\u003e$200\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eMove owner time into billable management\u003c\/li\u003e\n\u003cli\u003eUse disciplined backlog to protect quality\u003c\/li\u003e\n\u003cli\u003ePush for higher billable crew utilization\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\u003eBuild capacity carefully\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eHire crews and qualified subcontractors\u003c\/li\u003e\n\u003cli\u003eKeep working capital for long jobs\u003c\/li\u003e\n\u003cli\u003eUse safety systems and quality checks\u003c\/li\u003e\n\u003cli\u003eWatch certifications, cranes, machines, insurance\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\n\u003cp\u003eThe hard limit is capacity, not demand: skilled labor, crane and machine time, certifications, insurance, and cash reserves can slow growth fast. The material ratio note is messy at \u003cstrong\u003e30%\u003c\/strong\u003e variable load with a \u003cstrong\u003e244%\u003c\/strong\u003e caveat, so the owner should verify job costing before scaling.\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\n\n\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eWant the six income drivers?\n\u003c\/span\u003e\u003c\/h2\u003e\n\u003csection class=\"fml-main-income-drivers\" aria-label=\"Six income drivers for a steam locomotive restoration 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\u003eProject Backlog\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$1.3M-$5.7M\u003c\/strong\u003e\u003cp\u003eSigned restoration and inspection work sets the revenue base, and the model grows from $1.32M in year 1 to $5.72M in year 5.\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\u003eBillable Hours\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e160-180h\u003c\/strong\u003e\u003cp\u003eEach active customer averages 160 to 180 billable hours a month, so better use spreads the fixed shop cost across more output.\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\u003eHourly Rates\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$125-$200\u003c\/strong\u003e\u003cp\u003eRates from $125 to $200 an hour are the cleanest way to lift gross profit without adding more headcount.\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 Mix\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$760K-$1.3M\u003c\/strong\u003e\u003cp\u003eThe wage base rises from about $760K to $1.3M, so the mix of senior and apprentice labor drives EBITDA fast.\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\u003eMaterial Control\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e24%-30%\u003c\/strong\u003e\u003cp\u003eSteel, foundry, consumables, and freight run about 24.4% to 30.0% of sales, and every point saved drops straight to owner take-home.\u003c\/p\u003e\u003c\/article\u003e\u003carticle class=\"main-driver-card\"\u003e\u003cdiv class=\"main-driver-heading\"\u003e\n\u003cspan class=\"driver-rank\"\u003e6\u003c\/span\u003e\u003ch4\u003eFixed Overhead\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$26.7K\/mo\u003c\/strong\u003e\u003cp\u003eFixed overhead runs $26.7K a month, and the month 9 cash trough at -$316K means reserves decide if the shop reaches payback.\u003c\/p\u003e\u003c\/article\u003e\n\u003c\/div\u003e\u003c\/article\u003e\u003c\/section\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eSteam Locomotive Restoration Service Core Six Income Drivers\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\u003cbr\u003e\n\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003eProject Backlog And Contract Value\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n\u003cdiv class=\"left-row1\"\u003e\n\u003ch3\u003eBacklog Quality and Contract Value\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong\u003eBacklog quality\u003c\/strong\u003e sets how much revenue is already sold before owner pay is even possible. For this steam locomotive restoration shop, booked work has to reflect \u003cstrong\u003eservice mix\u003c\/strong\u003e, \u003cstrong\u003eproject hours\u003c\/strong\u003e, \u003cstrong\u003ehourly rates\u003c\/strong\u003e, and \u003cstrong\u003emilestone billing\u003c\/strong\u003e. A full restoration can run \u003cstrong\u003e480 to 640 hours\u003c\/strong\u003e; an inspection only \u003cstrong\u003e80 to 90 hours\u003c\/strong\u003e; fabrication \u003cstrong\u003e40 to 60 hours\u003c\/strong\u003e. That mix decides whether the next dollar covers payroll or just keeps the bay busy.\u003c\/p\u003e\n\u003cp\u003eHere’s the quick math: \u003cstrong\u003eweak deposits\u003c\/strong\u003e can still starve payroll cash even when contracts look full. Source examples range from \u003cstrong\u003e10 customers in Year 1\u003c\/strong\u003e to \u003cstrong\u003e776 cumulative customers by Year 5\u003c\/strong\u003e, with revenue examples from \u003cstrong\u003e$220k to $439M\u003c\/strong\u003e. The real test is whether each signed job funds labor, parts, and overhead before the owner expects a distribution.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"right-row1\"\u003e\n\u003cdiv class=\"tips-box\"\u003e\n\u003ch3\u003eMeasure Scope, Cash, and Mix\u003c\/h3\u003e\n\u003cp\u003eTrack \u003cstrong\u003eactive customers ÷ customer acquisition cost\u003c\/strong\u003e so you know which marketing dollars produce real backlog. Then separate contracts by job type and expected hours, and price to the actual scope, not the hope. If inspections and fabrication fill the schedule, the cash profile is very different from one full rebuild, so forecast revenue and labor draw by work type.\u003c\/p\u003e\n\u003cp\u003eUse milestone billing to reduce the gap between work done and cash collected, and tighten scope docs to cut rework. Better scoped contracts lower hidden labor and make owner distributions safer. One clean rule: \u003cstrong\u003eno clear scope, no safe draw\u003c\/strong\u003e. If the deposit and milestones won’t cover the next payroll cycle, the backlog is not strong enough yet.\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;\"\u003eBillable Labor Rate And 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\u003eBillable Rate and Shop Utilization\u003c\/h3\u003e\n    \u003cp\u003e\u003cstrong\u003eBillable labor rate\u003c\/strong\u003e and \u003cstrong\u003eshop utilization\u003c\/strong\u003e decide whether payroll becomes profit or just busy work. For steam restoration, the rate mix here is \u003cstrong\u003e$125 to $145 per hour\u003c\/strong\u003e for full restoration, \u003cstrong\u003e$150 to $170\u003c\/strong\u003e for inspections, and \u003cstrong\u003e$175 to $200\u003c\/strong\u003e for fabrication. If average billable hours per active customer rises from \u003cstrong\u003e160 to 180\u003c\/strong\u003e, that is a \u003cstrong\u003e12.5%\u003c\/strong\u003e lift in sold labor before adding headcount.\u003c\/p\u003e\n    \u003cp\u003eThe owner’s income improves when crews stay billable and rework stays low. Separate \u003cstrong\u003ebilled hours\u003c\/strong\u003e from payroll, because payroll is projected to run from \u003cstrong\u003e$760k in Year 1\u003c\/strong\u003e to \u003cstrong\u003e$13M in Year 5\u003c\/strong\u003e. Unpaid owner labor can hide weak pricing, and idle time or rework can turn a full shop into thin cash flow fast.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"left-row2\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003eTrack Rate, Hours, and Idle Time\u003c\/h3\u003e\n      \u003cp\u003eMeasure \u003cstrong\u003ebillable hours\u003c\/strong\u003e, \u003cstrong\u003eutilization\u003c\/strong\u003e, \u003cstrong\u003erework\u003c\/strong\u003e, and \u003cstrong\u003eidle time\u003c\/strong\u003e by job type. A clean weekly view should show rate by service line, hours sold per crew, and payroll dollars per billed hour. That tells you if the shop is pricing right or just staying busy.\u003c\/p\u003e\n      \u003cul class=\"lst_crct_blog\"\u003e\n        \u003cli\u003eTrack billed hours by job type\u003c\/li\u003e\n        \u003cli\u003eCompare rate to payroll cost\u003c\/li\u003e\n        \u003cli\u003eFlag rework and idle time\u003c\/li\u003e\n        \u003cli\u003ePrice owner labor, not free labor\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cp\u003eHere’s the quick math: if billed hours rise while payroll stays flat, margin expands. If rates are below the work mix or crews spend too much time on nonbillable fixes, the business may look active but still underpay the owner.\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;\"\u003eSkilled Crew Mix And Subcontracting\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n\u003cdiv class=\"left-row3\"\u003e\n\u003ch3\u003eCrew Mix and Subcontracting\u003c\/h3\u003e\n\u003cp\u003eThe crew mix sets quality and the break-even point. A shop staffed with a \u003cstrong\u003echief mechanical engineer ($145k)\u003c\/strong\u003e, \u003cstrong\u003ecertified master boilermakers ($95k)\u003c\/strong\u003e, \u003cstrong\u003esenior machinists ($85k)\u003c\/strong\u003e, \u003cstrong\u003epreservation specialists ($75k)\u003c\/strong\u003e, \u003cstrong\u003eapprentices ($45k)\u003c\/strong\u003e, and an \u003cstrong\u003eoperations manager ($90k)\u003c\/strong\u003e protects safety, but it also raises fixed payroll before owner pay starts.\u003c\/p\u003e\n\u003cp\u003eSubcontracting can help on \u003cstrong\u003efoundry castings\u003c\/strong\u003e, where costs can fall from \u003cstrong\u003e8% to 6% of revenue\u003c\/strong\u003e. On \u003cstrong\u003e$1M\u003c\/strong\u003e of revenue, that is a \u003cstrong\u003e$20k\u003c\/strong\u003e swing. The tradeoff is real: outside work can cut technical risk on boiler work, machining, and safety checks, but it can also lower gross profit and push cash out earlier.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"right-row3\"\u003e\n\u003cdiv class=\"tips-box\"\u003e\n\u003ch3\u003eTrack Labor Mix, Not Just Hours\u003c\/h3\u003e\n\u003cp\u003eMeasure each project by role mix, not just billable hours. If senior labor is doing apprentice work, margin slips fast. Keep a simple split of in-house versus subcontracted work for boiler work, machining, and castings, then compare that to defect risk, rework, and delay days. One clean rule: only subcontract when it protects schedule or safety more than it hurts gross profit.\u003c\/p\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eTrack payroll by role each month\u003c\/li\u003e\n\u003cli\u003eCompare castings at 6% versus 8%\u003c\/li\u003e\n\u003cli\u003eWatch cash timing on subcontract bills\u003c\/li\u003e\n\u003cli\u003ePrice senior labor to cover overhead\u003c\/li\u003e\n\u003cli\u003eUse apprentices on supervised repeat work\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"timeline\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"step-circle step3\"\u003e3\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003eMaterials, Fabrication, And Parts Sourcing\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n  \u003cdiv class=\"right-row4\"\u003e\n    \u003ch3\u003eParts Cost Control\u003c\/h3\u003e\n    \u003cp\u003eIf you price a restoration off labor alone, parts can turn revenue into a thin job or a loss. This driver covers \u003cstrong\u003esteel\u003c\/strong\u003e, raw materials, foundry casting, forgings, machining time, consumables, and freight, plus the markup policy you use when lead times stretch.\u003c\/p\u003e\n    \u003cp\u003eDisclosed benchmarks show specialized steel and raw materials at \u003cstrong\u003e13% to 15%\u003c\/strong\u003e of revenue and foundry casting at \u003cstrong\u003e6% to 8%\u003c\/strong\u003e. When freight, rush work, or supplier slips are missed, cash gets tied up in work-in-process and owner pay waits behind the job.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"left-row4\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003ePrice Parts by Risk, Not Hope\u003c\/h3\u003e\n      \u003cp\u003eBuild estimates from supplier quotes, not memory. Separate material, fabrication, freight, and rush charges, then update the job at each milestone so underpriced parts do not eat gross margin.\u003c\/p\u003e\n      \u003cul class=\"lst_crct_blog\"\u003e\n        \u003cli\u003eTrack quote age and lead time\u003c\/li\u003e\n        \u003cli\u003eTag castings, forgings, machining\u003c\/li\u003e\n        \u003cli\u003eAdd freight before signing\u003c\/li\u003e\n        \u003cli\u003eReview markup on every change order\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cp\u003eUse the disclosed cost swings as a warning sign: consumables and fuel have shown business examples from \u003cstrong\u003e4%\u003c\/strong\u003e to \u003cstrong\u003e32%\u003c\/strong\u003e of revenue, and freight from \u003cstrong\u003e3%\u003c\/strong\u003e to \u003cstrong\u003e22%\u003c\/strong\u003e. Tight estimating protects profit without forcing unsafe shortcuts.\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;\"\u003eFixed Overhead And Equipment Capacity\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n\u003cdiv class=\"left-row5\"\u003e\n\u003ch3\u003eFixed Overhead And Capacity\u003c\/h3\u003e\n\u003cp\u003eThis shop’s fixed overhead is the amount that must be covered before the owner can take profit. With \u003cstrong\u003e$125k\u003c\/strong\u003e monthly lease, \u003cstrong\u003e$55k\u003c\/strong\u003e liability insurance, \u003cstrong\u003e$22k\u003c\/strong\u003e machinery maintenance, \u003cstrong\u003e$38k\u003c\/strong\u003e utilities, \u003cstrong\u003e$12k\u003c\/strong\u003e certification f\nees, and \u003cstrong\u003e$15k\u003c\/strong\u003e admin, total fixed cost is \u003cstrong\u003e$267k per month\u003c\/strong\u003e or \u003cstrong\u003e$3,204k a year\u003c\/strong\u003e.\u003c\/p\u003e\n\u003cp\u003eThat cost does not shrink when projects slip, so owner income depends on keeping crane, machine, and shop capacity busy. More active projects spread the fixed base across more billable work, which lifts margin and makes owner distributions safer. If work pauses, the break-even line stays put. Fixed overhead waits for no one.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"right-row5\"\u003e\n\u003cdiv class=\"tips-box\"\u003e\n\u003ch3\u003eTrack Coverage Before Pay\u003c\/h3\u003e\n\u003cp\u003eMeasure fixed cost coverage each month: \u003cstrong\u003ebillable project hours\u003c\/strong\u003e, \u003cstrong\u003eactive jobs\u003c\/strong\u003e, and \u003cstrong\u003ecash collected\u003c\/strong\u003e versus the \u003cstrong\u003e$267k\u003c\/strong\u003e overhead base. For this kind of heavy rail shop, the key inputs are lease, insurance, maintenance, utilities, certification fees, admin, and actual machine uptime. If capacity is idle, the owner’s take-home drops fast.\u003c\/p\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eTrack overhead coverage monthly.\u003c\/li\u003e\n\u003cli\u003eWatch crane and machine uptime.\u003c\/li\u003e\n\u003cli\u003eCompare billed hours to fixed cost.\u003c\/li\u003e\n\u003cli\u003ePrice for idle-capacity risk.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eUse workload forecasts to spot thin months early. If project volume falls, overhead still hits, so delay distributions until fixed costs are covered by collected work, not just booked work. More volume spreads the same \u003cstrong\u003e$267k\u003c\/strong\u003e across more revenue and protects cash flow.\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;\"\u003eReserves, Working Capital, And Owner Role\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n  \u003cdiv class=\"right-row6\"\u003e\n    \u003ch3\u003eReserves and Owner Pay\u003c\/h3\u003e\n    \u003cp\u003eWhen \u003cstrong\u003eEBITDA\u003c\/strong\u003e is negative in Years 1 to 3, the owner cannot safely take distributions. Cash has to cover \u003cstrong\u003epayroll runway\u003c\/strong\u003e, parts deposits, insurance, debt service, repairs, and the next mobilization before any draw.\u003c\/p\u003e\n    \u003cp\u003eProfit can look real on paper but still sit inside \u003cstrong\u003ework-in-process (WIP)\u003c\/strong\u003e, which means the job is underway but not yet billed. The source model shows about \u003cstrong\u003e$405k\u003c\/strong\u003e EBITDA in Year 4 and about \u003cstrong\u003e$163M\u003c\/strong\u003e in Year 5 before taxes, debt, reserves, and reinvestment, so owner pay still has to follow cash, not just the income statement.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"left-row6\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003eTrack Cash Before Draws\u003c\/h3\u003e\n      \u003cp\u003eUse a weekly cash forecast that separates salary, reserves, and distributions. One rule works: if cash on hand cannot cover the next stretch of payroll and committed parts deposits, pause owner draws.\u003c\/p\u003e\n      \u003cp\u003eIf the owner fills the chief mechanical engineer seat, the \u003cstrong\u003e$145k\u003c\/strong\u003e salary can be valid compensation. After that, keep a reserve for long restorations, because one late milestone or repair bill can wipe out paper profit fast.\u003c\/p\u003e\n      \u003cul class=\"lst_crct_blog\"\u003e\n        \u003cli\u003eTrack payroll runway in weeks.\u003c\/li\u003e\n        \u003cli\u003eMatch reserves to open WIP.\u003c\/li\u003e\n        \u003cli\u003eFund insurance before draws.\u003c\/li\u003e\n        \u003cli\u003eHold repair cash for breakdowns.\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 step6\"\u003e6\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eCompare low, base, and high owner-income scenarios\n\u003c\/span\u003e\u003c\/h2\u003e\n\u003csection class=\"fml-scenario-table\" aria-label=\"Steam Locomotive Restoration Service Owner Income Scenarios\" data-site-name=\"Financial Models Lab\" data-site-url=\"https:\/\/financialmodelslab.com\" data-source-title=\"Steam Locomotive Restoration Service Owner Income Scenarios\" data-note-label=\"Planning note\" data-note-text=\"Scenario ranges are researched planning assumptions, not guaranteed earnings, salary promises, tax advice, or distributions.\"\u003e\u003cdiv class=\"fml-scenario-table-card\"\u003e\n\u003cheader class=\"fml-scenario-table-header\"\u003e\u003cdiv\u003e\n\u003cp class=\"fml-scenario-table-eyebrow\"\u003eOwner income scenarios\u003c\/p\u003e\n\u003cp class=\"fml-scenario-table-description\"\u003eOwner income swings with backlog, payroll, and materials. This capital-heavy, skilled-labor shop can run negative in the ramp, then improve fast as utilization rises.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-scenario-table-actions\"\u003e\u003cbutton class=\"fml-scenario-table-export\" type=\"button\" data-scenario-export\u003eEXPORT XLSX\u003c\/button\u003e\u003c\/div\u003e\u003c\/header\u003e\u003cdiv class=\"fml-scenario-table-wrap\"\u003e\u003ctable class=\"fml-scenario-table-grid\"\u003e\n\u003ccaption\u003eLow, base, and high cases for owner income across the ramp and mature years.\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\"\u003eCore 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 early-ramp case, where revenue is thin and the shop has not filled its backlog.\"\u003eThis is the early-ramp case, where revenue is thin and the shop has not filled its backlog.\u003c\/td\u003e\n\u003ctd data-export-value=\"This is the planned scale case, where the shop runs with a fuller backlog and steadier billable hours.\"\u003eThis is the planned scale case, where the shop runs with a fuller backlog and steadier billable hours.\u003c\/td\u003e\n\u003ctd data-export-value=\"This is the stronger earnings case, where mature-year demand keeps the shop near full utilization.\"\u003eThis is the stronger earnings case, where mature-year demand keeps the shop near full utilization.\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 $1.32M, variable costs run near 30%, payroll is about $760k, fixed overhead is about $320k, marketing is $45k, and EBITDA lands near -$319k.\"\u003eYear 1 revenue is about $1.32M, variable costs run near 30%, payroll is about $760k, fixed overhead is about $320k, marketing is $45k, and EBITDA lands near -$319k.\u003c\/td\u003e\n\u003ctd data-export-value=\"Year 4 revenue reaches $4.686M, EBITDA is about $1.628M, variable cost load is 25.8%, payroll is about $1.16M, and marketing is $65k.\"\u003eYear 4 revenue reaches $4.686M, EBITDA is about $1.628M, variable cost load is 25.8%, payroll is about $1.16M, and marketing is $65k.\u003c\/td\u003e\n\u003ctd data-export-value=\"Year 5 revenue reaches $5.718M, EBITDA is about $2.242M before taxes and reinvestment, variable cost load is 24.4%, payroll is about $1.30M, and marketing is $70k.\"\u003eYear 5 revenue reaches $5.718M, EBITDA is about $2.242M before taxes and reinvestment, variable cost load is 24.4%, payroll is about $1.30M, and marketing is $70k.\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=\"Low utilization; fixed shop overhead; heavy payroll; marketing spend; backlog delays\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003eLow utilization\u003c\/li\u003e\n\u003cli\u003efixed shop overhead\u003c\/li\u003e\n\u003cli\u003eheavy payroll\u003c\/li\u003e\n\u003cli\u003emarketing spend\u003c\/li\u003e\n\u003cli\u003ebacklog delays\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/td\u003e\n\u003ctd data-export-value=\"Backlog fill; billable hours per active customer; payroll mix; material costs; freight and shipping\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003eBacklog fill\u003c\/li\u003e\n\u003cli\u003ebillable hours per active customer\u003c\/li\u003e\n\u003cli\u003epayroll mix\u003c\/li\u003e\n\u003cli\u003ematerial costs\u003c\/li\u003e\n\u003cli\u003efreight and shipping\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/td\u003e\n\u003ctd data-export-value=\"Full backlog; higher billable hours; more skilled labor; lower variable load; steady pricing\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003eFull backlog\u003c\/li\u003e\n\u003cli\u003ehigher billable hours\u003c\/li\u003e\n\u003cli\u003emore skilled labor\u003c\/li\u003e\n\u003cli\u003elower variable load\u003c\/li\u003e\n\u003cli\u003esteady pricing\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=\"-$319,000\"\u003e\n\u003cstrong class=\"fml-scenario-range\"\u003e-$319,000\u003c\/strong\u003e\u003cspan class=\"fml-scenario-badge is-soft\"\u003eNegative cash flow\u003c\/span\u003e\n\u003c\/td\u003e\n\u003ctd data-export-value=\"$1.6M - $2.2M\"\u003e\n\u003cstrong class=\"fml-scenario-range\"\u003e$1.6M - $2.2M\u003c\/strong\u003e\u003cspan class=\"fml-scenario-badge is-soft\"\u003eScaled earnings\u003c\/span\u003e\n\u003c\/td\u003e\n\u003ctd data-export-value=\"$2.2M+\"\u003e\n\u003cstrong class=\"fml-scenario-range\"\u003e$2.2M+\u003c\/strong\u003e\u003cspan class=\"fml-scenario-badge is-warning\"\u003eBest-case 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 test launch cash needs and whether capital can fund the owner early on.\"\u003eUse this to test launch cash needs and whether capital can fund the owner early on.\u003c\/td\u003e\n\u003ctd data-export-value=\"Use this for a steady-state budget once the shop has a working backlog and team capacity.\"\u003eUse this for a steady-state budget once the shop has a working backlog and team capacity.\u003c\/td\u003e\n\u003ctd data-export-value=\"Use this to test what happens if backlog stays full and hiring keeps pace with demand.\"\u003eUse this to test what happens if backlog stays full and hiring keeps pace with demand.\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":49304443027699,"sku":"steam-locomotive-restoration-owner-makes","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/steam-locomotive-restoration-owner-makes.webp?v=1782693078","url":"https:\/\/financialmodelslab.com\/products\/steam-locomotive-restoration-owner-makes","provider":"Financial Models Lab","version":"1.0","type":"link"}