{"product_id":"contact-dermatitis-testing-owner-makes","title":"Contact Dermatitis Patch Testing Owner Income: $398K Year 1","description":"\u003cbr\u003e\u003cdiv class=\"card_smpl\"\u003e\n\u003cp\u003eA contact dermatitis patch testing owner can make about \u003cstrong\u003e$398K in first-year pre-tax operating profit\u003c\/strong\u003e under the researched assumptions, before reserves, taxes, debt service, and any final owner draw policy That case assumes about \u003cstrong\u003e242 completed tests per month\u003c\/strong\u003e, or roughly \u003cstrong\u003e56 per week\u003c\/strong\u003e, with average collected revenue of about \u003cstrong\u003e$511 per completed test\u003c\/strong\u003e Direct testing, billing, and referral costs equal \u003cstrong\u003e225%\u003c\/strong\u003e of revenue, leaving a \u003cstrong\u003e775% contribution margin\u003c\/strong\u003e If the owner also fills the Medical Director role, the model separately includes a \u003cstrong\u003e$280K annual wage\u003c\/strong\u003e, but that is working compensation, not passive profit\u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003csection class=\"fml-owner-metric-cards\" aria-label=\"Owner Income Snapshot\"\u003e\u003cdiv class=\"metric-grid\"\u003e\n\u003carticle class=\"metric-card is-green\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Year 1 model. Shows pre-tax owner take-home after listed wages; range reflects clinic profit vs. profit plus Medical Director pay.\"\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 model. Shows pre-tax owner take-home after listed wages; range reflects clinic profit vs. profit plus Medical Director pay.\"\u003e$398K-$678K\u003c\/strong\u003e\u003c\/article\u003e\u003carticle class=\"metric-card\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Year 1 EBITDA margin from $583K EBITDA on $1.484M revenue. Excludes taxes, interest, depreciation, and reserves.\"\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 EBITDA margin from $583K EBITDA on $1.484M revenue. Excludes taxes, interest, depreciation, and reserves.\"\u003e39%\u003c\/strong\u003e\u003c\/article\u003e\u003carticle class=\"metric-card\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Year 1 revenue of $1.484M supports the modeled owner-pay case. Use it as a planning threshold, not a guarantee.\"\u003e\u003cimg class=\"metric-icon\" src=\"\/cdn\/shop\/files\/fml-owner-income-kpi-revenue-target.svg\" alt=\"Revenue for target pay icon\" loading=\"lazy\"\u003e\u003c\/span\u003e\u003cspan\u003eRevenue for target pay\u003c\/span\u003e\u003cstrong class=\"metric-value\" tabindex=\"0\" data-tooltip=\"Year 1 revenue of $1.484M supports the modeled owner-pay case. Use it as a planning threshold, not a guarantee.\"\u003e$1.48M\u003c\/strong\u003e\u003c\/article\u003e\u003carticle class=\"metric-card\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Heavy payroll, buildout, and an $808K cash low in Month 2 make this a hard launch. Planning estimate only.\"\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 payroll, buildout, and an $808K cash low in Month 2 make this a hard launch. Planning estimate only.\"\u003eHard\u003c\/strong\u003e\u003c\/article\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eWant to test your own 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=\"Research-based planning estimate only. Actual owner income depends on collections, staffing, payer mix, taxes, debt, and reinvestment. 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, fixed overhead, marketing, reserves, and target owner 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 collections before expenses. Use a normal operating month, not a one-time spike.\"\u003ei\u003cspan role=\"tooltip\"\u003eAverage monthly collections before expenses. Use a normal operating month, not a one-time spike.\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 collections before expenses. Use a normal operating month, not a one-time spike.\" data-low=\"100000\" data-base=\"123667\" data-high=\"180000\" name=\"monthlyRevenue\" type=\"text\" inputmode=\"numeric\" value=\"123,667\"\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 test and service costs.\"\u003ei\u003cspan role=\"tooltip\"\u003ePercent of revenue left after direct test and 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 test and service costs.\" name=\"grossMargin\" type=\"range\" min=\"0\" max=\"100\" step=\"1\" data-low=\"75\" data-base=\"78\" data-high=\"80\" value=\"78\"\u003e\u003coutput\u003e78%\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=\"35000\" data-base=\"40917\" data-high=\"52000\" name=\"laborCost\" type=\"text\" inputmode=\"numeric\" value=\"40,917\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eFixed overhead\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Monthly rent, insurance, software, utilities, admin, and other recurring overhead before marketing.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly rent, insurance, software, utilities, admin, and other recurring overhead before marketing.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-money\"\u003e\n\u003cspan\u003e$\u003c\/span\u003e\u003cinput data-owner-field=\"fixedOverhead\" data-owner-kind=\"money\" data-owner-label=\"Fixed overhead\" data-owner-note=\"Monthly rent, insurance, software, utilities, admin, and other recurring overhead before marketing.\" data-low=\"18500\" data-base=\"19600\" data-high=\"21000\" name=\"fixedOverhead\" type=\"text\" inputmode=\"numeric\" value=\"19,600\"\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 patient outreach and referral spend.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly patient outreach and referral 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 patient outreach and referral spend.\" data-low=\"1800\" data-base=\"2200\" data-high=\"3500\" name=\"marketing\" type=\"text\" inputmode=\"numeric\" value=\"2,200\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eDebt service\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Monthly loan or financing payments. Use 0 if none are entered.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly loan or financing payments. Use 0 if none are entered.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-money\"\u003e\n\u003cspan\u003e$\u003c\/span\u003e\u003cinput data-owner-field=\"debtService\" data-owner-kind=\"money\" data-owner-label=\"Debt service\" data-owner-note=\"Monthly loan or financing payments. Use 0 if none are entered.\" data-low=\"0\" data-base=\"0\" data-high=\"0\" name=\"debtService\" type=\"text\" inputmode=\"numeric\" value=\"\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eTax reserve\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Percent of profit set aside before owner take-home.\"\u003ei\u003cspan role=\"tooltip\"\u003ePercent of profit set aside 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 before owner take-home.\" name=\"taxReserve\" type=\"range\" min=\"0\" max=\"45\" step=\"1\" data-low=\"18\" data-base=\"20\" data-high=\"22\" value=\"20\"\u003e\u003coutput\u003e20%\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 growth, repairs, and working capital.\"\u003ei\u003cspan role=\"tooltip\"\u003ePercent of profit kept for growth, repairs, 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 growth, repairs, and working capital.\" name=\"reinvestmentReserve\" type=\"range\" min=\"0\" max=\"35\" step=\"1\" data-low=\"8\" data-base=\"10\" data-high=\"12\" value=\"10\"\u003e\u003coutput\u003e10%\u003c\/output\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eTarget owner pay\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Target monthly owner income used to calculate the pay gap.\"\u003ei\u003cspan role=\"tooltip\"\u003eTarget monthly owner income used to calculate the 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=\"Target monthly owner income used to calculate the pay gap.\" data-low=\"12000\" data-base=\"18000\" data-high=\"30000\" name=\"targetOwnerPay\" type=\"text\" inputmode=\"numeric\" value=\"18,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,620\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\"\u003e19%\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$113K\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$5,620\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,443\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$33,743\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$10,123\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$5,620\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$124K\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: 78%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$96,460\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: 51%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$62,717\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: 8%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$10,123\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: 19%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$23,620\u003c\/b\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbutton class=\"fml-owner-export\" type=\"button\" data-owner-export\u003eEXPORT XLSX\u003c\/button\u003e\u003c\/aside\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-note\"\u003e\n\u003cspan class=\"fml-owner-note-icon\" aria-hidden=\"true\"\u003e!\u003c\/span\u003e\u003cp\u003e\u003cstrong\u003ePlanning note:\u003c\/strong\u003e Research-based planning estimate only. Actual owner income depends on collections, staffing, payer mix, taxes, debt, and reinvestment. 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;\"\u003eWant to see the owner income forecast?\u003c\/span\u003e\u003c\/h3\u003e\n\n\u003cp\u003eOpen the \u003ca href=\"\/products\/contact-dermatitis-testing-financial-model\"\u003eContact Dermatitis Patch Testing Financial Model Template\u003c\/a\u003e for tabs on provider counts, capacity, pricing, costs, payroll, and owner income; it also shows charts for monthly revenue, contribution margin, EBITDA-like profit, and annual scenarios. \u003cstrong\u003eYear 1 revenue is $148M\u003c\/strong\u003e, with \u003cstrong\u003e775% contribution margin\u003c\/strong\u003e, \u003cstrong\u003e$21.8k monthly overhead\u003c\/strong\u003e, \u003cstrong\u003e$491k annual wages\u003c\/strong\u003e, and \u003cstrong\u003e$398k operating profit\u003c\/strong\u003e.\u003c\/p\u003e\n\n\u003ch4\u003eIncome forecast highlights\u003c\/h4\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eOwner income:\u003c\/strong\u003e $398k profit\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRevenue and margin:\u003c\/strong\u003e $148M, 775%\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eScenarios:\u003c\/strong\u003e annual take-home\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\/contact-dermatitis-testing-financial-model-dashboard-financialmodelslab_7f496d73-f62b-42b3-8a73-f50ecd967bb4.webp\"\u003e\n\u003cimg class=\"preview-img\" width=\"100%\" height=\"auto\" src=\"\/cdn\/shop\/files\/contact-dermatitis-testing-financial-model-dashboard-financialmodelslab_7f496d73-f62b-42b3-8a73-f50ecd967bb4.webp?width=500\" alt=\"Contact Dermatitis Patch Testing Financial Model dashboard summarizing key KPIs, runway and cash position with dynamic charts and investor-ready performance metrics to eliminate cash-flow blind spots.\"\u003e\n\u003cdiv class=\"preview-overlay\"\u003e\n\u003cbutton class=\"preview-btn\" type=\"button\" style=\"align-items: center; vertical-align: middle; display: inline-flex; justify-content: center; gap: 6px; line-height: 1;\"\u003e\nPREVIEW \u003csvg fill=\"#fff\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\" role=\"presentation\" viewbox=\"0 0 448 512\" width=\"14\"\u003e\u003cpath d=\"M416 176V86.63L246.6 256L416 425.4V336c0-8.844 7.156-16 16-16s16 7.156 16 16v128c0 8.844-7.156 16-16 16h-128c-8.844 0-16-7.156-16-16s7.156-16 16-16h89.38L224 278.6L54.63 448H144C152.8 448 160 455.2 160 464S152.8 480 144 480h-128C7.156 480 0 472.8 0 464v-128C0 327.2 7.156 320 16 320S32 327.2 32 336v89.38L201.4 256L32 86.63V176C32 184.8 24.84 192 16 192S0 184.8 0 176v-128C0 39.16 7.156 32 16 32h128C152.8 32 160 39.16 160 48S152.8 64 144 64H54.63L224 233.4L393.4 64H304C295.2 64 288 56.84 288 48S295.2 32 304 32h128C440.8 32 448 39.16 448 48v128C448 184.8 440.8 192 432 192S416 184.8 416 176z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eWhat affects patch testing profit margin?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003eFor \u003cstrong\u003eContact Dermatitis Patch Testing\u003c\/strong\u003e, margin is driven first by how steady test volume is, because the direct test economics improve when kits, panels, and referrals keep moving. If you also need the cost base, \u003ca href=\"\/blogs\/operating-costs\/contact-dermatitis-testing\"\u003eWhat Is The Monthly Operating Cost For Your Business? Please Provide The Business Name.\u003c\/a\u003e In the model, Year 1 allergen kits and panels run at \u003cstrong\u003e120%\u003c\/strong\u003e of revenue, disposal and consumables at \u003cstrong\u003e30%\u003c\/strong\u003e, billing at \u003cstrong\u003e50%\u003c\/strong\u003e, and referral outreach at \u003cstrong\u003e25%\u003c\/strong\u003e; direct and variable costs then fall to \u003cstrong\u003e181%\u003c\/strong\u003e by Year 5, while margin gets hit when broader panels, staff time, denied claims, or repeat visits use more labor and supplies.\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\u003eCost drivers\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003e120%\u003c\/strong\u003e Year 1 kits and panels\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e30%\u003c\/strong\u003e disposal and consumables\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e50%\u003c\/strong\u003e billing cost pressure\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e25%\u003c\/strong\u003e referral outreach spend\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\u003eMargin leaks\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eBroader panels add supply cost\u003c\/li\u003e\n\u003cli\u003eStaff time raises labor load\u003c\/li\u003e\n\u003cli\u003eDenied claims slow cash\u003c\/li\u003e\n\u003cli\u003eRepeat visits use more supplies\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 does a patch testing clinic make per patient?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003eA \u003cstrong\u003eContact Dermatitis Patch Testing\u003c\/strong\u003e clinic makes about \u003cstrong\u003e$511\u003c\/strong\u003e in collected revenue per completed test in Year 1, based on \u003cstrong\u003e$123,700\u003c\/strong\u003e monthly revenue across \u003cstrong\u003e242\u003c\/strong\u003e completed tests. That is collected revenue, not gross billed charges, and the real payment can move with payer, geography, coding, documentation, and contract terms. Provider-level Year 1 pricing runs from \u003cstrong\u003e$350\u003c\/strong\u003e at Allergy Technician capacity to \u003cstrong\u003e$850\u003c\/strong\u003e at Senior Dermatologist capacity, and follow-up revenue should be modeled separately because the source assumptions do not isolate it.\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\u003eBase case math\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003e$123,700\u003c\/strong\u003e monthly revenue\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e242\u003c\/strong\u003e completed tests\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e$511\u003c\/strong\u003e per completed test\u003c\/li\u003e\n\u003cli\u003eFollow-up revenue is separate\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\u003ePrice range by provider\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003e$350\u003c\/strong\u003e Allergy Technician capacity\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e$850\u003c\/strong\u003e Senior Dermatologist capacity\u003c\/li\u003e\n\u003cli\u003eReimbursement varies by payer\u003c\/li\u003e\n\u003cli\u003eContract terms change cash collected\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eHow many patch tests per week does a contact dermatitis testing business need?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003eContact Dermatitis Patch Testing needs about \u003cstrong\u003e37 completed patch tests per week\u003c\/strong\u003e to break even in the Year 1 case; the base model runs at \u003cstrong\u003e56 completed tests per week\u003c\/strong\u003e, leaving only a \u003cstrong\u003e19-test weekly cushion\u003c\/strong\u003e. For margin tactics tied to this service line, see \u003ca href=\"\/blogs\/profitability\/contact-dermatitis-testing\"\u003eHow Increase Profits From Contact Dermatitis Patch Testing?\u003c\/a\u003e.\u003c\/p\u003e\n\u003cdiv class=\"container_2_clmn_row\"\u003e\n\u003cdiv class=\"card_smpl blue_card\"\u003e\n\u003cdiv class=\"card_smpl_header\"\u003e\n\u003cimg src=\"\/cdn\/shop\/files\/fml_20_fml-Orange-blog-colons-icon.svg\" alt=\"Icon\" class=\"icon_how_to_use\"\u003e\u003ch3\u003eBreak-even math\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003e$62,717\u003c\/strong\u003e monthly overhead and wages\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e$511\u003c\/strong\u003e average revenue per test\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e77.5%\u003c\/strong\u003e contribution margin\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e158 tests\/month\u003c\/strong\u003e, about \u003cstrong\u003e37\/week\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-Orange-blog-intro-icon.svg\" alt=\"Icon\" class=\"icon_how_to_use\"\u003e\u003ch3\u003eVolume cushion\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eBase model: \u003cstrong\u003e56 tests\/week\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eCushion: \u003cstrong\u003e19 tests\/week\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eRisk: no-shows and referral gaps\u003c\/li\u003e\n\u003cli\u003eControl schedule and referral flow\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eWant the six income drivers?\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\u003eTest Volume\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e56-295\/wk\u003c\/strong\u003e\u003cp\u003eMore completed tests spread fixed clinic costs over more revenue, so this is the fastest path to higher 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\"\u003e2\u003c\/span\u003e\u003ch4\u003eRevenue\/Test\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$511-$562\u003c\/strong\u003e\u003cp\u003eA higher collected price lifts revenue on every test, and that gain drops straight into gross margin if costs stay flat.\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\u003eCollections Mix\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003eMix\u003c\/strong\u003e\u003cp\u003eThe model uses collected pricing with no payer split, so real cash can move fast if collection rates slip or improve.\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 Load\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$491K-$907K\u003c\/strong\u003e\u003cp\u003eClinical wages are a big earnings drag, so staffing mix and hours decide how much revenue reaches the owner.\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\u003eSupply COGS\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e150%-122%\u003c\/strong\u003e\u003cp\u003eTesting kits and consumables are cost of goods sold (COGS), and tighter panel use keeps more margin on each test.\u003c\/p\u003e\u003c\/article\u003e\u003carticle class=\"main-driver-card\"\u003e\u003cdiv class=\"main-driver-heading\"\u003e\n\u003cspan class=\"driver-rank\"\u003e6\u003c\/span\u003e\u003ch4\u003eOverhead Spread\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$21.8K\/mo\u003c\/strong\u003e\u003cp\u003eClinic rent, insurance, software, and admin costs are fixed, so higher volume later makes each test more profitable.\u003c\/p\u003e\u003c\/article\u003e\n\u003c\/div\u003e\u003c\/article\u003e\u003c\/section\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eContact Dermatitis Patch Testing Core Six Income Drivers\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\u003cbr\u003e\n\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003eCompleted patch tests per week\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n  \u003cdiv class=\"left-row1\"\u003e\n    \u003ch3\u003eCompleted patch tests per week\u003c\/h3\u003e\n    \u003cp\u003e\u003cstrong\u003eCompleted patch tests per week\u003c\/strong\u003e is the main income lever because fixed costs stay in place even when volume dips. The Year 1 model completes \u003cstrong\u003e242 tests per month\u003c\/strong\u003e, or about \u003cstrong\u003e56 per week\u003c\/strong\u003e, and break-even is about \u003cstrong\u003e37 per week\u003c\/strong\u003e under Year 1 assumptions. Above that line, each extra completed test helps pay overhead and owner draw.\u003c\/p\u003e\n    \u003cp\u003eThe inputs are referral flow, booked slots, show rate, multi-visit timing, and provider capacity. By Year 5, volume reaches \u003cstrong\u003e1,279 tests per month\u003c\/strong\u003e, or about \u003cstrong\u003e295 per week\u003c\/strong\u003e. What this estimate hides: \u003cstrong\u003eno-shows\u003c\/strong\u003e, scheduling gaps, referral softness, and staffing limits can make booked demand look fine while \u003cstrong\u003ecollected revenue\u003c\/strong\u003e lags.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"right-row1\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003eTrack completions, not just bookings\u003c\/h3\u003e\n      \u003cp\u003eMeasure scheduled, arrived, completed, and billed tests each week. If completions slip under \u003cstrong\u003e37 per week\u003c\/strong\u003e, the model is below break-even and owner income gets squeezed fast. Use reminders, tighter referral handoffs, and block scheduling so open slots do not sit empty.\u003c\/p\u003e\n      \u003cp\u003eWatch completion rate by provider day, not just monthly totals. The goal is simple: turn booked patients into completed, collected tests. A weekly dashboard for referrals, no-shows, and collected revenue per test shows whether extra volume is creating cash or just more admin work.\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;\"\u003ePatch testing revenue per completed test\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n  \u003cdiv class=\"right-row2\"\u003e\n    \u003ch3\u003eCollected revenue per completed test\u003c\/h3\u003e\n    \u003cp\u003eFor this service, the cash engine is \u003cstrong\u003ecollected revenue per completed test\u003c\/strong\u003e, not billed charges. Year 1 is about \u003cstrong\u003e$511\u003c\/strong\u003e per completed test, with provider price assumptions from \u003cstrong\u003e$350 to $850\u003c\/strong\u003e; by Year 5, the range rises to \u003cstrong\u003e$390 to $950\u003c\/strong\u003e. At \u003cstrong\u003e77.5%\u003c\/strong\u003e contribution, a \u003cstrong\u003e$511\u003c\/strong\u003e test produces about \u003cstrong\u003e$396\u003c\/strong\u003e before rent and payroll, so better collections lift owner pay fast.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"left-row2\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003eTrack cash, not sticker price\u003c\/h3\u003e\n      \u003cp\u003eUse three inputs: completed tests, collected revenue per test, and follow-up billing success. Gross charges do not pay the bills; collected revenue does. If payer contracts, documentation, or claim follow-up slip, the same volume can produce less cash and less profit. A clean monthly check is \u003cstrong\u003ecollected revenue ÷ completed tests\u003c\/strong\u003e, then compare it with the \u003cstrong\u003e$511\u003c\/strong\u003e Year 1 benchmark.\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;\"\u003ePatch testing payer mix\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n  \u003cdiv class=\"left-row3\"\u003e\n    \u003ch3\u003ePatch Testing Payer Mix\u003c\/h3\u003e\n    \u003cp\u003ePayer mix changes \u003cstrong\u003ecash timing\u003c\/strong\u003e, \u003cstrong\u003edenial risk\u003c\/strong\u003e, and \u003cstrong\u003erealized revenue\u003c\/strong\u003e even when test volume stays flat. The model gives collected pricing assumptions, but it does not give a commercial, Medicare, or cash-pay split, so the \u003cstrong\u003ecollection rate\u003c\/strong\u003e should be an editable field. No reimbursement amount is guaranteed, so booked revenue can overstate take-home cash.\u003c\/p\u003e\n    \u003cp\u003eHere’s the quick math: if billing and claims processing runs at \u003cstrong\u003e50%\u003c\/strong\u003e of revenue in Year 1 and \u003cstrong\u003e42%\u003c\/strong\u003e in Year 5, weak execution can turn a full schedule into slow or unpaid cash. That hits the owner twice: lower profit and delayed draw capacity. This is a revenue-quality problem, not just a billing problem.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"right-row3\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003eTrack Collections, Not Just Charges\u003c\/h3\u003e\n      \u003cp\u003eSet one collection rate for each payer bucket and update it monthly. Watch \u003cstrong\u003ecollected revenue\u003c\/strong\u003e, \u003cstrong\u003edenial rate\u003c\/strong\u003e, \u003cstrong\u003edays in accounts receivable\u003c\/strong\u003e, and write-offs; those four lines tell you if the payer mix is helping or hurting cash. If commercial or Medicare payments slow, owner pay should follow cash, not booked charges.\u003c\/p\u003e\n      \u003cp\u003eBuild the forecast from actual remits and denials, then compare it to the \u003cstrong\u003e50%\u003c\/strong\u003e and \u003cstrong\u003e42%\u003c\/strong\u003e billing cost benchmarks. If claims lag or documentation is thin, tighten coding, appeal flow, and patient payment rules before adding more test volume.\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;\"\u003ePatch testing staffing costs\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n  \u003cdiv class=\"right-row4\"\u003e\n    \u003ch3\u003ePatch Testing Labor Cost Load\u003c\/h3\u003e\n    \u003cp\u003e\u003cstrong\u003eLabor\u003c\/strong\u003e decides whether margin becomes owner income or payroll. Year 1 listed wages total \u003cstrong\u003e$491K\u003c\/strong\u003e: \u003cstrong\u003e$280K\u003c\/strong\u003e Medical Director, \u003cstrong\u003e$85K\u003c\/strong\u003e Practice Manager, \u003cstrong\u003e$52K\u003c\/strong\u003e Patient Coordinator, \u003cstrong\u003e$29K\u003c\/strong\u003e Billing Specialist FTE, and \u003cstrong\u003e$45K\u003c\/strong\u003e Medical Assistant. By Year 5, wages rise to \u003cstrong\u003e$907K\u003c\/strong\u003e, so staffing has to support more completed tests and collected cash, not just more people.\u003c\/p\u003e\n    \u003cp\u003eIf the owner fills the Medical Director role, that \u003cstrong\u003e$280K\u003c\/strong\u003e is working pay, not passive profit. The pressure points are supervision load, schedule gaps, and underused clinical staff; if test volume stalls, payroll drains cash fast and owner draw gets squeezed.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"left-row4\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003eTrack Payroll per Completed Test\u003c\/h3\u003e\n      \u003cp\u003eBuild the model from \u003cstrong\u003eFTE count\u003c\/strong\u003e, salary, and completed tests. A simple check is \u003cstrong\u003etotal wages ÷ completed patch tests\u003c\/strong\u003e; then compare it each month as volume changes. If tests rise but payroll stays flat, owner income improves. If staff time grows faster than tests, margin leaks into idle labor.\u003c\/p\u003e\n      \u003cul class=\"lst_crct_blog\"\u003e\n        \u003cli\u003eTrack wages by role monthly\u003c\/li\u003e\n        \u003cli\u003eMatch staffing to booked tests\u003c\/li\u003e\n        \u003cli\u003eWatch no-shows and open slots\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cp\u003eKeep the Medical Director, coordinator, and billing load tied to booked and collected volume. One clean rule: no added FTE without enough tests to cover the salary and supervision drag.\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;\"\u003eContact dermatitis patch testing supply costs\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n  \u003cdiv class=\"left-row5\"\u003e\n    \u003ch3\u003eSupply Cost per Patch Test\u003c\/h3\u003e\n    \u003cp\u003eEvery completed test eats materials, so this driver can swing owner pay fast. In Year 1, \u003cstrong\u003eCOGS = 150%\u003c\/strong\u003e of revenue: \u003cstrong\u003e120%\u003c\/strong\u003e for allergen kits and panels plus \u003cstrong\u003e30%\u003c\/strong\u003e for disposal and consumables. At a \u003cstrong\u003e$511\u003c\/strong\u003e collected test, supply cost is \u003cstrong\u003e$766.50\u003c\/strong\u003e per patient, so gross margin is negative before labor and overhead.\u003c\/p\u003e\n    \u003cp\u003eBy Year 5, COGS improves to \u003cstrong\u003e122%\u003c\/strong\u003e, but it still stays tied to volume and panel cost. If revenue per test rises or waste falls, more cash reaches owner pay; if kit prices or disposables jump, margin shrinks even when test count holds steady.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"right-row5\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003eTrack Cost per Completed Test\u003c\/h3\u003e\n      \u003cp\u003eMeasure \u003cstrong\u003ekit cost\u003c\/strong\u003e, \u003cstrong\u003edisposables\u003c\/strong\u003e, \u003cstrong\u003ewaste\u003c\/strong\u003e, and \u003cstrong\u003ecompleted tests\u003c\/strong\u003e each month. Here’s the quick math: \u003cstrong\u003esupply COGS ÷ collected revenue\u003c\/strong\u003e. Use it to test how panel mix, vendor price changes, or re-tests affect cash and profit per patient, not just total sales.\u003c\/p\u003e\n      \u003cp\u003eKeep a per-patient sheet by payer and panel type. If supply cost stays above collected revenue, owner income gets squeezed before rent and wages even hit. That’s the number to watch when setting prices, buying inventory, and planning how much profit the owner can safely draw.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"timeline\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"step-circle step5\"\u003e5\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003ePatch testing clinic overhead\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n\u003cdiv class=\"right-row6\"\u003e\n\u003ch3\u003eFixe\nd Overhead per Test\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong\u003eFixed overhead is $21,800 per month\u003c\/strong\u003e in the source model, made up of \u003cstrong\u003e$12,500 rent\u003c\/strong\u003e, \u003cstrong\u003e$3,200 malpractice insurance\u003c\/strong\u003e, \u003cstrong\u003e$1,800\u003c\/strong\u003e for EHR and practice management software, \u003cstrong\u003e$1,500\u003c\/strong\u003e for utilities and maintenance, \u003cstrong\u003e$600\u003c\/strong\u003e for office supplies, and \u003cstrong\u003e$2,200\u003c\/strong\u003e for marketing and website hosting. This cost base sits under every test, so it hits owner income even when volume is soft.\u003c\/p\u003e\n\u003cp\u003eHere’s the quick math: at \u003cstrong\u003e242 tests per month\u003c\/strong\u003e, overhead is about \u003cstrong\u003e$90 per test\u003c\/strong\u003e (\u003cstrong\u003e$21,800 \/ 242\u003c\/strong\u003e). At \u003cstrong\u003e1,279 tests per month\u003c\/strong\u003e, it falls to about \u003cstrong\u003e$17 per test\u003c\/strong\u003e. That spread is why volume matters so much: more completed tests push more revenue over the same fixed base and leave more room for owner pay. Local rent, insurance, and admin needs can change the result.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"left-row6\"\u003e\n\u003cdiv class=\"tips-box\"\u003e\n\u003ch3\u003eTrack Overhead Against Completed Tests\u003c\/h3\u003e\n\u003cp\u003eMeasure overhead in \u003cstrong\u003ecost per completed test\u003c\/strong\u003e, not just total spend. Track monthly tests, rent, insurance, software, admin hours, and marketing, then divide fixed overhead by completed volume. If tests slip, the same \u003cstrong\u003e$21,800\u003c\/strong\u003e gets spread across fewer cases, and profit drops fast. One clean rule: if volume falls, owner draw should not be set from gross revenue alone.\u003c\/p\u003e\n\u003cp\u003eWatch the two biggest levers first: \u003cstrong\u003erent\u003c\/strong\u003e and \u003cstrong\u003estaffing\/admin load\u003c\/strong\u003e. If a lease or insurance quote pushes fixed costs up, you need more completed tests just to hold the same margin. Build forecasts at both \u003cstrong\u003e242\u003c\/strong\u003e and \u003cstrong\u003e1,279 tests per month\u003c\/strong\u003e so you can see how much cash remains for wages, tax, debt service, and the owner’s take-home pay.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"timeline\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"step-circle 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=\"Contact Dermatitis Patch Testing Owner Income Scenarios\" data-site-name=\"Financial Models Lab\" data-site-url=\"https:\/\/financialmodelslab.com\" data-source-title=\"Contact Dermatitis Patch Testing Owner Income Scenarios\" data-note-label=\"Planning note\" data-note-text=\"These 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 rises with test volume, provider mix, and staffing. More tests boost revenue, but wages and fixed clinic costs keep the low, base, and high cases far apart.\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 lean, scaled, and multi-provider 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\"\u003eLean\u003c\/span\u003e\n\u003c\/th\u003e\n\u003cth class=\"fml-scenario-table-column\" scope=\"col\" data-export-value=\"Base Case\"\u003e\n\u003cspan class=\"fml-scenario-column-title\"\u003eBase Case\u003c\/span\u003e\u003cspan class=\"fml-scenario-badge is-soft\"\u003eScaled\u003c\/span\u003e\n\u003c\/th\u003e\n\u003cth class=\"fml-scenario-table-column\" scope=\"col\" data-export-value=\"High Case\"\u003e\n\u003cspan class=\"fml-scenario-column-title\"\u003eHigh Case\u003c\/span\u003e\u003cspan class=\"fml-scenario-badge is-warning\"\u003eMulti-provider\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 lean earnings path with Year 1 volume and smaller owner income.\"\u003eThis is the lean earnings path with Year 1 volume and smaller owner income.\u003c\/td\u003e\n\u003ctd data-export-value=\"This is the modeled middle case with Year 2 volume and steady staffing.\"\u003eThis is the modeled middle case with Year 2 volume and steady staffing.\u003c\/td\u003e\n\u003ctd data-export-value=\"This is the stronger earnings path with Year 5 volume and a multi-provider setup.\"\u003eThis is the stronger earnings path with Year 5 volume and a multi-provider setup.\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=\"It models 56 tests a week, about $511 revenue per test, 77.5% contribution margin, $491K wages, $21.8K monthly fixed overhead, and about $398K pre-tax operating profit.\"\u003eIt models 56 tests a week, about $511 revenue per test, 77.5% contribution margin, $491K wages, $21.8K monthly fixed overhead, and about $398K pre-tax operating profit.\u003c\/td\u003e\n\u003ctd data-export-value=\"It tracks 102 tests a week, about $509 revenue per test, 78.6% contribution margin, $617K wages, $2.69M revenue, and about $1.23M pre-tax operating profit.\"\u003eIt tracks 102 tests a week, about $509 revenue per test, 78.6% contribution margin, $617K wages, $2.69M revenue, and about $1.23M pre-tax operating profit.\u003c\/td\u003e\n\u003ctd data-export-value=\"It models 295 tests a week, about $562 revenue per test, 81.9% contribution margin, $907K wages, $8.62M revenue, and about $5.89M pre-tax operating profit.\"\u003eIt models 295 tests a week, about $562 revenue per test, 81.9% contribution margin, $907K wages, $8.62M revenue, and about $5.89M pre-tax operating profit.\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-scenario-row\u003e\n\u003cth class=\"fml-scenario-row-heading\" scope=\"row\" data-export-value=\"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=\"Test volume; revenue per test; contribution margin; wages; fixed overhead\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003eTest volume\u003c\/li\u003e\n\u003cli\u003erevenue per test\u003c\/li\u003e\n\u003cli\u003econtribution margin\u003c\/li\u003e\n\u003cli\u003ewages\u003c\/li\u003e\n\u003cli\u003efixed overhead\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/td\u003e\n\u003ctd data-export-value=\"Test volume; pricing; contribution margin; wages; fixed clinic costs\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003eTest volume\u003c\/li\u003e\n\u003cli\u003epricing\u003c\/li\u003e\n\u003cli\u003econtribution margin\u003c\/li\u003e\n\u003cli\u003ewages\u003c\/li\u003e\n\u003cli\u003efixed clinic costs\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/td\u003e\n\u003ctd data-export-value=\"Test volume; revenue per test; contribution margin; provider count; wages\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003eTest volume\u003c\/li\u003e\n\u003cli\u003erevenue per test\u003c\/li\u003e\n\u003cli\u003econtribution margin\u003c\/li\u003e\n\u003cli\u003eprovider count\u003c\/li\u003e\n\u003cli\u003ewages\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=\"$398K\"\u003e\n\u003cstrong class=\"fml-scenario-range\"\u003e$398K\u003c\/strong\u003e\u003cspan class=\"fml-scenario-badge is-soft\"\u003eLean profit\u003c\/span\u003e\n\u003c\/td\u003e\n\u003ctd data-export-value=\"$1.23M\"\u003e\n\u003cstrong class=\"fml-scenario-range\"\u003e$1.23M\u003c\/strong\u003e\u003cspan class=\"fml-scenario-badge is-soft\"\u003eModeled profit\u003c\/span\u003e\n\u003c\/td\u003e\n\u003ctd data-export-value=\"$5.89M\"\u003e\n\u003cstrong class=\"fml-scenario-range\"\u003e$5.89M\u003c\/strong\u003e\u003cspan class=\"fml-scenario-badge is-warning\"\u003eUpside profit\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 staffing, referral flow, and cash buffer needs.\"\u003eUse this to test launch staffing, referral flow, and cash buffer needs.\u003c\/td\u003e\n\u003ctd data-export-value=\"Use this as the working plan for normal ramp and staffing.\"\u003eUse this as the working plan for normal ramp and staffing.\u003c\/td\u003e\n\u003ctd data-export-value=\"Use this to test what happens if multiple clinicians stay full and referrals hold.\"\u003eUse this to test what happens if multiple clinicians stay full and referrals hold.\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\u003c\/div\u003e\n\u003cdiv class=\"fml-scenario-table-note\"\u003e\n\u003cspan class=\"fml-scenario-table-note-icon\" aria-hidden=\"true\"\u003e!\u003c\/span\u003e\u003cp\u003e\u003cstrong\u003ePlanning note:\u003c\/strong\u003e These 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":49303678288115,"sku":"contact-dermatitis-testing-owner-makes","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/contact-dermatitis-testing-owner-makes.webp?v=1782679704","url":"https:\/\/financialmodelslab.com\/products\/contact-dermatitis-testing-owner-makes","provider":"Financial Models Lab","version":"1.0","type":"link"}