12 KiB
| marp | title | paginate |
|---|---|---|
| true | Pricing & Profitability Agent — Executive Briefing | 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
- Turn diagnosis into action — an "ads-fix" worklist for the 336 fastest wins
- Hardened guardrails — real break-even (incl. ads + leakage), cap moves at ±10%
- Price write-back with human approval — every change reviewed + audit-logged
- Deliberate ±5% price tests — makes elasticity trustworthy in ~3 months
- 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?