How we measure a card-rip site
What we collect, what we compute, and the specific things we refuse to do with the numbers.
Most “best rip site” lists are ranked by affiliate rate. Ours is ranked by what came out of the packs, because we count it. This is how that counting works, including the parts that are limited.
What we collect
Two feeds, on two schedules, for every operator that exposes them.
- Catalogues, once a day. Every pack an operator sells: its price, how many cards it contains, its published odds table, and whether it is in stock. This is the claim side of the ledger, and it is snapshotted rather than overwritten so we can see what changed and when.
- Live pulls, every two minutes. The public feed of cards people are actually revealing. Where an operator publishes a value on each reveal, we record it. Where the feed tags a reveal to the pack it came from, we record that too — and that tag is what makes per-pack measurement possible at all.
That has accumulated to 276,337 sampled reveals so far. It only grows: the feeds expose recent activity, so anything not captured at the time is gone for good. There is no backfill.
What we compute
One idea, applied consistently: divide what came out by what it cost.
- Cost basis is the price of one card — the pack price divided by the cards in it — so packs of different sizes compare directly.
- Observed return is a revealed card's value divided by that cost. A card worth exactly its cost is 100%.
- The typical rip is the median of those returns. Half of real pulls came back above it.
- The average is total value out over total spent. We publish it beside the median, never instead of it.
- The estimate is what the site's own published odds imply, at the midpoint of each value band. It is a projection, labelled as one, and it is what we fall back to for packs we have not sampled enough.
Where the thresholds came from
Two numbers decide whether a measurement gets published, and both were tested rather than picked.
| Threshold | What it does | Why |
|---|---|---|
| 10 pulls | Below this we publish no return at all | One lucky card produces a precise-looking figure that is pure noise — a single pull once made a pack read 220% |
| 100 pulls | Below this a pack cannot rank, only show a greyed provisional figure | Resampling packs with 800+ pulls, 95% of medians land within 10 points of their final value at n=100 |
The second threshold cost us three quarters of the board — a hundred-odd packs rank on measurement, the rest fall back to their published odds. We would rather rank fewer packs honestly than more of them on samples that cannot hold a median still.
What we refuse to do
The constraints matter as much as the method, and each of these is a place where a tidier-looking site would be a less honest one.
- We never blend gross value with payout terms into one score. What a card is worth is measured; what you keep is read off a terms page. Mixing them would hide which is which.
- We never compare across settlement types as if they were equal. A 90% return in store credit and a 90% return in cash are not the same outcome and are never ranked as though they were.
- We do not publish a single overall score per site. There isn't an honest one. Sites differ on axes that do not reduce to a number, so we show the axes.
- We do not rank on the average. It sorts packs by how extreme their rare outcomes are rather than how they usually perform.
- We do not state a fact we could not source. Where a term is not published anywhere we can read it, the field stays empty rather than getting a plausible guess.
What this cannot tell you
We measure the feed an operator publishes, using the values that operator assigns. If a feed is incomplete, our sample inherits that. If a site's own value estimates are optimistic, our returns inherit that too — which is why we say whose estimate it is on every page. And a measured median is history: it describes pulls that happened, not pulls you are about to make.
Some operators publish no feed at all. Those brands get a review covering their terms, payments and payouts, and no measured return — shown as absent rather than filled in with an estimate dressed up as a measurement.
Why any of this is checkable
Everything above runs on data the operators themselves publish. Anyone with the same feeds and the same arithmetic reaches the same figures, which is the only kind of claim worth making about someone else's business.
Right now that puts Sealed Pokémon Booster on Courtyard at the top of the board, on 2,133 sampled pulls. It got there by being counted, and it will lose the spot the moment the counting says otherwise.
Ripping packs is entertainment, and a good chase card is genuinely thrilling. Nothing here is an argument against opening them — it is an argument for knowing the numbers first, so the fun is the point rather than the surprise.
Common questions
Where does RipRanks get its data?+
From operators' own public endpoints: their pack catalogues with published odds, snapshotted daily, and their live pull feeds, sampled every two minutes. Where a feed publishes a value for each revealed card, we record it and use it as the basis for measured returns.
Is RipRanks independent?+
The ratings are computed from operators' public data and are not affected by commercial relationships. Some outbound links are affiliate links, which is disclosed on every page that carries one. No operator can pay to change a measured return, because the measurement comes from their own feed.
Why do some sites have no measured return?+
Because they publish no live pull feed, or a feed without card values, or one that does not tag reveals to a specific pack. Those brands get a review of their terms, payments and payouts, with the measured return shown as absent rather than estimated.
How often does the data update?+
Live pulls are sampled every two minutes and pack catalogues refresh daily. Every ranking on the site recomputes from the current data on each page load.