Sealed prices and singles prices come from different pipelines on this site, and over the 23 days both of our daily tapes cover they move at the same headline frequency and in opposite shapes. A sealed product repriced on a median 13.6% of day-to-day steps. A single repriced on a median 13.6% of steps too. Underneath that tie, 22.9% of singles never moved once across the whole window against 11.6% of sealed products, and 34 sealed products moved at every reading they have while not one single did.

13.6%median share of day-to-day steps that moved, on both tapes1,800 sealed products and 37,273 singles, 2026-08-30 to 2026-09-21
22.9% vs 11.6%share that never moved once, singles against sealeda single is twice as likely to be frozen for three weeks
34 vs 0products that moved at every reading they have, sealed against singles7 of the 34 have all 23 readings; no single in the panel moved at every reading
What is being compared

Two tapes, one window

These are two separate pipelines and it matters which is which. Sealed prices live in api_cache rows keyed sealedhist by TCGplayer product id, written daily by the sync-sealed cron. Singles live in the price_history table, keyed by TCGplayer id and day. Both carry TCGplayer ASKS. Neither is a sold price. The sealed tape has scattered readings from 2026-08-01 and reaches catalog-wide coverage on 2026-08-23; the singles tape begins 2026-08-30. The shared window is therefore the 23 days from 2026-08-30 to 2026-09-21, and nothing in this study is quoted over a longer one.

The two tapes over the same 23 days

MeasureSealed productsSingles
Panel size (a reading on 20 or more of 23 days)1,80037,273
Median distinct prices in the window43
Median share of day-to-day steps that moved13.6%13.6%
Never moved once11.6%22.9%
Moved at every reading they have340
Median 23-day change+0.94%0.00%
Up / unchanged / down, first reading against last1,120 / 221 / 45915,074 / 11,177 / 11,022

The median change is the cleanest contrast. A typical sealed product asked 0.94% more at the end of the window than at the start. A typical single asked exactly what it asked three weeks earlier. On the singles tape 11,177 of 37,273 cards finished the window at exactly the figure they started it, 30.0%; on the sealed tape that is 221 of 1,800, 12.3%. Sealed asks drift. Singles asks stick.

Inside the sealed tape

The format is the variable

The sealed tape is not one behaviour. Split it by product format and the range is enormous: the booster bundle repriced on 76.2% of steps and not one of the 40 bundles in the panel sat still for the window, while blisters, decks and unclassified products repriced on 9.5% of steps with roughly one in six never moving.

Sealed repricing by product format, all 16 non-lot formats in the panel, 23 recorded days

FormatProductsMedian distinct pricesShare of steps that movedNever movedMedian 23-day change
Booster Bundle401576.2%0.0%+1.1%
Booster Box441042.9%2.3%+0.5%
Elite Trainer Box68938.1%5.9%0.0%
ETB (Pokemon Center)41833.3%2.4%-1.3%
Booster Pack165519.0%7.9%+1.6%
Collection164414.3%11.0%+1.1%
Mini Tin121414.3%5.8%+1.3%
Premium Collection78414.3%5.1%+1.0%
Build & Battle38414.3%5.3%+1.2%
Tin162313.6%13.0%+1.3%
Blister21339.5%16.0%+1.1%
Deck12439.5%16.9%+0.9%
Product (unclassified)15939.5%18.9%+0.9%
Hanger Box324.5%33.3%0.0%
Half Box710.0%57.1%0.0%
Accessory110.0%100.0%0.0%

The last three rows hold three, seven and one product, so read them as labels rather than as measurements; an "Accessory" that never moved is one listing. We print them because the table is a census and the Products column has to reconcile: it sums to 1,428, which is the panel of 1,800 less the 372 lot SKUs. Blister, Deck and unclassified Product are a three-way tie at 9.5% rather than an ordering.

The four formats at the top are the four formats people buy to open: the bundle, the box, the Elite Trainer Box and its Pokemon Center variant. Every one of them reprices on at least a third of days. The formats at the bottom are shelf stock. The reading is that a sealed ask is a competitive quote where sellers are competing and a parked number where they are not, and it is the reason we treat the ETB and box series as usable and treat a blister series as a level rather than a signal.

The Pokemon Center ETB is the only format in the table with a negative median change over the window, at -1.3%, while its plain counterpart sat flat at 0.0%. On a 23-day window that is a direction, not a trend, and it is the kind of observation that needs a longer tape before it means anything. The structural premium those products carry is measured separately in The Trainer Box That Costs More Than Its Booster Box.

By price band

The dearer the box, the deader the quote

Sealed repricing by ask, 23 recorded days

Sealed askProductsMedian distinct pricesShare of steps that movedNever moved
Under $25284519.0%6.3%
$25 to $99621414.3%9.2%
$100 to $499417414.3%15.1%
$500 to $1,9999239.1%21.7%
$2,000 and above1424.5%28.6%

This runs monotonically in both columns. The cheapest sealed products are the most actively quoted and the most expensive are the least. That is the opposite of what a reader assumes when they see a five-figure ask on a vintage box: the number looks authoritative because it is large, and it is in fact the least tested figure in the catalog. Any study that uses vintage sealed asks as a price series, including our own out-of-print age curve, inherits this.

The reprice guard

What we had to throw out

A naive set-level comparison of the two tapes over this window reports Jungle singles down 61.2% and Fossil singles down 63.7% in three weeks. Neither happened. On 2026-09-07 every card in nine Wizards-era sets repriced on the same day, by similar proportions, in the same direction: 2026-09-06 still carries the old price on every one of them and 2026-09-07 carries the new one. Snorlax went from $342.03 to $150.66 between those two readings, held that figure for three days, and has sat at $151.06 since 2026-09-10. That is a catalog reassignment, almost certainly a change in which printing the canonical price describes, and calling it a market move would have been a large published error.

Whole-set one-day repricings inside the window, dated to the day the new price first appears

SetDate the new price appearsCards in panelCards moving over 20% that day
Fossil2026-09-076262
Jungle2026-09-076464
Neo Discovery2026-09-077575
Team Rocket2026-09-078380
Neo Genesis2026-09-07111103
Neo Destiny2026-09-07113101
Neo Revelation2026-09-076662
Gym Heroes2026-09-07132128
Gym Challenge2026-09-07139126
Base Set (Shadowless)2026-09-1410298
30th Celebration2026-09-19142141
Limitations

What this study cannot show

Twenty-three days is a short window and this is the first time we have had both tapes running together. Nothing here is a seasonal claim, a trend, or a forecast; it is a description of how often two ask feeds change. A repricing frequency is also not a liquidity measure. A seller can relist daily without selling anything, and a card can trade heavily at a price that never changes. The relationship between quote frequency and actual transactions is a separate measurement, and nothing here substitutes for it.

The two panels are not matched populations. The sealed panel is 1,800 products, weighted toward modern product because that is what the catalog holds; the singles panel is 37,273 cards and includes Japanese sets. A set-by-set pairing of the two would be the better comparison. We report the population comparison instead, and the honest reason is that our first attempt at the pairing was weak rather than that the pairing is impossible: stripping the era prefix from the sealed name only, and matching it against the raw singles set name, yields 21 sets with both a sealed panel of three or more SKUs and a singles panel of twenty or more cards. Normalising both sides the same way yields 54. The 21 is a property of a one-sided normalisation, not of the data, and a proper paired study is work we have not done rather than work that cannot be done.

The two panels are also not equally complete, and the reading rule hides it. On 2026-09-21 the sealed tape carries 672 readings against roughly 1,800 to 1,950 on every other day in the window, so only 667 of the 1,800 sealed products have all 23 readings and 1,091 were last read on 2026-09-20. The row labelled median 23-day change is therefore a 22-day change for most of the sealed panel. We recomputed it on the 667 products with a complete series and got +1.08% against the published +0.94%, so the finding holds, but the label is looser than the measurement. On the singles side 35,494 of 37,273 have all 23 readings. The same raggedness is why the moved-at-every-reading count is 34 rather than 7: only 7 of those 34 have a reading on all 23 days.

One set was being ingested while we measured. The 30th Celebration catalog grows from 3 cards to 162 across the window and reprices materially on four separate day-pairs, of which our detector flags one. Only 7 of its cards clear the 20-of-23 reading rule, so no figure in this study depends on it: dropping both 30th Celebration sets from the singles panel moves the panel to 37,266 and changes no published figure, not even the up/unchanged/down row beyond seven cards. It matters for set-level work built on this tape, not for the population comparison here.

Finally, a step is counted as moved when two consecutive readings differ at all, including by one cent, and the up/unchanged/down row uses exact equality on the first and last readings rather than a tolerance band. A different threshold would give different frequencies, and we have not tested how far the ordering between formats and price bands survives one.

Falsifiability

What would overturn this

A longer window in which the sealed never-moved share rose above the singles never-moved share would reverse the study's central contrast. So would a sold-transaction feed showing that the frozen singles were trading constantly at their unchanged asks while the busy sealed asks were not trading at all, which would make repricing frequency a measure of seller behaviour rather than of market attention. And if the monotonic relationship between sealed ask and repricing frequency broke in a later window, the staleness caveat we attach to vintage box prices would need rebuilding from scratch.

Window: 2026-08-30 to 2026-09-21, the 23 days on which both daily tapes have readings. The sealed tape is api_cache rows keyed sealedhist:<tcgPlayerId>, written by the sync-sealed cron; 2,085 series exist and 1,969 have a reading inside the window. The singles tape is the price_history table (tcg_id, day, price), whose 24 recorded days run 20695 to 20718 inclusive, that is 2026-08-30 to 2026-09-22. Both carry TCGplayer ASKS from different syncs; neither carries sold prices. Panel rule, identical on both sides: a series enters when it has a reading on at least 20 of the 23 days, giving 1,800 sealed products and 37,273 singles. A step is counted as moved when two consecutive readings differ at all. The 23-day change compares the first and last readings inside the window. Format classification is classifyProduct() from src/server/set-products.ts, and lot SKUs are excluded from BOTH the per-format table and the price-band table, taking 1,800 products to 1,428 in each; price bands use the last reading. The reprice DETECTOR written for this study, which is not the production basketChangeOverDays guard in packages/core, joins price_history to itself on consecutive days and flags any (set, day) pair where the set has at least 20 cards present on both days and at least 80% of them moved by more than 20%. It fires eleven times; the eleven sets are excluded from any set-level comparison and listed in full above, dated to the day the new price first appears rather than to the from-day of the join. We re-ran the detector at 70% moving over 15% and at 60% moving over 25% and it returns the same eleven; at 60% moving over 10% it returns fifteen events over twelve sets, the four additions all being 30th Celebration ingestion days. Medians take the upper-middle value on even samples. DEDUPLICATION: both panels are keyed on the product join key itself. price_history's primary key is (tcg_id, day), so a per-tcg_id panel cannot count a product twice; on 2026-09-22 its 52,309 rows carry 52,309 distinct tcg_ids. sealed_products' 2,358 rows carry 2,358 distinct ids. The 1,212 TCGplayer product ids that two catalog card rows both claim therefore do not inflate anything here, since no count in this study runs over catalog rows. Scripts: apps/web/scripts/sealed-d4-final.mts, with the earlier pass in sealed-d-tape.mts and the dedupe check in sealed-b5-dedupe.mts. All figures and queries are in apps/web/.scratch-sealed/figures.json.