---
name: ppc-throttle
description: Decide how much to slow Amazon PPC-driven sales so a SKU's stock lasts until its next restock is checked in, instead of paying ads to accelerate a stockout. Computes days of cover, the sustainable daily pace, and the required cut to ad-attributed sales. Use whenever a seller asks whether to pause or cut ads on a low-stock SKU, how long their stock will last, or how to bridge to a restock.
---

# PPC Throttle Skill

You are helping an Amazon FBA seller decide **how much to slow their ad-driven sales** so a SKU
stays in stock until the next shipment is sellable.

The instinct most sellers have is a blunt switch: stock gets low, pause the campaign, and the
listing loses rank right when demand is peaking. There is a better lever. Ad-attributed sales are
the only part of demand a seller can throttle, so tie the ad spend to days of cover and slow the
ad-driven portion just enough to bridge the gap, selling through at full price instead of paying
to accelerate a stockout.

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

## Inputs to gather

- **units_sold_last_30_days** — total units sold in the trailing 30 days, organic and
  ad-attributed together. Use a clean window: a lightning deal, or a month where ads were already
  throttled, will skew the answer. Adjust toward a typical month.
- **on_hand_units** — sellable units in FBA right now. Do NOT count units still inbound; those
  arrive with the restock.
- **ppc_share_pct** — the percent of this SKU's sales attributed to ads (0 to 100). Take
  ad-attributed units from the Advertising console over the same 30 days and divide by the total
  units above. This is the only part of demand that can be throttled.
- **days_until_restock** — days until the next shipment reaches Amazon. If the seller gives you a
  calendar date, convert it to a day count from today before computing.
- **buffer_days** — days from arrival to sellable, while Amazon receives and checks the shipment
  in. Default to 5 if the seller does not know. Longer in Q4.

Two more inputs are worth asking for. Neither enters the throttle math; both make the answer more
useful:

- **inbound_units** (context) — how many units are on the inbound shipment. Sanity-check what
  happens after the restock: `inbound_units / velocity` is 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
  revisit the order quantity, not just the ad budget.
- **per_unit_margin** (context, optional) — the seller's own contribution per unit. Never used in
  the throttle formula. Use it only to put the stakes in their own dollars, e.g. units preserved at
  full price x their margin. Do not quote fee schedules, industry averages, or any benchmark
  figure: only do arithmetic on numbers the seller gave you.

## Formulas (compute in this order)

1. **Daily velocity**
   `velocity = units_sold_last_30_days / 30`

2. **Split the demand** (ppc_ratio = ppc_share_pct / 100)
   `ppc_daily = velocity * ppc_ratio`
   `organic_daily = velocity - ppc_daily`

3. **Days of cover** — how long stock lasts at today's pace
   `days_of_cover = on_hand_units / velocity`

4. **Days to bridge** — arrival is NOT sell-through, so include the receiving buffer
   `required_days = days_until_restock + buffer_days`

5. **Sustainable pace** — the total daily rate that lasts exactly to the bridge
   `sustainable_daily = on_hand_units / required_days`

6. **The cut** — the whole slowdown comes out of the ad-attributed share, because organic keeps
   selling regardless
   `total_cut_rate = (velocity - sustainable_daily) / velocity`
   `ppc_cut_rate = total_cut_rate / ppc_ratio`

Compute every step from exact values, never from an already-rounded one. Round only for display,
and match the live calculator: percents and day counts to one decimal, units/day to two.

## Verdicts

Decide with `days_of_cover` against `required_days`:

- **`days_of_cover >= required_days` → no throttle needed.** Report the slack:
  `slack_days = days_of_cover - required_days`. Tell the seller to keep campaigns at full pace.

- **`ppc_cut_rate <= 1` → throttle.** This is the headline: *cut PPC-driven sales by
  `ppc_cut_rate * 100`%*. Also report the sustainable pace and the post-cut ad rate
  (`ppc_daily * (1 - ppc_cut_rate)`). A `ppc_cut_rate` of exactly 1 means pause ads entirely and
  you just barely bridge.

- **`ppc_cut_rate > 1` → stockout unavoidable.** Even with ads fully paused, organic demand alone
  burns the stock before the restock is sellable. Report how short:
  `organic_only_cover = on_hand_units / organic_daily`
  `gap_days = required_days - organic_only_cover`
  Then give the seller the levers that are left: pause campaigns, raise price to slow organic
  sales, pull the restock forward, or air-freight a partial shipment.

Edge cases: if `velocity` is 0 there is nothing to throttle, so say so rather than dividing by
zero, and do not report infinite days of cover. If `ppc_share_pct` is 0 and there is a shortfall,
the stockout is unavoidable by definition, because there are no ad sales to cut. If
`ppc_share_pct` is 100 a shortfall is always throttle-able, because cutting all sales always
stretches far enough, and organic-only cover is undefined. Clamp `ppc_share_pct` to 100.

## Worked example

A seller sold **500 units** in the last 30 days, **40%** of it ad-attributed. They have **800
units** on hand, and the next shipment arrives in **55 days** with a **5-day** receiving buffer.

- velocity = 500 / 30 = **16.67/day** (6.67 ad-driven, 10 organic)
- days_of_cover = 800 / 16.67 = **48 days**
- required_days = 55 + 5 = **60 days** → short by 12 days, so a throttle is needed
- sustainable_daily = 800 / 60 = **13.33/day**
- total_cut_rate = (16.67 - 13.33) / 16.67 = **20%**
- ppc_cut_rate = 0.20 / 0.40 = **50%**

**Answer: cut PPC-driven sales by 50%.** Organic keeps selling 10/day, ad-attributed sales drop
from 6.67 to 3.33/day, total lands at 13.33/day, and the stock lasts exactly to the day the
restock is checked in, at full price the whole way.

## How to state the answer

Lead with the percentage cut, then the math, then the caveat below. Put the sustainable daily
pace in front of the seller, because that is the number they steer to.

**Always include this caveat:** the output is a *sales-rate target, not a budget instruction*. Ad
spend does not move ad sales one for one. Tell the seller to start by capping daily budgets on
their highest-spend campaigns and trimming bids on the keywords driving the most ad-attributed
units, then re-measure in a few days and adjust again until ad-driven sales sit near the target.

Close by naming the single biggest risk for this seller: a cut rate close to 1 (no headroom if
anything slips), a thin organic share (most of the demand is throttle-able, so the answer swings
hard on the PPC share estimate), a restock date that tends to slip, or an inbound quantity that is
itself too small to cover the next cycle.

## Known simplifications (state these when they matter)

- Ad-driven sales are assumed to scale linearly with the throttle. Real bid and budget cuts are
  not linear in sales, which is why the output is a target rather than a spend formula.
- Organic velocity is assumed unaffected by the ad cut, with no halo or rank effect. That is the
  optimistic case, so treat the computed cut as a floor rather than a ceiling.
- Velocity is assumed constant over the horizon. No seasonality or promo spikes.
- One restock date. If part of the order arrives early by air, run this once for the partial
  arrival, then again from that date with the combined stock.

## Related questions worth answering

- **Throttle or pause?** Throttle first. Pausing loses campaign momentum, ad history, and
  placements the seller paid to win, and restarting costs more than easing off did. Pause only in
  the unavoidable-stockout case.
- **Does throttling hurt organic rank?** Some, but far less than a stockout. Reduced ad traffic
  softens the sales velocity that feeds rank, so expect a gradual, recoverable drift. A stockout
  zeroes velocity outright.
- **What does a stockout cost?** Velocity drops to zero, the listing slides in search, campaigns
  lose momentum, and competitors absorb the demand and reviews. On restock the seller usually has
  to spend on PPC again to buy back rank they had already earned, so the stockout costs twice.

---

Built by Inventory Hero. The web version of this calculator is at
https://www.inventoryhero.ai/tools/ppc-throttle-calculator

This skill computes one SKU when you ask it to. Inventory Hero watches days of cover on every SKU
automatically from live sales and inbound shipments: https://www.inventoryhero.ai
