{"product_id":"dim-sum-classes-owner-makes","title":"How Much Does a Dim Sum Cooking Class Owner Make by Year 2?","description":"\u003cbr\u003e\u003cdiv class=\"container_new_design\"\u003e\n\u003cdiv class=\"text-section text-1_new_design\"\u003e\n\u003cdiv class=\"line_top\"\u003e\u003c\/div\u003e\n\u003cp\u003eYou’re trying to separate class sales from real owner income This page uses a five-year US planning model with \u003cstrong\u003e$381,000 Year 1 revenue\u003c\/strong\u003e, \u003cstrong\u003eMonth 14 breakeven\u003c\/strong\u003e, payroll, food costs, rent, marketing, reserves, and owner role assumptions before taxes\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\u003cdiv class=\"image-section image-1_new_design\" id=\"main_article_image\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003csection class=\"fml-owner-metric-cards\" aria-label=\"Dim Sum Cooking Classes\"\u003e\u003cdiv class=\"metric-grid\"\u003e\n\u003carticle class=\"metric-card is-green\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Year1 draw is $0 if cash stays in the business, or $7,083 a month if the owner is paid as Head Dim Sum Chef; excludes taxes, debt.\"\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=\"Year1 draw is $0 if cash stays in the business, or $7,083 a month if the owner is paid as Head Dim Sum Chef; excludes taxes, debt.\"\u003e$0–$7.1k\/mo\u003c\/strong\u003e\u003c\/article\u003e\u003carticle class=\"metric-card\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Year1 gross margin is about 54% after food, supplies, and instructor labor on $381,000 revenue; fixed costs and rent still push net profit lower.\"\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=\"Year1 gross margin is about 54% after food, supplies, and instructor labor on $381,000 revenue; fixed costs and rent still push net profit lower.\"\u003e54%\u003c\/strong\u003e\u003c\/article\u003e\u003carticle class=\"metric-card\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"Year1 average monthly revenue is $31,750 from $381,000 annual revenue; it supports the model's target owner pay, but sales can swing by class mix and occupancy.\"\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=\"Year1 average monthly revenue is $31,750 from $381,000 annual revenue; it supports the model's target owner pay, but sales can swing by class mix and occupancy.\"\u003e$31.8k\/mo\u003c\/strong\u003e\u003c\/article\u003e\u003carticle class=\"metric-card\"\u003e\u003cspan class=\"metric-icon-tip\" tabindex=\"0\" data-tooltip=\"This is Hard because Year1 EBITDA is -$72,000, breakeven lands in Month 14, and minimum cash reaches $646,000 in Month 13.\"\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=\"This is Hard because Year1 EBITDA is -$72,000, breakeven lands in Month 14, and minimum cash reaches $646,000 in Month 13.\"\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=\"Dim Sum Cooking Classes Owner Income Calculator\" data-locale=\"en-US\" data-currency=\"USD\" data-default-scenario=\"base\" data-export-filename=\"Dim Sum Cooking Classes Owner Income Calculator.xlsx\" data-source-site-name=\"Financial Models Lab\" data-source-site-url=\"https:\/\/financialmodelslab.com\" data-source-page-title=\"Dim Sum Cooking Classes 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 target-pay gap from revenue, margin, costs, reserves, and target pay for a dim sum cooking class studio.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-scenarios\" aria-label=\"Income scenario presets\"\u003e\n\u003cbutton class=\"fml-owner-scenario\" type=\"button\" data-scenario=\"low\"\u003eLow\u003c\/button\u003e\u003cbutton class=\"fml-owner-scenario is-active\" type=\"button\" data-scenario=\"base\"\u003eBase\u003c\/button\u003e\u003cbutton class=\"fml-owner-scenario\" type=\"button\" data-scenario=\"high\"\u003eHigh\u003c\/button\u003e\n\u003c\/div\u003e\u003c\/header\u003e\u003cdiv class=\"fml-owner-layout\"\u003e\n\u003cform class=\"fml-owner-inputs\"\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eMonthly revenue\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Average monthly sales from classes and merchandise before expenses. Use an average operating month, not a launch spike.\"\u003ei\u003cspan role=\"tooltip\"\u003eAverage monthly sales from classes and merchandise before expenses. Use an average operating month, not a launch 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 sales from classes and merchandise before expenses. Use an average operating month, not a launch spike.\" data-low=\"35000\" data-base=\"60000\" data-high=\"110000\" name=\"monthlyRevenue\" type=\"text\" inputmode=\"numeric\" value=\"60,000\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eGross margin\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Percent of revenue left after direct class and food costs. Higher margin means more cash before payroll and overhead.\"\u003ei\u003cspan role=\"tooltip\"\u003ePercent of revenue left after direct class and food costs. Higher margin means more cash before payroll and overhead.\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 class and food costs. Higher margin means more cash before payroll and overhead.\" name=\"grossMargin\" type=\"range\" min=\"0\" max=\"100\" step=\"1\" data-low=\"80\" data-base=\"88\" data-high=\"90\" value=\"88\"\u003e\u003coutput\u003e88%\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 staffing cost before owner pay. Include chefs, instructors, support staff, and contractor help.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly payroll and staffing cost before owner pay. Include chefs, instructors, support staff, and contractor help.\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 staffing cost before owner pay. Include chefs, instructors, support staff, and contractor help.\" data-low=\"19000\" data-base=\"22000\" data-high=\"30000\" name=\"laborCost\" type=\"text\" inputmode=\"numeric\" value=\"22,000\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eFixed overhead\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Monthly rent, utilities, software, insurance, cleaning, and admin costs that stay on.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly rent, utilities, software, insurance, cleaning, and admin costs that stay on.\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, utilities, software, insurance, cleaning, and admin costs that stay on.\" data-low=\"9400\" data-base=\"9400\" data-high=\"9400\" name=\"fixedOverhead\" type=\"text\" inputmode=\"numeric\" value=\"9,400\"\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 ads and promotion spend needed to keep bookings coming in.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly ads and promotion spend needed to keep bookings coming in.\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 ads and promotion spend needed to keep bookings coming in.\" data-low=\"2500\" data-base=\"4000\" data-high=\"5500\" name=\"marketing\" type=\"text\" inputmode=\"numeric\" value=\"4,000\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eDebt service\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Monthly loan or financing payments. Set to zero if there is no debt.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly loan or financing payments. Set to zero if there is no debt.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-money\"\u003e\n\u003cspan\u003e$\u003c\/span\u003e\u003cinput data-owner-field=\"debtService\" data-owner-kind=\"money\" data-owner-label=\"Debt service\" data-owner-note=\"Monthly loan or financing payments. Set to zero 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 take-home.\"\u003ei\u003cspan role=\"tooltip\"\u003ePercent of profit set aside for taxes before owner take-home.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-percent\"\u003e\n\u003cinput data-owner-field=\"taxReserve\" data-owner-kind=\"percent\" data-owner-label=\"Tax reserve\" data-owner-note=\"Percent of profit set aside for taxes before owner take-home.\" name=\"taxReserve\" type=\"range\" min=\"0\" max=\"45\" step=\"1\" data-low=\"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 repairs, growth, and cash buffer.\"\u003ei\u003cspan role=\"tooltip\"\u003ePercent of profit kept for repairs, growth, and cash buffer.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-percent\"\u003e\n\u003cinput data-owner-field=\"reinvestmentReserve\" data-owner-kind=\"percent\" data-owner-label=\"Reinvestment reserve\" data-owner-note=\"Percent of profit kept for repairs, growth, and cash buffer.\" name=\"reinvestmentReserve\" type=\"range\" min=\"0\" max=\"35\" step=\"1\" data-low=\"5\" data-base=\"8\" data-high=\"10\" value=\"8\"\u003e\u003coutput\u003e8%\u003c\/output\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fml-owner-row\"\u003e\n\u003clabel class=\"fml-owner-label\"\u003e\u003cspan\u003eTarget owner pay\u003c\/span\u003e\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Monthly owner income target used to calculate the gap versus expected take-home.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly owner income target used to calculate the gap versus expected take-home.\u003c\/span\u003e\u003c\/span\u003e\u003c\/label\u003e\u003cdiv class=\"fml-owner-money\"\u003e\n\u003cspan\u003e$\u003c\/span\u003e\u003cinput data-owner-field=\"targetOwnerPay\" data-owner-kind=\"money\" data-owner-label=\"Target owner pay\" data-owner-note=\"Monthly owner income target used to calculate the gap versus expected take-home.\" data-low=\"6000\" data-base=\"10000\" data-high=\"18000\" name=\"targetOwnerPay\" type=\"text\" inputmode=\"numeric\" value=\"10,000\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/form\u003e\n\u003caside class=\"fml-owner-results\" aria-live=\"polite\"\u003e\u003cspan class=\"fml-owner-tag\"\u003eOwner income output\u003c\/span\u003e\u003cdiv class=\"fml-owner-metrics\"\u003e\n\u003cdiv class=\"fml-owner-metric is-primary\"\u003e\n\u003cspan class=\"fml-owner-metric-label\"\u003eOwner Income\u003cspan class=\"fml-owner-tooltip\" tabindex=\"0\" aria-label=\"Monthly take-home after tax and reinvestment reserves.\"\u003ei\u003cspan role=\"tooltip\"\u003eMonthly take-home after tax and reinvestment reserves.\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cstrong data-owner-output=\"monthlyOwnerIncome\"\u003e$12,528\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\"\u003e21%\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$56,010\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$2,528\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$150,336\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$17,400\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$4,872\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$2,528\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$60,000\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: 88%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$52,800\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: 59%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$35,400\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$4,872\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: 21%;\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n\u003cb data-owner-bridge-value\u003e$12,528\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;\"\u003eWant to see the full financial model for Dim Sum Cooking Classes?\u003c\/span\u003e\u003c\/h3\u003e\n\n\u003cp\u003eThe \u003ca href=\"\/products\/dim-sum-classes-financial-model\"\u003eDim Sum Cooking Classes Financial Model Template\u003c\/a\u003e shows revenue, margin, costs, cash need, and owner take-home; open it to see the full math.\u003c\/p\u003e\n\n\u003ch4\u003e\u003cstrong\u003eOwner-income model highlights\u003c\/strong\u003e\u003c\/h4\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eRevenue: $381k to $2.647M\u003c\/li\u003e\n\u003cli\u003eEBITDA: -$72k to $1.676M\u003c\/li\u003e\n\u003cli\u003eBreakeven: Month 14\u003c\/li\u003e\n\u003cli\u003ePayback: Month 30\u003c\/li\u003e\n\u003cli\u003eMinimum cash: $646k\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\/dim-sum-classes-financial-model-dashboard-financialmodelslab_bf254a2b-215d-45b9-a72b-fcd0d467ece2.webp\"\u003e\n\u003cimg class=\"preview-img\" width=\"100%\" height=\"auto\" src=\"\/cdn\/shop\/files\/dim-sum-classes-financial-model-dashboard-financialmodelslab_bf254a2b-215d-45b9-a72b-fcd0d467ece2.webp?width=500\" alt=\"Dim Sum Cooking Classes Financial Model dashboard summarizes key KPIs, runway\/cash and performance with a dynamic dashboard, investor-ready charts to avoid cash-flow blind spots and present results.\"\u003e\n\u003cdiv class=\"preview-overlay\"\u003e\n\u003cbutton class=\"preview-btn\" type=\"button\" style=\"align-items: center; vertical-align: middle; display: inline-flex; justify-content: center; gap: 6px; line-height: 1;\"\u003e\nPREVIEW \u003csvg fill=\"#fff\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\" role=\"presentation\" viewbox=\"0 0 448 512\" width=\"14\"\u003e\u003cpath d=\"M416 176V86.63L246.6 256L416 425.4V336c0-8.844 7.156-16 16-16s16 7.156 16 16v128c0 8.844-7.156 16-16 16h-128c-8.844 0-16-7.156-16-16s7.156-16 16-16h89.38L224 278.6L54.63 448H144C152.8 448 160 455.2 160 464S152.8 480 144 480h-128C7.156 480 0 472.8 0 464v-128C0 327.2 7.156 320 16 320S32 327.2 32 336v89.38L201.4 256L32 86.63V176C32 184.8 24.84 192 16 192S0 184.8 0 176v-128C0 39.16 7.156 32 16 32h128C152.8 32 160 39.16 160 48S152.8 64 144 64H54.63L224 233.4L393.4 64H304C295.2 64 288 56.84 288 48S295.2 32 304 32h128C440.8 32 448 39.16 448 48v128C448 184.8 440.8 192 432 192S416 184.8 416 176z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eHow many dim sum classes are needed to pay the owner?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003eFor \u003cstrong\u003eDim Sum Cooking Classes\u003c\/strong\u003e, you can’t get the exact class count without the target owner draw, because owner pay is separate from cash reserves. Here’s the quick math: required revenue = (\u003cstrong\u003e$112,800\u003c\/strong\u003e fixed overhead + \u003cstrong\u003e$232,000\u003c\/strong\u003e payroll + target owner draw) ÷ \u003cstrong\u003e81%\u003c\/strong\u003e contribution margin, since Year 1 variable costs are \u003cstrong\u003e19%\u003c\/strong\u003e of revenue.\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 math\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003e19%\u003c\/strong\u003e variable costs in Year 1\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e81%\u003c\/strong\u003e contribution margin\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e$112,800\u003c\/strong\u003e annual fixed overhead\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e$232,000\u003c\/strong\u003e payroll before owner draw\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\u003eVolume drivers\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eUse seats × ticket price\u003c\/li\u003e\n\u003cli\u003eMultiply by occupancy rate\u003c\/li\u003e\n\u003cli\u003eThen by class frequency\u003c\/li\u003e\n\u003cli\u003eYear 1 breakeven lands in \u003cstrong\u003eMonth 14\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eCan you make a living teaching dim sum classes?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003eYes, you can make a living teaching \u003cstrong\u003eDim Sum Cooking Classes\u003c\/strong\u003e, but only by scenario: if the owner teaches as Head Dim Sum Chef, Year 1 supports modeled payroll of \u003cstrong\u003e$85,000\u003c\/strong\u003e, not extra owner draw. For startup cost context, see \u003ca href=\"\/blogs\/startup-costs\/dim-sum-classes\"\u003eHow Much To Start Dim Sum Cooking Classes Business?\u003c\/a\u003e; the business shows \u003cstrong\u003e-$72,000 EBITDA\u003c\/strong\u003e in Year 1, then \u003cstrong\u003e$183,000 EBITDA\u003c\/strong\u003e on \u003cstrong\u003e$721,000 revenue\u003c\/strong\u003e in Year 2.\u003c\/p\u003e\n\u003cdiv class=\"container_2_clmn_row\"\u003e\n\u003cdiv class=\"card_smpl blue_card\"\u003e\n\u003cdiv class=\"card_smpl_header\"\u003e\n\u003cimg src=\"\/cdn\/shop\/files\/fml_20_fml-Orange-blog-colons-icon.svg\" alt=\"Icon\" class=\"icon_how_to_use\"\u003e\u003ch3\u003eOwner income case\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003ePay is modeled at \u003cstrong\u003e$85,000\/year\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eYear 1 EBITDA is \u003cstrong\u003e-$72,000\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eExtra draw needs cash reserves\u003c\/li\u003e\n\u003cli\u003eOwner likely teaches and manages\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\u003eBreakout levers\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eLift occupancy from \u003cstrong\u003e45%\u003c\/strong\u003e to \u003cstrong\u003e60%\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eCover fixed overhead of \u003cstrong\u003e$9,400\/month\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eGrow weekly class volume\u003c\/li\u003e\n\u003cli\u003eKeep sales and operations tight\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eWhat affects profit margins for dim sum cooking classes?\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\n\u003cp\u003eIf you’re pricing \u003cstrong\u003eDim Sum Cooking Classes\u003c\/strong\u003e, start with the cost base in \u003ca href=\"\/blogs\/startup-costs\/dim-sum-classes\"\u003eHow Much To Start Dim Sum Cooking Classes Business?\u003c\/a\u003e because margin is driven by food, labor, and studio time. In Year 1, modeled \u003cstrong\u003efood ingredients are 80%\u003c\/strong\u003e of revenue, then ease to \u003cstrong\u003e60%\u003c\/strong\u003e by Year 5, so every class needs tight portion control and full seats.\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\u003eDirect cost items\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eShrimp, pork, vegetables\u003c\/li\u003e\n\u003cli\u003eWrappers, sauces, tea\u003c\/li\u003e\n\u003cli\u003ePackaging and disposables\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e80%\u003c\/strong\u003e food cost in Year 1\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 pressure points\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003e\n\u003cstrong\u003e60%\u003c\/strong\u003e food cost by Year 5\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e20%\u003c\/strong\u003e to \u003cstrong\u003e12%\u003c\/strong\u003e supplies and disposables\u003c\/li\u003e\n\u003cli\u003eAssistant instructors raise labor share\u003c\/li\u003e\n\u003cli\u003eSmall classes and rented kitchens cut margin\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 main income drivers?\n\u003c\/span\u003e\u003c\/h2\u003e\n\u003csection class=\"fml-main-income-drivers\" aria-label=\"Accessible label for the six main income drivers in a dim sum cooking class business.\"\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\u003eSeat Utilization\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e45%-90%\u003c\/strong\u003e\u003cp\u003eGoing from 45% to 90% occupancy nearly doubles revenue per class, so filled seats lift take-home with little extra cost.\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\u003ePrice Mix\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$120-$300\u003c\/strong\u003e\u003cp\u003eShifting from public workshops to premium masterclasses raises average ticket size fast and pulls up gross profit.\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\u003eClass Frequency\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e22-26\/mo\u003c\/strong\u003e\u003cp\u003eMore billable days create more sellable slots, which spreads rent and staff cost across a larger sales base.\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\u003eInstructor Staffing\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$232K-$371K\u003c\/strong\u003e\u003cp\u003eLabor rises hard as the assistant instructor scales, so extra FTE can wipe out gains if demand does not keep up.\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\u003eOverhead Load\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e$9.4K\/mo\u003c\/strong\u003e\u003cp\u003eFixed overhead is $9.4K a month, and marketing falls from 6% to 4%, so booking efficiency drives cash burn.\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\u003eDirect Costs\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e7.2%-10%\u003c\/strong\u003e\u003cp\u003eFood and supply costs run about 7.2% to 10% of sales, so tighter usage keeps more gross profit in the business.\u003c\/p\u003e\u003c\/article\u003e\n\u003c\/div\u003e\u003c\/article\u003e\u003c\/section\u003e\u003cbr\u003e\u003ch2\u003e\u003cspan style=\"color: #126CFF;\"\u003eDim Sum Cooking Classes Core Six Income Drivers\u003c\/span\u003e\u003c\/h2\u003e\u003cbr\u003e\u003cbr\u003e\n\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003eSeat utilization\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n  \u003cdiv class=\"left-row1\"\u003e\n    \u003ch3\u003eSeat Utilization\u003c\/h3\u003e\n    \u003cp\u003eSeat utilization is the share of seats sold in each workshop. In this model, occupancy climbs from \u003cstrong\u003e45%\u003c\/strong\u003e in Year 1 to \u003cstrong\u003e90%\u003c\/strong\u003e in Year 5, and that is the fastest way to lift owner income because rent and chef payroll are already committed. More paid seats add revenue with little extra food cost, so contribution improves before fixed costs move.\u003c\/p\u003e\n    \u003cp\u003eHere’s the quick math: weak weekday demand leaves the studio and chef time underused, so profit falls fast even if the class is well run. The model reaches \u003cstrong\u003ebreak-even in Month 14\u003c\/strong\u003e, so seat fill has to improve early. A class should run only when the minimum enrollment still protects margin and cash.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"right-row1\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003eFill Seats Faster\u003c\/h3\u003e\n      \u003cp\u003eTrack \u003cstrong\u003ebooked seats\u003c\/strong\u003e, \u003cstrong\u003eoccupancy\u003c\/strong\u003e, cancellations, waitlist fills, and no-shows for every class date. Estimate seat utilization as \u003cstrong\u003epaid seats ÷ total seats\u003c\/strong\u003e. Use prepaid bookings, a clear cancellation policy, waitlists, and minimum enrollment rules to keep cash coming in and avoid half-empty workshops that still carry full labor and rent.\u003c\/p\u003e\n      \u003cul class=\"lst_crct_blog\"\u003e\n        \u003cli\u003eSeats per class\u003c\/li\u003e\n        \u003cli\u003eTicket price\u003c\/li\u003e\n        \u003cli\u003eCancellations and no-shows\u003c\/li\u003e\n        \u003cli\u003eWaitlist conversion\u003c\/li\u003e\n        \u003cli\u003eFood and labor per seat\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cp\u003eWatch weekday demand closely. If Tuesday and Wednesday stay soft, trim sessions or shift to private groups before adding staff hours. The key test is contribution per workshop, because empty seats do not just miss revenue; they also dilute owner take-home while fixed studio costs stay the same.\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;\"\u003eTicket price and class mix\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n  \u003cdiv class=\"right-row2\"\u003e\n    \u003ch3\u003eTicket price and class mix\u003c\/h3\u003e\n    \u003cp\u003e\u003cstrong\u003eAverage ticket value (ATV)\u003c\/strong\u003e is the average revenue per sold seat, and this driver can move income fast. In the model, public workshops rise from \u003cstrong\u003e$120\u003c\/strong\u003e to \u003cstrong\u003e$140\u003c\/strong\u003e, corporate events from \u003cstrong\u003e$180\u003c\/strong\u003e to \u003cstrong\u003e$215\u003c\/strong\u003e, and masterclasses from \u003cstrong\u003e$250\u003c\/strong\u003e to \u003cstrong\u003e$300\u003c\/strong\u003e. That is a \u003cstrong\u003e16.7%\u003c\/strong\u003e, \u003cstrong\u003e19.4%\u003c\/strong\u003e, and \u003cstrong\u003e20%\u003c\/strong\u003e lift per seat, before any change in headcount or rent.\u003c\/p\u003e\n    \u003cp\u003eHigher prices can lift gross margin and cash flow, but only if the market still buys. Private dim sum classes, premium small groups, date-night workshops, and corporate events can push ATV up, yet weak reviews, thin teaching, or vague value can force discounting. One clean rule: if premium seats do not fill, the higher tag can lower profit instead of raising owner pay.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"left-row2\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003ePrice by format, not by hope\u003c\/h3\u003e\n      \u003cp\u003eTrack revenue per seat by format, then compare it with occupancy and teaching time. Build a simple view for public groups, premium small groups, date-night workshops, private events, and corporate bookings. If one format sells at \u003cstrong\u003e$300\u003c\/strong\u003e but fills slowly, it may earn less cash than a \u003cstrong\u003e$140\u003c\/strong\u003e workshop that sells out often.\u003c\/p\u003e\n      \u003cul class=\"lst_crct_blog\"\u003e\n        \u003cli\u003eTrack fill rate by class type.\u003c\/li\u003e\n        \u003cli\u003eWatch reviews before raising price.\u003c\/li\u003e\n        \u003cli\u003eTest price one format at a time.\u003c\/li\u003e\n        \u003cli\u003eProtect margin with clear value.\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cp\u003eUse price increases only after the class teaches well and the pitch is clear. The inputs that matter are seats sold, mix by class type, occupancy, and repeat demand. If premium pricing holds, owner income rises faster than labor or food cost. If not, keep the format cheaper and fill more seats.\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;\"\u003eClass frequency\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n  \u003cdiv class=\"left-row3\"\u003e\n    \u003ch3\u003eClass Frequency\u003c\/h3\u003e\n    \u003cp\u003eClass frequency is how many dim sum sessions the studio can sell each month. It turns demand into cash, because billable days rise from \u003cstrong\u003e22\u003c\/strong\u003e in Year 1 to \u003cstrong\u003e26\u003c\/strong\u003e from Year 3 onward. More sessions lift monthly revenue before owner pay, but only if prep, cleanup, shopping, steaming equipment, and room access can keep up.\u003c\/p\u003e\n    \u003cp\u003eHere’s the quick math: more teaching hours raise revenue, but the ceiling is operational, not just demand. If the owner also teaches, books events, and runs private classes, burnout risk climbs and service quality can slip. Track \u003cstrong\u003erevenue per available teaching hour\u003c\/strong\u003e, not just total sessions, so extra classes actually improve take-home income.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"right-row3\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003eTrack Teaching Hours, Not Just Sessions\u003c\/h3\u003e\n      \u003cp\u003eMeasure \u003cstrong\u003eavailable teaching hours\u003c\/strong\u003e, \u003cstrong\u003ebooked sessions\u003c\/strong\u003e, and \u003cstrong\u003efilled seats\u003c\/strong\u003e each week. Use a simple test: if one more class earns less than its added labor, cleanup, and supply time, drop it. If it earns more, protect the peak slots first, because those hours usually carry the best cash flow.\u003c\/p\u003e\n      \u003cp\u003eBuild the schedule around real limits: prep blocks, shopping time, steaming gear, and facility hours. \u003cstrong\u003eInputs to estimate this driver\u003c\/strong\u003e include sessions per week, class length, occupancy, ticket price, private events, and owner time. If billable days stay at \u003cstrong\u003e22\u003c\/strong\u003e while demand grows, revenue stalls even when the calendar looks full.\u003c\/p\u003e\n      \u003cul class=\"lst_crct_blog\"\u003e\n        \u003cli\u003e\u003cstrong\u003eSessions per week\u003c\/strong\u003e\u003c\/li\u003e\n        \u003cli\u003e\u003cstrong\u003eClass length\u003c\/strong\u003e\u003c\/li\u003e\n        \u003cli\u003e\u003cstrong\u003eOccupancy rate\u003c\/strong\u003e\u003c\/li\u003e\n        \u003cli\u003e\u003cstrong\u003eTicket price mix\u003c\/strong\u003e\u003c\/li\u003e\n        \u003cli\u003e\u003cstrong\u003ePrep and cleanup time\u003c\/strong\u003e\u003c\/li\u003e\n        \u003cli\u003e\u003cstrong\u003eFacility availability\u003c\/strong\u003e\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;\"\u003eInstructor staffing\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n\u003cdiv class=\"right-row4\"\u003e\n\u003ch3\u003eInstructor staffing cost\u003c\/h3\u003e\n\u003cp\u003eInstructor staffing is one of the fastest ways to change owner income. In Year 1, the labor stack totals \u003cstrong\u003e$232,000\u003c\/strong\u003e: \u003cstrong\u003e$85,000\u003c\/strong\u003e for the Head Dim Sum Chef, \u003cstrong\u003e$52,000\u003c\/strong\u003e for an Assistant Instructor, \u003cstrong\u003e$60,000\u003c\/strong\u003e for the Studio Manager, and \u003cstrong\u003e$35,000\u003c\/strong\u003e for the Kitchen Porter. If seat fill does not rise with staffing, margin shrinks fast.\u003c\/p\u003e\n\u003cp\u003eThe model gets heavier as assistant instructors rise to \u003cstrong\u003e2 in Year 3\u003c\/strong\u003e and \u003cstrong\u003e3 in Year 5\u003c\/strong\u003e. Owner teaching can help cash flow, but unpaid owner labor is not true profit. Hiring improves capacity and class consistency, but it pushes break-even higher until enrollment and class frequency catch up.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"left-row4\"\u003e\n\u003cdiv class=\"tips-box\"\u003e\n\u003ch3\u003eTrack labor per teaching hour\u003c\/h3\u003e\n\u003cp\u003eMeasure total instructor payroll against billable classes, not just headcount. The clean test is \u003cstrong\u003elabor cost per seat sold\u003c\/strong\u003e. If staffing rises faster than occupancy, each seat has to absorb more fixed pay, so owner draw gets squeezed before revenue grows.\u003c\/p\u003e\n\u003cul class=\"lst_crct_blog\"\u003e\n\u003cli\u003eTrack revenue per teaching hour.\u003c\/li\u003e\n\u003cli\u003eUse waitlists before hiring.\u003c\/li\u003e\n\u003cli\u003eCount owner teaching at market pay.\u003c\/li\u003e\n\u003cli\u003eReview labor after each schedule change.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eWhen assistant instructors increase from \u003cstrong\u003e1\u003c\/strong\u003e to \u003cstrong\u003e2\u003c\/strong\u003e in Year 3 and \u003cstrong\u003e3\u003c\/strong\u003e in Year 5, test whether the extra coverage lifts class volume enough to offset the added payroll. If not, margin falls even if the studio feels busier.\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;\"\u003eDirect class 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\u003eDirect Class Costs\u003c\/h3\u003e\n    \u003cp\u003e\u003cstrong\u003eDirect class costs\u003c\/strong\u003e are the food and consumables tied to each dim sum workshop: shrimp, pork, vegetables, wrappers, sauces, tea, packaging, and gloves. In Year 1, modeled food ingredients run at \u003cstrong\u003e80% of revenue\u003c\/strong\u003e and kitchen supplies plus disposables at \u003cstrong\u003e20%\u003c\/strong\u003e, so direct costs equal \u003cstrong\u003e100%\u003c\/strong\u003e of revenue before labor and overhead. By Year 5, that falls to \u003cstrong\u003e72%\u003c\/strong\u003e, which lifts gross margin to \u003cstrong\u003e28%\u003c\/strong\u003e and leaves more cash for owner pay.\u003c\/p\u003e\n    \u003cp\u003eHere’s the quick math: if enrollment is weak or the menu uses premium fillings, per-seat cost jumps fast because the batch cost gets spread over fewer students. That means the same class can produce very different profit, even at the same ticket price. Lower direct cost per student improves cash flow first, then ma\nkes steady owner draws more realistic.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"right-row5\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003eCut Per-Seat Cost\u003c\/h3\u003e\n      \u003cp\u003eTrack \u003cstrong\u003ecost per student\u003c\/strong\u003e and \u003cstrong\u003ecost per class\u003c\/strong\u003e every session. Split the numbers between food and disposables, then compare them to seat count and menu mix. If a class has 10 seats and 6 fill, the cost per attendee is much higher than planned, so a “full” recipe can quietly erase margin.\u003c\/p\u003e\n      \u003cp\u003eUse tighter purchasing, standard recipes, and menu design to protect margin. Keep premium fillings for higher-priced classes, and match ingredient order sizes to booked seats. The goal is simple: hold direct costs closer to the modeled \u003cstrong\u003e60%\u003c\/strong\u003e food and \u003cstrong\u003e12%\u003c\/strong\u003e supplies by Year 5, not the Year 1 burn rate.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"timeline\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"step-circle step5\"\u003e5\u003c\/div\u003e\n\u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003ch3\u003e\u003cspan style=\"color: #126CFF;\"\u003eOverhead and marketing efficiency\u003c\/span\u003e\u003c\/h3\u003e\u003cbr\u003e\n\u003cdiv class=\"container_new_design_timeline\"\u003e\n  \u003cdiv class=\"right-row6\"\u003e\n    \u003ch3\u003eOverhead and marketing efficiency\u003c\/h3\u003e\n    \u003cp\u003eKitchen rent is part of the break-even math, not just a bill. Fixed overhead is \u003cstrong\u003e$9,400 per month\u003c\/strong\u003e, marketing starts at \u003cstrong\u003e60% of revenue\u003c\/strong\u003e and drops to \u003cstrong\u003e40%\u003c\/strong\u003e, and payment processing stays at \u003cstrong\u003e30%\u003c\/strong\u003e. Early on, that cost stack can swallow most of each booking, so owner pay stays low until the calendar fills.\u003c\/p\u003e\n    \u003cp\u003eHere’s the quick math: at \u003cstrong\u003e$10,000\u003c\/strong\u003e of revenue, marketing and processing take \u003cstrong\u003e$9,000\u003c\/strong\u003e before the \u003cstrong\u003e$9,400\u003c\/strong\u003e overhead hits. That is why reserves matter; minimum cash need reaches \u003cstrong\u003e$646,000 in Month 13\u003c\/strong\u003e. If class volume slips, the studio still pays rent, software, insurance, cleaning, and admin supplies.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"left-row6\"\u003e\n    \u003cdiv class=\"tips-box\"\u003e\n      \u003ch3\u003eCut cost drag per seat\u003c\/h3\u003e\n      \u003cp\u003eTrack revenue per class, not just total bookings. The key inputs are seats sold, class price, marketing spend, payment fees, and the \u003cstrong\u003e$9,400\u003c\/strong\u003e fixed overhead. When marketing falls from \u003cstrong\u003e60%\u003c\/strong\u003e to \u003cstrong\u003e40%\u003c\/strong\u003e, more cash stays in the business, but only if paid seats keep pace.\u003c\/p\u003e\n      \u003cul class=\"lst_crct_blog\"\u003e\n        \u003cli\u003eTrack occupancy by week.\u003c\/li\u003e\n        \u003cli\u003eMatch ad spend to booked seats.\u003c\/li\u003e\n        \u003cli\u003eUse deposits to lock demand.\u003c\/li\u003e\n        \u003cli\u003ePush waitlists before discounting.\u003c\/li\u003e\n        \u003cli\u003eWatch runway against \u003cstrong\u003eMonth 13\u003c\/strong\u003e.\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cp\u003eIf weekday demand stays weak, the studio still carries rent and promotion, so each empty seat cuts owner income. The fix is simple: fill the calendar first, then keep marketing efficient.\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;\"\u003eOwner income scenario table objective\n\u003c\/span\u003e\u003c\/h2\u003e\n\u003csection class=\"fml-scenario-table\" aria-label=\"Dim Sum Cooking Classes Owner Income Scenarios\" data-site-name=\"Financial Models Lab\" data-site-url=\"https:\/\/financialmodelslab.com\" data-source-title=\"Dim Sum Cooking Classes Owner Income Scenarios\" data-note-label=\"Planning note\" data-note-text=\"Scenario ranges are researched planning assumptions only, 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 pay moves with occupancy, class mix, and staffing. Year 1 is loss-making, Year 2 can support pay after reserves, and Year 5 has the most distribution room before taxes.\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\u003eLean, base, and high owner income paths for a dim sum cooking school.\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=\"Lean Case\"\u003e\n\u003cspan class=\"fml-scenario-column-title\"\u003eLean Case\u003c\/span\u003e\u003cspan class=\"fml-scenario-badge is-soft\"\u003eLean case\u003c\/span\u003e\n\u003c\/th\u003e\n\u003cth class=\"fml-scenario-table-column\" scope=\"col\" data-export-value=\"Base Case\"\u003e\n\u003cspan class=\"fml-scenario-column-title\"\u003eBase Case\u003c\/span\u003e\u003cspan class=\"fml-scenario-badge is-soft\"\u003eBase case\u003c\/span\u003e\n\u003c\/th\u003e\n\u003cth class=\"fml-scenario-table-column\" scope=\"col\" data-export-value=\"High Case\"\u003e\n\u003cspan class=\"fml-scenario-column-title\"\u003eHigh Case\u003c\/span\u003e\u003cspan class=\"fml-scenario-badge is-warning\"\u003eHigh case\u003c\/span\u003e\n\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr data-scenario-row\u003e\n\u003cth class=\"fml-scenario-row-heading\" scope=\"row\" data-export-value=\"Launch model\"\u003e\u003cspan class=\"fml-scenario-row-heading-inner\"\u003e\u003cspan class=\"fml-scenario-row-icon is-launch\" aria-hidden=\"true\"\u003e\u003cimg class=\"fml-scenario-row-icon-img\" src=\"\/cdn\/shop\/files\/scenario-launch-model.svg\" alt=\"Launch model icon\" loading=\"lazy\"\u003e\u003c\/span\u003e\u003cspan\u003e\u003cspan class=\"fml-scenario-row-title\"\u003eLaunch model\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/th\u003e\n\u003ctd data-export-value=\"A slow ramp keeps owner pay tight while the studio builds fill rates and repeat bookings.\"\u003eA slow ramp keeps owner pay tight while the studio builds fill rates and repeat bookings.\u003c\/td\u003e\n\u003ctd data-export-value=\"A steadier year supports owner pay once the studio clears reserves and stays full enough to cover overhead.\"\u003eA steadier year supports owner pay once the studio clears reserves and stays full enough to cover overhead.\u003c\/td\u003e\n\u003ctd data-export-value=\"A strong scale-up creates larger owner distributions, but only after the business funds payroll, overhead, and cash reserves.\"\u003eA strong scale-up creates larger owner distributions, but only after the business funds payroll, overhead, and cash reserves.\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-scenario-row\u003e\n\u003cth class=\"fml-scenario-row-heading\" scope=\"row\" data-export-value=\"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 runs at 45% occupancy with $381,000 revenue and -$72,000 EBITDA, using 12 public workshops, 20 corporate events, and 10 masterclasses at $120, $180, and $250.\"\u003eYear 1 runs at 45% occupancy with $381,000 revenue and -$72,000 EBITDA, using 12 public workshops, 20 corporate events, and 10 masterclasses at $120, $180, and $250.\u003c\/td\u003e\n\u003ctd data-export-value=\"Year 2 runs at 60% occupancy with $721,000 revenue and $183,000 EBITDA, using 12 public workshops, 20 corporate events, and 10 masterclasses at $125, $185, and $260.\"\u003eYear 2 runs at 60% occupancy with $721,000 revenue and $183,000 EBITDA, using 12 public workshops, 20 corporate events, and 10 masterclasses at $125, $185, and $260.\u003c\/td\u003e\n\u003ctd data-export-value=\"Year 5 runs at 90% occupancy with $2.647M revenue and $1.676M EBITDA, using 15 public workshops, 25 corporate events, and 12 masterclasses at $140, $215, and $300.\"\u003eYear 5 runs at 90% occupancy with $2.647M revenue and $1.676M EBITDA, using 15 public workshops, 25 corporate events, and 12 masterclasses at $140, $215, and $300.\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=\"45% occupancy; $381k revenue; -$72k EBITDA; 12 public workshops, 20 corporate events, 10 masterclasses; fixed payroll and rent\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003e45% occupancy\u003c\/li\u003e\n\u003cli\u003e$381k revenue\u003c\/li\u003e\n\u003cli\u003e-$72k EBITDA\u003c\/li\u003e\n\u003cli\u003e12 public workshops, 20 corporate events, 10 masterclasses\u003c\/li\u003e\n\u003cli\u003efixed payroll and rent\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/td\u003e\n\u003ctd data-export-value=\"60% occupancy; higher class prices; $721k revenue; $183k EBITDA; payroll and reserve buffer\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003e60% occupancy\u003c\/li\u003e\n\u003cli\u003ehigher class prices\u003c\/li\u003e\n\u003cli\u003e$721k revenue\u003c\/li\u003e\n\u003cli\u003e$183k EBITDA\u003c\/li\u003e\n\u003cli\u003epayroll and reserve buffer\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/td\u003e\n\u003ctd data-export-value=\"90% occupancy; $2.647M revenue; $1.676M EBITDA; larger assistant and porter payroll; strong distribution capacity\"\u003e\u003cul class=\"fml-scenario-list\"\u003e\n\u003cli\u003e90% occupancy\u003c\/li\u003e\n\u003cli\u003e$2.647M revenue\u003c\/li\u003e\n\u003cli\u003e$1.676M EBITDA\u003c\/li\u003e\n\u003cli\u003elarger assistant and porter payroll\u003c\/li\u003e\n\u003cli\u003estrong distribution capacity\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-scenario-row\u003e\n\u003cth class=\"fml-scenario-row-heading\" scope=\"row\" data-export-value=\"Owner income range\"\u003e\u003cspan class=\"fml-scenario-row-heading-inner\"\u003e\u003cspan class=\"fml-scenario-row-icon is-range\" aria-hidden=\"true\"\u003e\u003cimg class=\"fml-scenario-row-icon-img\" src=\"\/cdn\/shop\/files\/scenario-planning-range.svg\" alt=\"Owner income range icon\" loading=\"lazy\"\u003e\u003c\/span\u003e\u003cspan\u003e\u003cspan class=\"fml-scenario-row-title\"\u003eOwner income range\u003c\/span\u003e\u003cspan class=\"fml-scenario-row-subtitle\"\u003eBefore owner reserves\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/th\u003e\n\u003ctd data-export-value=\"No owner draw yet\"\u003e\n\u003cstrong class=\"fml-scenario-range\"\u003eNo owner draw yet\u003c\/strong\u003e\u003cspan class=\"fml-scenario-badge is-soft\"\u003eLean case\u003c\/span\u003e\n\u003c\/td\u003e\n\u003ctd data-export-value=\"Owner pay after reserves\"\u003e\n\u003cstrong class=\"fml-scenario-range\"\u003eOwner pay after reserves\u003c\/strong\u003e\u003cspan class=\"fml-scenario-badge is-soft\"\u003eBase case\u003c\/span\u003e\n\u003c\/td\u003e\n\u003ctd data-export-value=\"Large distribution room\"\u003e\n\u003cstrong class=\"fml-scenario-range\"\u003eLarge distribution room\u003c\/strong\u003e\u003cspan class=\"fml-scenario-badge is-warning\"\u003eHigh case\u003c\/span\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-scenario-row\u003e\n\u003cth class=\"fml-scenario-row-heading\" scope=\"row\" data-export-value=\"Best fit\"\u003e\u003cspan class=\"fml-scenario-row-heading-inner\"\u003e\u003cspan class=\"fml-scenario-row-icon is-fit\" aria-hidden=\"true\"\u003e\u003cimg class=\"fml-scenario-row-icon-img\" src=\"\/cdn\/shop\/files\/scenario-best-fit.svg\" alt=\"Best fit icon\" loading=\"lazy\"\u003e\u003c\/span\u003e\u003cspan\u003e\u003cspan class=\"fml-scenario-row-title\"\u003eBest fit\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/th\u003e\n\u003ctd data-export-value=\"Best for founders stress-testing a launch year with weak fill, heavy payroll, and no reliable owner draw.\"\u003eBest for founders stress-testing a launch year with weak fill, heavy payroll, and no reliable owner draw.\u003c\/td\u003e\n\u003ctd data-export-value=\"Best for an owner planning modest distributions after keeping cash back for rent, staff, and seasonality.\"\u003eBest for an owner planning modest distributions after keeping cash back for rent, staff, and seasonality.\u003c\/td\u003e\n\u003ctd data-export-value=\"Best for a mature studio testing upside, stronger cash extraction, and higher tax exposure before owner distributions.\"\u003eBest for a mature studio testing upside, stronger cash extraction, and higher tax exposure before owner distributions.\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 only, 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":49303684055283,"sku":"dim-sum-classes-owner-makes","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/dim-sum-classes-owner-makes.webp?v=1782680968","url":"https:\/\/financialmodelslab.com\/products\/dim-sum-classes-owner-makes","provider":"Financial Models Lab","version":"1.0","type":"link"}