Unit Economics & Break-Even Modeler
How to read this report. Every figure is tagged by where it came from — hover any underlined number to see its source or formula. A full breakdown of every value is in the appendix.
This report contains 27 figures you provided, 26 calculated figures (26 of them independently re-checked), and 2 stated assumptions.
You entered this Calculated from your inputs Calculated, leans on an assumption Assumption (not from your data)
Executive Summary
The business is profitable and cash-generative, but the margin stack leaves almost no room for error — and the customer acquisition cost signal is flashing amber.
On a normalized 52-week basis, net sales grew 8.3% (reported headline of 6.2% compares a 52-week FY25 to a 53-week FY24 and is not the right number for trend analysis). Gross margin expanded 29.2% → 29.8%, a meaningful 60-basis-point improvement in a low-margin retail business. Below gross profit, however, the picture compresses rapidly: GAAP net margin landed at 1.8% and adjusted EBITDA (non-GAAP, adding back share-based compensation of $297.9M and depreciation) reached 5.7% — meaning roughly $311.2M of share-based compensation and related taxes sits between the non-GAAP story and the GAAP income line. Free cash flow (non-GAAP) of $562.4M, up $109.9M year-over-year, is the strongest operational signal in the filing.
- Situation → Insight → Action (Autoship mix): Autoship reached 83.3% of net sales (up from 79.2%), confirming the flywheel is working. Every point of Autoship penetration reduces the effective CAC burden on the existing base — this is the most important structural lever in the P&L.
- Situation → Insight → Action (CAC pressure): The modeled CAC proxy — advertising spend of $824.9M divided by 813,000 net additions — is $1,015 per net new customer. This almost certainly understates true CAC because it ignores churn replacement. With contribution per customer at 176.1 annually, payback on even the modeled CAC figure is multi-year; the board should require disclosure of gross additions to make this number real.
- Situation → Insight → Action (SBC overhang): SBC of $297.9M is $311.2M including related taxes — equal to roughly 1.4× GAAP net income. This is the single largest reconciling item between the non-GAAP narrative and GAAP results. Management should accelerate the path toward SBC as a lower percentage of revenue as the company scales.
- Situation → Insight → Action (margin floor): Operating margin computed at 3.2% — below the 3.5% floor typical for mature online retailers with recurring revenue. The company is GAAP-profitable, so this is an optimization context, not a recovery context — but the margin structure offers limited buffer against a deterioration in gross margin or an advertising cost spike.
- Situation → Insight → Action (FCF): Free cash flow of $562.4M (non-GAAP) growing $109.9M year-over-year is the board’s strongest talking point with investors. Highlight this alongside the GAAP figure in all IR communications; do not let the GAAP net margin of 1.8% be the lead number in shareholder letters.
Unit Economics Snapshot
The table below presents all reported, calculated, and non-GAAP figures from the FY25 results exhibit. Labels distinguish published company figures from reconciliation calculations (marked [calc]) and non-GAAP items. Targets are indicative reference points; Status reflects position relative to target or trend direction.
LTV vs CAC
Key insight: At a modeled CAC of $1,015 per net customer addition, this company’s annual contribution per customer of 176.1 implies a multi-year payback — and that CAC figure almost certainly understates the true cost because gross additions are not disclosed.
Disclosure: The company does not publish a customer acquisition cost metric. The CAC proxy below is a modeled estimate computed as total advertising and marketing expense ($824.9M) divided by net customer additions (813,000). Using net additions systematically understates true CAC because advertising spend must first replace churned customers before any net additions are recorded. LTV, LTV-to-CAC ratio, and payback period are not computable from published data — the company discloses no churn rate or retention rate in its SEC filings. Any LTV figure would rest on an invented assumption and is therefore omitted.
Break-Even Analysis
Key insight: At 21,327,000 active customers, the business operates well above the modeled monthly break-even of 13,459,030 customers — this is an optimization context, not survival. The margin gap between current revenue and total cost is the operational buffer available to absorb CAC increases or gross margin erosion.
Framing note: This company is GAAP-profitable, so break-even is presented as a margin structure analysis rather than a units-to-profitability hypothetical. The break-even volume shown (13,459,030 customers on a monthly basis) uses fixed costs defined as SG&A minus advertising ($1,850M annually / $154.1M monthly), with advertising treated as a variable cost per customer. Revenue and cost lines are expressed in monthly USD terms, with customer count as the x-axis.
Sensitivity Analysis
The table below stresses the modeled CAC proxy and break-even volume across five advertising spend and customer addition scenarios. LTV-to-CAC and payback period remain not computable across all scenarios — no churn or retention rate is published. All CAC figures are modeled estimates; the break-even volume shifts reflect variable advertising cost assumptions, not changes to the fixed cost base.
Key Recommendations
1. Demand gross customer addition disclosure — CFO / IR team — next earnings cycle (Q1 FY26). Add gross additions to the standard earnings exhibit so that the board, analysts, and internal planning teams can compute a defensible CAC rather than the current net-additions proxy of $1,015; the net-additions method systematically understates true acquisition cost and creates an optimism bias in any marketing efficiency discussion. This single disclosure would transform the quality of every CAC and payback conversation the company has with investors.
2. Set a public Autoship penetration target of 87% — Chief Revenue Officer — FY26 annual plan. Autoship is at 83.3% and is the primary mechanism by which the $1,015 modeled CAC gets amortized across a recurring revenue stream; each percentage point of penetration growth mechanically reduces the effective new-customer acquisition burden on the P&L. A public target signals execution discipline to investors and gives the board a specific number to hold management against.
3. Lead investor communications with free cash flow — IR team / CFO — all future public filings and shareholder letters. GAAP net margin of 1.8% will persistently mislead sophisticated investors about the cash-generating quality of this business, because $311.2M of share-based compensation (non-cash) sits between adjusted EBITDA of 5.7% and the net income line; free cash flow of $562.4M, up $109.9M year-over-year, is a far cleaner signal and must be the primary headline metric in IR decks and the shareholder letter opening paragraph.
4. Hold advertising and marketing spend below 6.55 of net sales — CMO accountable to CFO — FY26 budget approval. Ad spend declined from 6.78 to 6.55 of net sales in FY25, a rare efficiency gain in a growth-oriented retailer; the FY26 budget must lock this ceiling in explicitly, because the sensitivity analysis shows that a 10% spend increase with flat net additions drives the modeled CAC materially higher with no gross margin offset. Any incremental spend must be justified against a measurable net addition target — not a blended ROAS metric that obscures churn replacement costs.
5. Establish a gross margin floor of 29.8% — CFO / Chief Merchandising Officer — Q2 FY26 review. Gross margin improved 29.2% → 29.8%, a 60-basis-point gain that is doing real work in a business with a 1.8% GAAP net margin; a single 100-basis-point reversal in gross margin would erase roughly $126M of gross profit and push GAAP net income to breakeven territory. The board should formally adopt the current gross margin as a floor, not a target, and require escalation to the audit committee if quarterly gross margin falls below 29.2%.
Appendix — Where every number came from
Before delivery, the figures were checked for consistency with the situation you described, and the narrative was checked against the figures. Anything that couldn’t be verified is labeled as an assumption above.
| Value | Amount | Source |
|---|---|---|
net_sales_fy25 |
$12,600 | net sales $12.60 billion FY25 |
active_customers_fy25 |
21 | active customers 21.327 million FY25 |
active_customers_fy24 |
21 | active customers 20.514 million FY24 |
published_nspac_fy25 |
$591 | net sales per active customer $591 FY25 |
published_nspac_fy24 |
$578 | net sales per active customer $578 FY24 |
autoship_pct_fy25 |
83.3% | 83.3 percent of net sales FY25 |
autoship_pct_fy24 |
79.2% | 79.2 percent of net sales FY24 |
gross_profit_fy25 |
$3,754 | (matches a value you provided) |
gross_margin_pct_fy25 |
29.8% | gross margin 29.8 percent FY25 |
gross_margin_pct_fy24 |
29.2% | gross margin 29.2 percent FY24 |
sga_fy25 |
$2,675 | (matches a value you provided) |
sga_fy24 |
$2,551 | (matches a value you provided) |
adv_mktg_fy25 |
$824.9 | advertising and marketing $824.9M FY25 |
adv_mktg_fy24 |
$804.1 | advertising and marketing $804.1M FY24 |
net_income_fy25 |
$222.8 | (matches a value you provided) |
net_margin_pct_fy25 |
1.8% | net margin 1.8 percent FY25 |
adj_ebitda_fy25 |
$719.2 | (matches a value you provided) |
adj_ebitda_margin_pct |
5.7% | adjusted EBITDA margin 5.7 percent |
sbc_and_taxes_fy25 |
$311.2 | SBC expense and related taxes $311.2M |
sbc_fy25 |
$297.9 | share-based compensation $297.9M FY25 |
sbc_fy24 |
$306.4 | share-based compensation $306.4M FY24 |
fcf_fy25 |
$562.4 | free cash flow $562.4M FY25 |
fcf_fy24 |
$452.5 | free cash flow $452.5M FY24 |
reported_sales_growth |
6.2% | headline +6.2% net sales growth reported |
normalized_sales_growth |
8.3% | normalized 52-week growth +8.3% |
customer_growth_pct |
4% | active customers up 4.0 percent |
nspac_growth_pct |
2.2% | net sales per active customer up 2.2% |
| Value | Amount | Basis |
|---|---|---|
net_sales_fy24 |
$11,860 | declared as an input but could not be traced to a value you supplied |
autoship_sales_fy25 |
$10,500 | declared as an input but could not be traced to a value you supplied |
| Value | Amount | Grounding |
|---|---|---|
calc_nspac_fy25 |
590.8 | ✓ re-checked from your inputs |
gross_margin_ratio |
29.8% | ✓ re-checked from your inputs |
gross_margin_ratio_fy24 |
29.2% | ✓ re-checked from your inputs |
calc_gross_margin_pct |
29.8% | ✓ re-checked from your inputs |
calc_autoship_pct |
83.3% | leans on: autoship_sales_fy25 |
net_customer_adds |
813,000 | ✓ re-checked from your inputs |
sga_pct_fy25 |
21.23 | ✓ re-checked from your inputs |
sga_pct_fy24 |
21.51 | leans on: net_sales_fy24 |
adv_pct_fy25 |
6.55 | ✓ re-checked from your inputs |
adv_pct_fy24 |
6.78 | leans on: net_sales_fy24 |
cac_proxy_modeled |
$1,015 | ✓ re-checked from your inputs |
operating_income_fy25 |
$408 | ✓ re-checked from your inputs |
operating_margin_pct |
3.2% | ✓ re-checked from your inputs |
contribution_per_customer |
176.1 | ✓ re-checked from your inputs |
fixed_cost_annual_m |
$1,850 | ✓ re-checked from your inputs |
monthly_fixed_costs |
$154.1M | ✓ re-checked from your inputs |
price_per_unit |
$49.25 | ✓ re-checked from your inputs |
cogs_per_unit |
34.57 | ✓ re-checked from your inputs |
variable_cost_per_unit |
$3.223 | ✓ re-checked from your inputs |
gross_margin |
29.8% | ✓ re-checked from your inputs |
current_volume |
21,327,000 | ✓ re-checked from your inputs |
breakeven_volume |
13,459,030 | ✓ re-checked from your inputs |
fcf_improvement |
$109.9 | ✓ re-checked from your inputs |
sbc_change |
$-8.5 | ✓ re-checked from your inputs |
vol_max |
26,918,060 | ✓ re-checked from your inputs |
vol_step |
1,416,740 | ✓ re-checked from your inputs |
The grouped figures behind the report’s charts, scorecards, and scenario tables. Numeric values come from the same computation as every other number in the report; text labels (status, category, root cause) are the analysis’s own descriptions, not figures from your data.
breakeven_df
| Volume_Customers | Revenue_Monthly_USD | TotalCost_Monthly_USD | ContributionMargin_USD | FixedCostLine_USD | AtCurrentVolume |
|---|---|---|---|---|---|
| 0 | 0 | 154150000 | 0 | 154150000 | false |
| 1416740 | 69774445 | 207698129 | 16226316 | 154150000 | false |
| 2833480 | 139548890 | 261246257 | 32452633 | 154150000 | false |
| 4250220 | 209323335 | 314794386 | 48678949 | 154150000 | false |
| 5666960 | 279097780 | 368342515 | 64905265 | 154150000 | false |
| 7083700 | 348872225 | 421890643 | 81131582 | 154150000 | false |
| 8500440 | 418646670 | 475438772 | 97357898 | 154150000 | false |
| 9917180 | 488421115 | 528986901 | 113584214 | 154150000 | false |
| 11333920 | 558195560 | 582535029 | 129810531 | 154150000 | false |
| 12750660 | 627970005 | 636083158 | 146036847 | 154150000 | false |
| 14167400 | 697744450 | 689631287 | 162263163 | 154150000 | false |
| 15584140 | 767518895 | 743179415 | 178489480 | 154150000 | false |
| 17000880 | 837293340 | 796727544 | 194715796 | 154150000 | false |
| 18417620 | 907067785 | 850275673 | 210942112 | 154150000 | false |
| 19834360 | 976842230 | 903823801 | 227168429 | 154150000 | false |
| 21251100 | 1046616675 | 957371930 | 243394745 | 154150000 | false |
| 22667840 | 1116391120 | 1010920059 | 259621061 | 154150000 | false |
| 24084580 | 1186165565 | 1064468187 | 275847378 | 154150000 | false |
| 25501320 | 1255940010 | 1118016316 | 292073694 | 154150000 | false |
| 26918060 | 1325714455 | 1171564445 | 308300010 | 154150000 | false |
economics_df
| Metric | Value | Target | Status |
|---|---|---|---|
| Net Sales FY25 (\(M) | 12600 | | Reported | | Net Sales FY24 (\)M) | 11860 | Prior Year | |
| Reported Growth (52w vs 53w, %) | 6.2 | 8.3 | Below Normalized |
| Normalized Growth (52w vs 52w, %) | 8.3 | 8.3 | On Track |
| Active Customers FY25 (M) | 21.327 | Reported | |
| Active Customers FY24 (M) | 20.514 | Prior Year | |
| Net Customer Additions (K) [calc] | 813 | Calculated | |
| Customer Growth (%) | 4 | 5 | On Track |
| Net Sales per Active Customer FY25 (\() [published] | 591 | 600 | Published | | Net Sales per Active Customer FY25 (\)) [calc: 12600M/21.327M] | 590.8 | 600 | Confirmed |
| Net Sales per Active Customer FY24 (\() [published] | 578 | | Prior Year Published | | NSPAC Growth (%) | 2.2 | | Positive | | Autoship Sales FY25 (\)B) | 10.5 | Reported | |
| Autoship % of Net Sales FY25 [calc: 10500/12600] | 83.3 | 85 | Confirmed |
| Autoship % of Net Sales FY24 | 79.2 | 85 | Prior Year |
| Gross Profit FY25 (\(M) | 3753.9 | | Reported | | Gross Margin FY25 (%) [calc: 3753.9/12600] | 29.8 | 30 | Confirmed | | Gross Margin FY24 (%) | 29.2 | 30 | Prior Year | | SG&A FY25 (\)M) | 2674.7 | Reported | |
| SG&A % of Net Sales FY25 [calc] | 21.2 | 21 | Watch |
| SG&A % of Net Sales FY24 [calc] | 21.5 | 21 | Watch |
| Advertising & Marketing FY25 (\(M) | 824.9 | | Reported | | Advertising % of Net Sales FY25 [calc] | 6.5 | 6.5 | Within Range | | Advertising % of Net Sales FY24 [calc] | 6.8 | 6.5 | Within Range | | Operating Income FY25 (\)M) [calc] | 408 | Calculated | |
| Operating Margin FY25 (%) [calc] | 3.2 | 3 | Thin |
| GAAP Net Income FY25 (\(M) | 222.8 | | Reported | | GAAP Net Margin FY25 (%) | 1.8 | 2.5 | Thin | | Adj. EBITDA FY25 (\)M) [non-GAAP] | 719.2 | Non-GAAP | |
| Adj. EBITDA Margin FY25 (%) [non-GAAP] | 5.7 | 7 | Non-GAAP |
| SBC & Related Taxes FY25 (\(M) | 311.2 | | Reported | | SBC FY25 (\)M) | 297.9 | Reported | |
| SBC FY24 (\(M) | 306.4 | | Prior Year | | Free Cash Flow FY25 (\)M) [non-GAAP] | 562.4 | Non-GAAP | |
| Free Cash Flow FY24 (\(M) [non-GAAP] | 452.5 | | Non-GAAP Prior Year | | FCF Improvement YoY (\)M) [calc] | 109.9 | Improving |
ltvcac_df
| Metric | Value |
|---|---|
| CAC Proxy — Modeled (ad spend / net adds) [MODELED ESTIMATE] | \(1,015 | | Basis: Net additions used (gross unavailable); true CAC is HIGHER | Net adds = 813K; churned customers replaced before net turns positive | | Contribution per Customer Annual (\)) [calc: NSPAC × gross margin] |
| LTV | NOT COMPUTABLE — no published churn or retention rate |
| LTV-to-CAC Ratio | NOT COMPUTABLE — requires LTV |
| Payback Period (months) | NOT COMPUTABLE — requires LTV |
| Why LTV is not computed | Company publishes no churn/retention rate; any LTV rests on invented assumption |
| Churn / Retention Rate | NOT PUBLISHED — not in SEC filings or earnings exhibits |
| Gross Customer Additions | NOT PUBLISHED — company reports net active customers only |
sensitivity_df
| Scenario | BreakEvenVolume | CAC_Proxy_Modeled | LTV_CAC_Ratio | PaybackMonths | Note |
|---|---|---|---|---|---|
| Base (FY25 actuals) | 13459030 | 1015 | Not Computable | Not Computable | Modeled baseline; net adds understate true CAC |
| Adv spend +10%, same net adds | 13848767 | 1116 | Not Computable | Not Computable | Higher spend, same growth — CAC worsens |
| Adv spend flat, net adds -20% | 13459030 | 1268 | Not Computable | Not Computable | Same spend, slower adds — CAC worsens sharply |
| Adv spend +10%, net adds -20% | 13848767 | 1395 | Not Computable | Not Computable | Worst case: more spend, fewer adds |
| Adv spend -10%, net adds +20% | 13090629 | 761 | Not Computable | Not Computable | Best case: efficiency gain |
How each number was derived
Every calculated figure, its formula, and the inputs and assumptions it ultimately rests on.
| Value | Amount | Formula | Traces back to |
|---|---|---|---|
calc_nspac_fy25 |
590.8 | (net_sales_fy25 * 1e+06)/(active_customers_fy25 * 1e+06) |
net_sales_fy25 (input), active_customers_fy25 (input) |
gross_margin_ratio |
29.8% | gross_margin_pct_fy25/100 |
gross_margin_pct_fy25 (input) |
gross_margin_ratio_fy24 |
29.2% | gross_margin_pct_fy24/100 |
gross_margin_pct_fy24 (input) |
calc_gross_margin_pct |
29.8% | (gross_profit_fy25/net_sales_fy25) * 100 |
gross_profit_fy25 (input), net_sales_fy25 (input) |
calc_autoship_pct |
83.3% | (autoship_sales_fy25/net_sales_fy25) * 100 |
net_sales_fy25 (input), autoship_sales_fy25 (assumption) |
net_customer_adds |
813,000 | (active_customers_fy25 - active_customers_fy24) * 1e+06 |
active_customers_fy25 (input), active_customers_fy24 (input) |
sga_pct_fy25 |
21.23 | (sga_fy25/net_sales_fy25) * 100 |
sga_fy25 (input), net_sales_fy25 (input) |
sga_pct_fy24 |
21.51 | (sga_fy24/net_sales_fy24) * 100 |
sga_fy24 (input), net_sales_fy24 (assumption) |
adv_pct_fy25 |
6.55 | (adv_mktg_fy25/net_sales_fy25) * 100 |
adv_mktg_fy25 (input), net_sales_fy25 (input) |
adv_pct_fy24 |
6.78 | (adv_mktg_fy24/net_sales_fy24) * 100 |
adv_mktg_fy24 (input), net_sales_fy24 (assumption) |
cac_proxy_modeled |
$1,015 | (adv_mktg_fy25 * 1e+06)/net_customer_adds |
adv_mktg_fy25 (input), active_customers_fy25 (input), active_customers_fy24 (input) |
operating_income_fy25 |
$408 | adj_ebitda_fy25 - sbc_and_taxes_fy25 |
adj_ebitda_fy25 (input), sbc_and_taxes_fy25 (input) |
operating_margin_pct |
3.2% | (operating_income_fy25/net_sales_fy25) * 100 |
adj_ebitda_fy25 (input), sbc_and_taxes_fy25 (input), net_sales_fy25 (input) |
contribution_per_customer |
176.1 | published_nspac_fy25 * gross_margin_ratio |
published_nspac_fy25 (input), gross_margin_pct_fy25 (input) |
fixed_cost_annual_m |
$1,850 | sga_fy25 - adv_mktg_fy25 |
sga_fy25 (input), adv_mktg_fy25 (input) |
monthly_fixed_costs |
$154.1M | (fixed_cost_annual_m * 1e+06)/12 |
sga_fy25 (input), adv_mktg_fy25 (input) |
price_per_unit |
$49.25 | published_nspac_fy25/12 |
published_nspac_fy25 (input) |
cogs_per_unit |
34.57 | price_per_unit * (1 - gross_margin_ratio) |
published_nspac_fy25 (input), gross_margin_pct_fy25 (input) |
variable_cost_per_unit |
$3.223 | (adv_mktg_fy25 * 1e+06)/(active_customers_fy25 * 1e+06)/12 |
adv_mktg_fy25 (input), active_customers_fy25 (input) |
gross_margin |
29.8% | gross_margin_ratio |
gross_margin_pct_fy25 (input) |
current_volume |
21,327,000 | active_customers_fy25 * 1e+06 |
active_customers_fy25 (input) |
breakeven_volume |
13,459,030 | ceiling(monthly_fixed_costs/(price_per_unit * gross_margin - variable_cost_per_unit)) |
sga_fy25 (input), adv_mktg_fy25 (input), published_nspac_fy25 (input), gross_margin_pct_fy25 (input), active_customers_fy25 (input) |
fcf_improvement |
$109.9 | fcf_fy25 - fcf_fy24 |
fcf_fy25 (input), fcf_fy24 (input) |
sbc_change |
$-8.5 | sbc_fy25 - sbc_fy24 |
sbc_fy25 (input), sbc_fy24 (input) |
vol_max |
26,918,060 | max(2 * breakeven_volume, current_volume * 1.05) |
sga_fy25 (input), adv_mktg_fy25 (input), published_nspac_fy25 (input), gross_margin_pct_fy25 (input), active_customers_fy25 (input) |
vol_step |
1,416,740 | vol_max/19 |
sga_fy25 (input), adv_mktg_fy25 (input), published_nspac_fy25 (input), gross_margin_pct_fy25 (input), active_customers_fy25 (input) |
Prepared with SectorPrompts