End-of-Quarter Markdown Review
It's the last week of the quarter, and the BlastBox Omega store manager has the usual chore: figure out what's selling, what's dead on the shelf, and what to mark down before the numbers close. Instead of exporting a spreadsheet and squinting at pivot tables, she works the question out loud with the Merch Insights Assistant, starting from a store-wide view and drilling all the way down to a single SKU, week by week, then to a discount she can actually defend.
The conversation
- 1Manager
It's end of quarter and I need to tidy up inventory. Over the last 8 weeks, what's selling and what's just sitting on the shelf? Show me the numbers.
- ◆Agent → Sales & Performance Agent → ManagerSales & Performance Agent · query_sales raw weekly rows, 2026-04-12 → 2026-05-31get_catalog price, unit cost, stock on hand per SKU
The MCP returns raw rows only, no pre-baked analytics, so the skill derives the metrics itself.
sales-analysis-chart runs Python (matplotlib) → velocity, weeks-of-cover, margin → top_sellers.png, slow_movers.png"Here's the quarter. Top sellers (units): MEGA Lizards from Outer Space 408 (68/wk), PulseGrip Pro Controller 310 (51.7/wk), Omega MEGA Edition 240 (40/wk). Slow movers (weeks-of-cover, anything past the 8-week line): OmegaVision VR Headset 72 wks, Cadet Bundle 60, Galaxy Smash 56, Omega Core (1st-gen) 14.5. Charts attached."
- 2Manager
Four slow movers across three categories. Is this a category-wide problem, or just specific products? Break it down.
- ◆Agent (drill-down 1: by category)Sales & Performance Agent · query_sales re-queried per
category(console / game / accessory)"It's not a category problem, it's specific SKUs. Within the same category the spread is huge: MEGA Lizards (game) is your #1 seller while Galaxy Smash (game) is dead stock; PulseGrip (accessory) flies while the VR Headset (accessory) sits. The one place a whole category skews slow is consoles, and that's almost entirely the 1st-gen Omega Core dragging it down."
- 3Manager
The Omega Core is the one I care about, it's last year's console. Pull it on its own, week by week, is it fading or just flat? And how long have we been sitting on it?
- ◆Agent (drill-down 2: single SKU + aging)Sales & Performance Agent · query_sales filtered to
sku = SKU-OMEGA-CORE, week by weekInventory & Fulfillment Agent · get_inventory_aging weeks-in-stock, inbound PO"It's fading, not flat: weekly units run
9 → 8 → 7 → 6 → 6 → 5 → 4 → 3, down about 67% across the window. It's sitting on 75 units with no inbound PO (about 16 weeks of cover at its slowing pace), and it's being phased out by the MEGA Edition. This is the one to act on." - 4Manager
OK. What should I mark down, and by how much? Keep it within policy, this is a promo, not a clearance.
- ◆Agent → Store Policy Agent → ManagerStore Policy Agent · get_markdown_policy "promo" → max 30% off, 15% margin floor, 10% min-useful
The guardrails are never hardcoded in the skill, they come from the Policy Agent and get passed straight into the math.
markdown-optimizer runs Python → per-SKU discount, new price, new margin, binding constraint → markdowns.png"Recommended promo markdowns, all within policy:
- OmegaVision VR Headset · −30% · $199.99 → $139.99 · margin 50.0% (max-discount cap)
- Galaxy Smash · −30% · $49.99 → $34.99 · margin 48.6% (max-discount cap)
- Cadet Bundle · −13.7% · $149.99 → $129.42 · margin 15.0% (margin floor)
- Omega Core (1st-gen) · only −5.9% possible under the floor → flagged for clearance, not promo
The first three are clean promos. The Core can't be meaningfully promoted, want to know why?"
- 5Manager
Yes, why does the Core only get 5.9% when everything else gets 30?
- ◆Agent (drill-down 3: the rationale)
"It's the margin floor, not the 30% cap. The Core costs $320 against a $399.99 price, that's only a 20% starting margin. The 15% floor puts the lowest legal price at $376.47, which is just 5.9% off. That's below the 10% min-useful-promo line, so a promo discount won't move it. Given 75 units, a fading pace, and no inbound PO, the right call is a separate clearance (which needs a manager flag), not this promo."
- 6Manager
Good. Apply the three-item promo set, leave the Core out for a separate clearance decision, and give me a one-pager I can send to the regional team.
- ◆Agent → Managermerch-report-pdf runs reportlab → embeds the charts, the recommendation table, and the clearance note📊 hands back merch_review.pdf
"Done. Promo set applied: VR Headset, Galaxy Smash, and Cadet Bundle, each within the 15% margin floor. Omega Core left out and noted for a separate clearance with a manager flag. The one-pager has the top-seller and slow-mover charts, the markdown table, and the guardrail source. Want me to email it to the regional team?"
What was demonstrated
Drill down without leaving the chat
The manager pivots from a store-wide view, to a per-category breakdown, to one SKU week-by-week, to the reasoning behind a single number. Each follow-up re-queries the raw MCP with sku / category / week filters and re-derives the metrics live.
Charts the agent draws itself
The Sales & Performance MCP returns no analytics, only raw rows. sales-analysis-chart computes velocity, weeks-of-cover, and margin in Python and renders the top-seller, slow-mover, and markdown charts with matplotlib.
Recommendations grounded in policy
Every discount comes from the Store Policy Agent's guardrails, the max-discount cap, the margin floor, and the min-useful threshold, never hardcoded. The optimizer even flags an item a promo can't move and routes it to clearance instead.