AI-Pricing-Agent/ppt.md

290 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
marp: true
title: Pricing & Profitability Agent — Executive Briefing
paginate: true
---
# Pricing & Profitability Agent
### Finding the money we're leaving on the table — one SKU at a time
An AI agent that reads our live Amazon data, tells us **which SKUs actually lose money**, **why**, and **what to do about it** — with the evidence to prove it.
*Executive briefing · Utopia Brands*
---
## The one number that matters
> Across the catalog, **1,053 SKUs are losing money right now.**
>
> That is **$1.17M in the last 30 days** — roughly **$14M/year**.
- Scanned **4,192 SKUs** that had sales (of ~8,728 in the catalog)
- **336 of those losers are fixable by cutting ad spend alone** — no price change, no customer impact
- **736 need a price or cost fix**
The agent didn't estimate this. It read Amazon's own realized profit, SKU by SKU.
---
## Why we couldn't see this before
The number we *thought* was our price was often wrong.
| SKU | What the tool "listed" | What we **actually sold at** |
|---|---|---|
| Microfiber Gusset Pillow (Queen) | **$33.89** | **$23.39** |
- At **$33.89** the SKU looks like a **30% margin hero** — clears target
- At the **real $23.39**, margin is **5.5%** — far below our floor, quietly losing money
- Confirmed three ways: COSMOS realized revenue ÷ units **and** Amazon's live featured offer — they agree to the cent
**The agent always prices on what customers actually paid — not a reference number.**
---
## What the agent does, in one line
> For any SKU, product line, or the whole catalog, it computes the **true profitability**, renders a **verdict**, and shows **every reason and the raw evidence** — read-only, nothing is changed without a human.
**Three ways to run it:**
- **One product** — deep dive with full fee stack + 6-month history
- **A product line** — ranked worst-first, with a suggested price for each
- **The whole catalog** — the money-at-risk scan that found the $14M
---
## How it works — the pipeline
```
↓ Fetch fees + the REAL selling price → what it costs us
↓ Fetch demand + inventory → can it sell
↓ Fetch 6 months of daily actuals → what really happened
↓ Deterministic rules → GOOD / CAUTION / POOR (no AI — 42 unit tests)
↓ AI writes the plain-English explanation (never calculates, never decides)
↓ Output: verdict + every reason + the evidence to check it
```
**Key design choice:** the math and the decision are **pure code and fully tested.** The AI only writes the narrative. It can never invent a number or move a price.
---
## What data we gather (and gate on)
All of it is **live**, pulled from our COSMOS system per SKU:
| Signal | Source | Why it matters |
|---|---|---|
| **Real selling price** | `sales-insight` (revenue ÷ units) | The truth — not a list price |
| Fee stack (referral, FBA, returns, EPR/VAT) | `takehome-calculator` | Every cost Amazon takes |
| Landed cost (COGS + freight + duty) | `takehome-calculator` | What the unit costs us |
| 6-month demand, velocity, days of cover | `invp-insight` | Can it actually sell |
| Storage vs inventory on hand | `bulk-calculator` | Overstock draining profit |
| **Actual profit (real P&L)** | `sales-insight.profit` | Includes ads, refunds, promo, storage |
| Ad spend per unit | `sales-insight.marketingCost` | The #1 hidden profit killer |
**Competitor price / Buy Box** — COSMOS has none of this. We source it from **our own curated competitor sheet** (see next slide), with a live Amazon scrape as an optional top-up.
---
## Where competitor data comes from — and why not scraping alone
Competitor pricing isn't in COSMOS, so we bring it in from **two sources — the sheet first, the scraper second:**
| Source | Role | Strength |
|---|---|---|
| **Our competitor sheet** (pre-scraped, curated) | **Primary** — the data we gate on | Whole catalog at once, verified, stable, zero per-call cost, works offline |
| **Live Amazon scrape** (Apify) | **Top-up** — on-demand freshness for a single SKU | Real-time snapshot when we need "right now" |
**Why we don't rely on the live scraper alone:**
- **It's unreliable per-run** — the same Amazon page flaps between "suppressed" and "live offers" between scrapes; a single reading can be wrong
- **It doesn't scale** — ~15 sec per product and pay-per-scrape, so it can't cover the whole catalog economically
- **It's a snapshot, not history** — no trend, and it can be blocked, rate-limited, or redirected by Amazon's anti-bot defences
- **The sheet is controllable and auditable** — we own it, we can verify it, and it feeds every SKU consistently
> **Bottom line:** the sheet is the reliable backbone; the live scrape is a convenience layer on top — never the sole source of truth.
---
## The rules — a fixed checklist, no AI
Every decision is a checklist run **top to bottom. The first rule that matches wins.**
No judgment calls, no guessing — the same inputs always give the same answer.
**The thresholds every rule uses (set once, in one config file):**
| Margin floor | Margin target | Worst-case referral | Returns | Storage |
|:---:|:---:|:---:|:---:|:---:|
| **25%** | **30%** | **15%** | **2%** | **$0.25/unit** |
> The golden rule: **real recorded profit beats profit-on-paper.** If Amazon's own
> numbers show a loss, no amount of "good margin on the calculator" turns it green.
---
## Rule set 1 — the verdict (🟢 / 🟡 / 🔴)
What the app shows for each product. First match wins:
| # | Check | Verdict |
|:---:|---|---|
| 1 | **Actually losing money?** (real profit/unit < 0, or 3+ months lost money) | 🔴 **POOR** *overrides everything below* |
| 2 | Losing money after ads? (net after ad spend < 0) | 🔴 POOR |
| 3 | Price below break-even? | 🔴 POOR loses on every sale |
| 4 | Margin < 25% floor **and** demand weak? | 🔴 POOR not viable |
| 5 | Margin < 25% floor **but** demand strong? | 🟡 CAUTION underpriced, raise price |
| 6 | Overstocked? (storage eats profit, or >120 days cover) | 🟡 CAUTION — run a promo |
| 7 | Sales declining vs the 6-month trend? | 🟡 CAUTION — watch it |
| 8 | **Otherwise** — clears margin, healthy demand | 🟢 **GOOD** |
---
## Rule set 2 — the approval gate
The go / no-go decision, always tested at the worst-case **15%** referral:
| # | Check | Decision |
|:---:|---|---|
| 1 | Price below break-even | ⛔ **BLOCKED** — loss-making |
| 2 | Margin below the 25% floor | ⛔ **BLOCKED** — the main gate |
| 3 | Listing suppressed (Buy Box hidden) | ⛔ **BLOCKED** — don't launch, ads would waste |
| 4 | Lost the Buy Box on price | 🔶 **NEEDS REVIEW** — match or hold? |
| 5 | Otherwise | ✅ **APPROVED** |
**A human still approves before any price is written back.** The rules propose; a person decides.
---
## The core money math
Every dollar figure comes from these formulas — **pure, exact, unit-tested.**
**Margin & break-even**
```
margin = take-home ÷ price
break-even = (landed + FBA + returns + other) ÷ (1 referral%)
```
**Minimum profitable price** (solves for a 30% target margin, rounds to `.99`)
```
suggested = (landed + FBA + other) ÷ (1 referral% returns% 30%)
```
**The gate always tests against the worst-case 15% referral fee** — if a SKU clears the floor at the worst case, it is genuinely safe.
> Policy lives in one config file: **25% margin floor, 30% target, 2% returns, 15% worst-case referral.** Change the policy, not the code.
---
## The formula that changes the answer: the profit bridge
Paper margin says one thing; reality says another. This reconciles them:
```
take-home (fees + COGS only) +4.30
ad spend 3.55
= net after ads +0.75
refunds / promo / storage / logistics 2.65 ← the "unmodeled gap"
= ACTUAL profit / unit 1.90
```
- A SKU can show **+$4.30 "profit"** and actually **lose $1.90** per unit
- The gap is real cost the fee calculator never sees
- The agent leads with the **actual number** — and flags when the model overstates profit
**This is the difference between a dashboard that looks healthy and one that tells the truth.**
---
## The evidence layer — "what actually happened"
Instead of trusting a model, we pool Amazon's own profit data:
```
actual profit/unit = Σ profit ÷ Σ units
best observed price = the price that earned the most real profit/day
unprofitable months = count of months that actually lost money
```
- Pooled by month **and** by **$0.50 price band** — so we can see the price that truly performed best
- Sometimes **the best price we ever charged still lost money***that itself is the finding:* the floor is above anything we've tried.
**We also model price elasticity** (how demand responds to price) — but label it **"directional only,"** because our list prices barely move, so the data is thin. We're honest about what we don't yet know.
---
## Worked example — the agent's reasoning, end to end
**SKU:** Microfiber Gusset Pillow · **Candidate price:** $24.99
| Step | Result |
|---|---|
| Landed cost (COSMOS) | $6.65 |
| Contribution margin @ $24.99 | **10.6%** |
| Break-even / MAP floor | $21.88 / $24.80 |
| Buy Box (live Amazon scrape) | WON — Utopia Brands @ $23.39 |
| **Suggested price** to clear target | **$34.99** |
> **Decision: 🔴 BLOCKED** — margin **10.6%** is below the **25% floor**, even at the worst-case referral. The margin rule fires *before* Buy Box: winning the Buy Box doesn't rescue an unprofitable price.
**Action:** hold below floor, move toward **$34.99** to clear the 30% target.
---
## How much to trust each part
| Capability | Status | Trust |
|---|---|---|
| Cost, margin, break-even | ✅ Built | **High** — exact (but excludes ads alone) |
| Ad cost, true margin, profit bridge | ✅ Built | **High** |
| **Actual profit evidence** | ✅ Built | **Highest — real P&L, overrides everything** |
| Catalog money-at-risk scan | ✅ Built | **Highest** |
| Elasticity / profit optimizer | ✅ Built | Directional only |
| Competitor / Buy Box / suppression | ✅ Built | Sheet-backed (primary) + live scrape top-up |
| Price write-back + approval workflow | ❌ Remaining | Needs write endpoint + guardrails |
**Everything the agent claims, it can show you the raw numbers for.** Nothing is a black box.
---
## What's live today vs. what's next
**✅ Live now**
- Full profitability + evidence engine on live COSMOS data
- Catalog-wide money-at-risk scan (the $14M finding)
- Per-SKU verdict, reasons, suggested price, AI explanation
- Read-only — safe to run against production
**❌ To unlock the value**
1. **Turn diagnosis into action** — an "ads-fix" worklist for the 336 fastest wins
2. **Hardened guardrails** — real break-even (incl. ads + leakage), cap moves at ±10%
3. **Price write-back with human approval** — every change reviewed + audit-logged
4. **Deliberate ±5% price tests** — makes elasticity trustworthy in ~3 months
5. **Automation** — daily scan, alert on *new* money-losers
---
## The ask
**We've built the diagnosis. It found ~$14M/year of profit leakage — with the evidence.**
To convert that into recovered profit, we need to:
- **Approve the ads-fix pilot** — 336 SKUs, no price change, fastest money in the catalog
- **Green-light the write-back + approval workflow** — so the agent's recommendations can actually move prices, safely and auditably
- **Authorize deliberate price testing** on high-volume SKUs — to make the demand model reliable
> The tool already tells us where the money is.
> The next phase is about **going and getting it.**
---
# Thank you
**Pricing & Profitability Agent**
Live data · Deterministic, tested math · AI explains, never decides · Full transparency
*Questions?*