Floor prices are one of the simplest yield levers in programmatic advertising, and one of the easiest to get wrong. A higher floor lifts the price paid on the impressions that still sell, but it rejects more bids and lowers fill. This simulator makes that trade-off something you can push on directly.
What it does
Pick a floor, the number of bidders per impression, the typical bid, how dispersed bids are, and whether the auction is first- or second-price. The simulator reports four numbers for that scenario and charts revenue per 1,000 impressions (RPM) and fill rate across a sweep of floors, marking the floor that maximizes RPM.
The model
- 2,000 impressions from a seeded random number generator, so results are reproducible.
- Each impression gets k bidders (1–10). Each bid is a CPM in dollars drawn from a lognormal distribution: the median bid times exp(spread × a standard normal draw).
- Every scenario and every floor in the sweep reuses the same draws, so differences come from the settings alone.
Definitions
- Bid-rejection rate = bids below the floor ÷ all bids.
- Fill rate = impressions with at least one bid at or above the floor ÷ impressions.
- Clearing price: first-price pays the highest bid. Second-price pays the higher of the second-highest eligible bid and the floor; with one eligible bid, it pays the floor.
- RPM = mean clearing CPM across all impressions, counting unfilled impressions as $0.
Checks
The model lives in a pure module with a sanity-check script that runs on every change:
- A $0 floor with at least one bidder gives 100% fill and 0% rejection.
- A floor above every bid gives 0% fill.
- The second-price clearing price is never above the first-price price for the same draws, checked impression by impression.
- Adding bidders never lowers first-price RPM at a $0 floor for the same seed.
Limits
This is a simplified model on synthetic data; it does not represent any company's systems or data. It leaves out bid shading, budgets and pacing, inventory-specific floors, and bidders who adapt to the floor.
