Working prototype · public data only · prepared for Mattel product supply

Margin Radar — Mattel's last two margin events, replayed from public data.

The 2022 inventory glut and the 2025–26 tariff squeeze were both visible in free public data months before they hit the P&L. Drag the scrubber: at every quarter you see only what was publicly knowable then — Mattel's own 10-Qs, retailer 8-Ks, Circana POS releases, the Drewry container index — and the alert a simple, fully disclosed composite would have issued.

01 · The replay

One index, four public inputs, no hindsight.

The radar score is a transparent rule-based composite — inventory-to-sales z-score (40%), retailer/policy commentary flag (25%), toy POS momentum (20%), freight stress (15%). Weights, formulas, and thresholds are in the brief below; nothing is fitted to the outcome.

2019Q1

Showing only data publicly available as of 2019Q1.

2019Q1

composite —

Ink line: GAAP gross margin (right axis). Red line: inventory ÷ trailing-4-quarter revenue (left axis), z-scored against the 2019–20 baseline (shaded). Flags are dated public statements. Series plotted at fiscal quarter end; 10-Qs land ~3–4 weeks after close, which trims the lead time by about a month, not by quarters.

RADAR · 2019Q1

02 · The decomposition

The shipping tax vs. the part that eats margin.

Two different things hit gross margin in 2021–23 and they demand opposite responses. The container index separates them cleanly — because the freight shock ended and the margin damage didn't.

Red area: Drewry World Container Index, selected readings, $/40ft (left axis, log-scaled). Ink line: Mattel GAAP gross margin (right axis). By mid-2023 the WCI was back to ~$1,700 — 2019 levels — while Q1 2023 gross margin printed 40.0%, about 640bp below the prior year. The freight tax had been refunded; the glut had not.

A Hormuz closure is “just a shipping tax.” Agreed — and the index can price that tax in near-real time. The decomposition exists for the other thing: the structural glut that keeps eating margin after the tax is refunded. — borrowing Mattel supply-chain leadership's own framing
Temporary · the shipping tax

2021: freight at 7× baseline

WCI ran from ~$1,800 to a $10,377/FEU peak (Sep 2021). Mattel disclosed 35–50% freight-and-resin inflation and ~$100M of orders it couldn't fulfill in Q3 2021. Painful — but mean-reverting. When rates normalized in 2023, this component gave the margin back.

Structural · the glut

2022: inventory at 3σ while demand stalled

Inventory-to-sales hit 0.20 in Q2 2022 (vs. a 0.14 baseline) just as Walmart and Target flagged excess discretionary inventory and toy POS growth stalled. That inventory had to be cleared at a discount: −640bp in Q1 2023, with freight already back to normal. This is the component a radar has to catch early — and it did, three quarters out.

03 · The forward test

Same radar, second event: the 2025–26 tariff squeeze.

No retuning — the identical composite, run forward through the tariff episode.

Radar strip (top) and GAAP gross margin (line). The policy flag turns the radar amber from 2025Q1 (Feb 1 tariff order) through Q3; the hit lands in 2025Q4 (−490bp YoY) and 2026Q1 (adjusted GM −450bp YoY, of which a disclosed 240bp is tariffs).

Honest limits, stated up front: a glut radar reads a tariff as a policy flag plus eventual margin erosion — it flags the episode amber three quarters before the 2025Q4/2026Q1 prints, but it cannot size the hit. Sizing needs a forward tariff bridge: HTS 9503 duty schedules and USITC import volumes are public, but pricing elasticity and the nearshoring cost premium are not. That bridge is phase 2, and it requires internal data. Public record alone gets you the warning, not the number.

04 · The brief

What production looks like.

Production shape, radar weights, and honest limits click to expand

Production shape

  • Weekly auto-refresh on public release cadence: Drewry WCI (weekly), Circana POS releases (monthly/quarterly), EDGAR filings as they land (Mattel 10-Qs plus Walmart/Target/Amazon 8-K language scans).
  • Internal extensions (this is where the real lead time lives): SKU-level POS and sell-through, the PO book and open-order aging, vendor lead times and on-time rates, channel inventory weeks-of-supply. Each replaces a quarterly public proxy with a weekly internal signal.
  • Delivery: a static page like this one plus an alert hook (email/Slack). No platform, no subscription; IP transfers.

Radar weights — the whole model

ComponentWeightRule
Inventory pressure0.40z-score of inventory ÷ trailing-4Q revenue vs. the 2019–20 baseline (mean 0.141, σ 0.021); component = clamp((z − 0.5) / 2, 0, 1)
Commentary / policy flag0.251 when a dated public statement is active: retailer 8-K glut language, company-disclosed supply shock, or tariff action; decays to 0.5 the following two quarters
POS momentum0.20latest published Circana/NPD reading: 0 growing · 0.5 stalled/flat · 1 contracting
Freight stress0.15clamp( ln(WCI / 1420) / ln 6, 0, 1) — log distance from the 2019 average, saturating at ~6× baseline

Composite bands: green < 0.30 · amber 0.30–0.55 · red ≥ 0.55. Thresholds were chosen on round numbers, not fitted to the 2022 event; the brief exists so you can audit that claim.

Honest limits

  • Reporting lag: the replay scrubs at fiscal-quarter granularity; each 10-Q is public ~3–4 weeks after quarter close. The 2022Q2 red signal was fully public by late July 2022 — still ~9 months before the Q1 2023 print.
  • Two events is two events. The radar is validated against the glut and the tariff episode, not a library of margin events. Production adds backtests across peers (Hasbro, Funko, VFC) before anyone trusts a threshold.
  • Seasonality: the baseline pools eight 2019–20 quarters; a production version z-scores against same-quarter history once more years accrue.
  • The POS input is categorical here (growing / stalled / contracting from dated press releases) because granular Circana data is paid. That's a feature of the demo — it shows the signal survives coarse inputs — but production should license the monthly series.
  • WCI series is “selected readings”: dated public prints where available (marked in the source comments), interpolated quarter-representative values elsewhere. The weekly licensed series replaces this in production.
  • The forward tariff bridge is phase 2. Elasticity and nearshoring premium are not public; sliders without those inputs would be theater.

05 · Sources

Every series, every flag.