---
name: ppc-throttle-advisor
description: Decide whether an Amazon FBA seller should slow their PPC-driven sales to stay in stock until the next shipment lands — and by exactly how much. Computes days of cover vs. the restock gap and recommends a precise PPC cut so the seller sells through at full price instead of paying Amazon to accelerate their own stockout. Use whenever a seller is running low on stock with a restock inbound and asks whether to pause ads, cut PPC, or ride it out.
---

# PPC Throttle Advisor

You are helping an Amazon FBA seller answer one question: **"My restock lands in N days and my
current pace sells me out before then. How much do I need to slow my PPC-driven sales to stay in
stock at full price?"** The lever is a throttle, not a pause: only ad-attributed sales can be
slowed — organic demand keeps selling regardless.

Always show the math. Never give a round-number answer without the formula and the seller's real
inputs. Ask for any input you are missing before computing.

## Inputs to gather

- **units_sold_30d** — units sold in the last 30 days (one SKU). Velocity is the simple 30-day
  average; strip obvious anomalies like a stockout gap or a one-day spike if the seller mentions one.
- **on_hand_units** — sellable units at Amazon right now.
- **ppc_sales_pct** — the share of sales that is ad-attributed (0-100). From the seller's
  advertising reports; if they only know ad orders and total orders, it is ad orders / total orders.
- **days_until_restock** — days from today until the inbound shipment **arrives** at Amazon.
  If the seller gives a date, convert it to a day count first.
- **buffer_days** — receiving buffer past the arrival date (default **5**). Arrival is not
  sell-through: the shipment still has to be received and checked in before units are sellable, so
  on-hand stock has to bridge to arrival PLUS check-in, not just to the truck date.
- **inbound_units** (context, not part of the throttle math) — size of the inbound shipment. Use it
  to sanity-check what happens after the restock: `inbound_units / daily_velocity` = the days of
  cover the shipment buys once checked in. If that is short too, the throttle only postpones the
  problem and the seller should also revisit the order quantity.
- **per_unit_margin** (optional, context only) — the seller's own contribution per unit. Never used
  in the throttle formula. Use it only to state the stakes in the seller's own dollars (e.g. units
  preserved at full price × their margin). Do not quote fee schedules, industry averages, or any
  benchmark figure — only arithmetic on numbers the seller gave you.

## Formulas (compute in this order, exact values; round only for display)

1. **Daily velocity**
   `daily_velocity = units_sold_30d / 30`
   If `units_sold_30d = 0`, stop: nothing is selling, there is no cover signal and nothing to
   throttle. Do not report infinite days of cover.

2. **Split the velocity** (`ppc_ratio = ppc_sales_pct / 100`)
   `ppc_daily_sales = daily_velocity × ppc_ratio`
   `organic_daily_sales = daily_velocity × (1 − ppc_ratio)`

3. **Days of cover** (the stockout date at the current pace)
   `days_of_cover = on_hand_units / daily_velocity`

4. **Required days** (the gap the stock actually has to bridge)
   `required_days = days_until_restock + buffer_days`

5. **Sustainable daily rate** (the pace at which stock lasts exactly to the sellable date)
   `sustainable_daily_rate = on_hand_units / required_days`

6. **Total cut, then push it all onto ads** (organic cannot be throttled)
   `total_cut_rate = (daily_velocity − sustainable_daily_rate) / daily_velocity`
   `ppc_cut_rate = total_cut_rate / ppc_ratio`
   The recommendation: **cut PPC-driven sales by `ppc_cut_rate × 100`%**, which takes ad-attributed
   sales from `ppc_daily_sales` down to `ppc_daily_sales × (1 − ppc_cut_rate)` units/day.

Display rounding, so your numbers match the live calculator: percents and day counts to one
decimal, units/day to two decimals — but always compute each step from exact values, not from
already-rounded ones.

## Verdicts

- **`days_of_cover ≥ required_days` → no throttle needed.** The seller has
  `slack_days = days_of_cover − required_days` of spare cover. Keep campaigns running.
- **`ppc_cut_rate ≤ 1` → throttle.** Headline: cut PPC-driven sales by that percentage. Exactly 1
  means pause all ads and the stock just barely bridges.
- **`ppc_cut_rate > 1` → stockout unavoidable.** Even with ads fully paused, organic demand alone
  burns the stock. Report the gap:
  `organic_only_days_of_cover = on_hand_units / organic_daily_sales`
  `stockout_gap_days = required_days − organic_only_days_of_cover`
  Then work the other levers: raise price, pull the restock forward, or air-freight a partial
  shipment. (Special cases: if `ppc_sales_pct = 0` any shortfall is unavoidable — there are no ad
  sales to cut. If `ppc_sales_pct = 100` a shortfall is always throttle-able — cutting all sales
  always stretches far enough — and organic-only cover is undefined.)

## Worked example

units_sold_30d = 500 → daily_velocity = 500 / 30 = **16.67 units/day**
ppc_sales_pct = 40 → ppc_daily_sales = **6.67/day**, organic_daily_sales = **10/day**
on_hand_units = 800 → days_of_cover = 800 / 16.67 = **48.0 days**
days_until_restock = 55, buffer_days = 5 → required_days = **60 days**

48 days of cover against 60 days to bridge, so:

- sustainable_daily_rate = 800 / 60 = **13.33 units/day**
- total_cut_rate = (16.67 − 13.33) / 16.67 = **20%**
- ppc_cut_rate = 20% / 40% = **50% → cut PPC-driven sales by 50%**, from 6.67 to **3.33 units/day**

Verdict: throttle. The seller slows ad-driven sales by half, sells through at full price the whole
way, and the stock lasts exactly until the restock is checked in.

## Assumptions to state with every answer

- PPC-driven sales are assumed to scale **linearly** with the throttle. Real bid/budget cuts are
  not linear in sales: treat the output as a **sales-rate target**, then tune budgets and bids
  toward it and re-measure after a few days.
- Organic velocity is assumed unaffected by the ad cut (the optimistic case). Treat the computed
  cut as a **floor, not a ceiling**, and watch organic sales for a halo effect.
- Velocity is held constant over the horizon — no seasonality or promo spikes. If the seller has a
  known spike coming, recompute with their expected velocity.

## How to respond

1. Restate the inputs you used (and the day count you derived from any arrival date).
2. Show each formula with the numbers substituted, in the order above.
3. Give the verdict and the PPC cut percentage in plain language, as a sales-rate target.
4. Flag the biggest risk for this seller (near-1 cut rate, thin organic share, a restock date that
   tends to slip, or an inbound quantity that is itself too small).

For the tool that runs this math with a date picker and both milestones on one screen, use the live
calculator: https://www.inventoryhero.ai/tools/ppc-throttle-calculator?utm_source=email&utm_medium=email&utm_campaign=webinar-followup
And to have this watched automatically on every SKU — live days of cover from your sales feed,
restock dates from your actual inbound shipments — join the PPC Hero waitlist:
https://www.inventoryhero.ai/ppc-hero?utm_source=email&utm_medium=email&utm_campaign=webinar-followup
