{
  "url": "https://www.moonstonehq.com/articles/the-float-moved",
  "slug": "the-float-moved",
  "title": "Is the Supply Drying Up? We Counted the Shelf Twice",
  "summary": "Across the 9,692 cards we could read at both ends of a 26 day window, the shelf got bigger: the median card's active TCGplayer listing count rose 4.61%, and those same cards went from 1,028,077 listings to 1,080,240. Only 22 of the 6,592 cards that started on twenty or more listings lost half their shelf. The series also repeats yesterday's number on three cards in four on a typical day, and that decides what you are allowed to conclude from it.",
  "section": "Market structure",
  "published": "2026-10-12",
  "readMinutes": 8,
  "publisher": "moonstone",
  "findings": [
    {
      "value": "+4.61%",
      "measures": "median change in a card's active TCGplayer listings over 26 days",
      "basis": "9,692 cards paired to themselves, 15 to 17 September against 10 to 12 October"
    },
    {
      "value": "1,080,240",
      "measures": "listings on the paired shelf at the end, up from 1,028,077",
      "basis": "the same 9,692 cards at both ends, +5.07%"
    },
    {
      "value": "22",
      "measures": "cards that lost half or more of their for-sale listings",
      "basis": "of the 6,592 that started on 20 or more; 150 lost a quarter or more"
    },
    {
      "value": "487",
      "measures": "cards whose shelf was empty on every day we ever recorded them",
      "basis": "of the 715 zero-listing cards with 5 or more recorded days, on 2026-10-11"
    }
  ],
  "tables": [
    {
      "title": "Four cards, four cadences, same window",
      "columns": [
        "Card",
        "Set",
        "Days recorded",
        "Distinct values",
        "Changes",
        "Longest unchanged run"
      ],
      "rows": [
        {
          "Card": "[Mega Sharpedo ex](/card/me02-061) 061",
          "Set": "[Phantasmal Flames](/set/phantasmal%20flames)",
          "Days recorded": "22",
          "Distinct values": "2",
          "Changes": "1",
          "Longest unchanged run": "12 recorded days at 1,617"
        },
        {
          "Card": "[Terapagos ex](/card/sv07-128) 128",
          "Set": "[Stellar Crown](/set/stellar%20crown)",
          "Days recorded": "21",
          "Distinct values": "3",
          "Changes": "2",
          "Longest unchanged run": "11 recorded days at 823"
        },
        {
          "Card": "[Gengar LV.X](/card/pl4-97) 97",
          "Set": "[Arceus](/set/arceus)",
          "Days recorded": "21",
          "Distinct values": "10",
          "Changes": "11",
          "Longest unchanged run": "4 recorded days"
        },
        {
          "Card": "[Alakazam](/card/base1-1) 1",
          "Set": "[Base Set](/set/base%20set)",
          "Days recorded": "30",
          "Distinct values": "16",
          "Changes": "18",
          "Longest unchanged run": "2 recorded days"
        }
      ]
    },
    {
      "title": "The ten biggest percentage fallers, of the 6,609 above the twenty-listing floor on the rerun read",
      "columns": [
        "Card",
        "Set",
        "15 to 17 Sep",
        "10 to 12 Oct",
        "Change"
      ],
      "rows": [
        {
          "Card": "[Gengar LV.X](/card/pl4-97) 97",
          "Set": "[Arceus](/set/arceus)",
          "15 to 17 Sep": "27.0",
          "10 to 12 Oct": "4.0",
          "Change": "-85.2%"
        },
        {
          "Card": "[Jirachi Prism Star](/card/sm7-97) 97",
          "Set": "[Celestial Storm](/set/celestial%20storm)",
          "15 to 17 Sep": "57.7",
          "10 to 12 Oct": "13.7",
          "Change": "-76.3%"
        },
        {
          "Card": "[Celebi Prism Star](/card/sm8-19) 19",
          "Set": "[Lost Thunder](/set/lost%20thunder)",
          "15 to 17 Sep": "118.7",
          "10 to 12 Oct": "31.7",
          "Change": "-73.3%"
        },
        {
          "Card": "[Giratina Prism Star](/card/sm5-58) 58",
          "Set": "[Ultra Prism](/set/ultra%20prism)",
          "15 to 17 Sep": "64.0",
          "10 to 12 Oct": "19.7",
          "Change": "-69.3%"
        },
        {
          "Card": "[Latios Prism Star](/card/sm7-108) 108",
          "Set": "Celestial Storm",
          "15 to 17 Sep": "81.7",
          "10 to 12 Oct": "25.7",
          "Change": "-68.6%"
        },
        {
          "Card": "[Bulbasaur, Pokemon Day 2026](/card/enx-678169) 001/132",
          "Set": "[Miscellaneous Cards & Products](/set/miscellaneous%20cards%20%26%20products)",
          "15 to 17 Sep": "64.3",
          "10 to 12 Oct": "22.0",
          "Change": "-65.8%"
        },
        {
          "Card": "[Nihilego-GX](/card/sma-SV62) SV62",
          "Set": "[Hidden Fates Shiny Vault](/set/hidden%20fates%20shiny%20vault)",
          "15 to 17 Sep": "35.7",
          "10 to 12 Oct": "12.3",
          "Change": "-65.4%"
        },
        {
          "Card": "[Darkrai](/card/bwp-BW73) BW73",
          "Set": "[BW Black Star Promos](/set/bw%20black%20star%20promos)",
          "15 to 17 Sep": "34.7",
          "10 to 12 Oct": "12.3",
          "Change": "-64.4%"
        },
        {
          "Card": "[Victini Prism Star](/card/sm7.5-7) 7",
          "Set": "[Dragon Majesty](/set/dragon%20majesty)",
          "15 to 17 Sep": "79.0",
          "10 to 12 Oct": "28.7",
          "Change": "-63.7%"
        },
        {
          "Card": "[Gothitelle](/card/jat-636676) 123/086",
          "Set": "[SV11W: White Flare](/set/sv11w%3A%20white%20flare) (Japanese)",
          "15 to 17 Sep": "22.0",
          "10 to 12 Oct": "8.0",
          "Change": "-63.6%"
        }
      ]
    },
    {
      "title": "The four weakest and four strongest of the 133 sets with 25 or more paired cards, by median per-card float change on the rerun read",
      "columns": [
        "Set",
        "Median change",
        "Paired cards"
      ],
      "rows": [
        {
          "Set": "[Call of Legends](/set/call%20of%20legends)",
          "Median change": "-16.6%",
          "Paired cards": "38"
        },
        {
          "Set": "[Trading Card Game Classic](/set/trading%20card%20game%20classic)",
          "Median change": "-11.4%",
          "Paired cards": "36"
        },
        {
          "Set": "[HeartGold SoulSilver](/set/heartgold%20soulsilver)",
          "Median change": "-7.7%",
          "Paired cards": "25"
        },
        {
          "Set": "[Pokemon VS](/set/pokemon%20vs) (Japanese)",
          "Median change": "-7.1%",
          "Paired cards": "25"
        },
        {
          "Set": "[S8b: VMAX Climax](/set/s8b%3A%20vmax%20climax) (Japanese)",
          "Median change": "+17.6%",
          "Paired cards": "59"
        },
        {
          "Set": "[S12a: VSTAR Universe](/set/s12a%3A%20vstar%20universe) (Japanese)",
          "Median change": "+16.4%",
          "Paired cards": "63"
        },
        {
          "Set": "[Generations](/set/generations)",
          "Median change": "+15.3%",
          "Paired cards": "45"
        },
        {
          "Set": "[White Flare](/set/white%20flare)",
          "Median change": "+13.1%",
          "Paired cards": "98"
        }
      ]
    },
    {
      "title": "Priced, and almost nothing for sale. Readings on 2026-10-11",
      "columns": [
        "Card",
        "Set",
        "Listings",
        "Days at zero",
        "Raw quote",
        "PSA 10 model",
        "Last dated PSA 10 sale"
      ],
      "rows": [
        {
          "Card": "[Trade Please!](/card/jat-602186) 282/XY-P",
          "Set": "[XY-P: XY Promos](/set/xy-p%3A%20xy%20promos)",
          "Listings": "0",
          "Days at zero": "21 of 21 recorded",
          "Raw quote": "$300.00 Near Mint",
          "PSA 10 model": "$499.00 on 26 comps",
          "Last dated PSA 10 sale": "10 Oct, $499.00"
        },
        {
          "Card": "[Reshiram](/card/jat-602841) 022/020",
          "Set": "[Shiny Collection](/set/shiny%20collection)",
          "Listings": "0",
          "Days at zero": "21 of 21",
          "Raw quote": "$300.00 Near Mint",
          "PSA 10 model": "$2,800.51 on 38 comps",
          "Last dated PSA 10 sale": "7 Oct, $2,950.01"
        },
        {
          "Card": "[Leafeon LV.X](/card/jat-606851)",
          "Set": "[DP4: Dawn Dash](/set/dp4%3A%20dawn%20dash)",
          "Listings": "0",
          "Days at zero": "11 of 21",
          "Raw quote": "$200.00 Near Mint",
          "PSA 10 model": "$3,830.00 on 94 comps",
          "Last dated PSA 10 sale": "8 Oct, $5,600.00"
        },
        {
          "Card": "[Gengar VMAX](/card/enx-489298) 157/264",
          "Set": "[Prize Pack Series Cards](/set/prize%20pack%20series%20cards)",
          "Listings": "0",
          "Days at zero": "5 of 5",
          "Raw quote": "$1,499.99 Near Mint",
          "PSA 10 model": "no PSA 10 row that day",
          "Last dated PSA 10 sale": "none in the feed"
        },
        {
          "Card": "[Mewtwo Star](/card/ex13-103) 103",
          "Set": "[Holon Phantoms](/set/holon%20phantoms)",
          "Listings": "3",
          "Days at zero": "0 of 16",
          "Raw quote": "no Near Mint quote",
          "PSA 10 model": "$81,500 on 8 comps",
          "Last dated PSA 10 sale": "17 Feb, 236 days"
        },
        {
          "Card": "[Pikachu](/card/ru1-7) 7",
          "Set": "[Pokémon Rumble](/set/pok%C3%A9mon%20rumble)",
          "Listings": "2",
          "Days at zero": "0 of 21",
          "Raw quote": "$899.99 Near Mint",
          "PSA 10 model": "$46,400 on 4 comps",
          "Last dated PSA 10 sale": "3 Jun, 130 days"
        },
        {
          "Card": "[Metagross Star](/card/ex11-113) 113",
          "Set": "[Delta Species](/set/delta%20species)",
          "Listings": "3",
          "Days at zero": "0 of 21",
          "Raw quote": "no Near Mint quote",
          "PSA 10 model": "$45,600 on 4 comps",
          "Last dated PSA 10 sale": "29 Jun, 104 days"
        }
      ]
    },
    {
      "title": "Active listings against PSA 10 sale recency, 9,667 cards with a PSA 10 row on 2026-10-11",
      "columns": [
        "Listings",
        "Cards",
        "Sold in last 7 days",
        "8 to 30 days",
        "31 to 90 days",
        "91 days or more",
        "No dated sale in the feed"
      ],
      "rows": [
        {
          "Listings": "0",
          "Cards": "487",
          "Sold in last 7 days": "116 (24.5%)",
          "8 to 30 days": "164",
          "31 to 90 days": "134",
          "91 days or more": "60",
          "No dated sale in the feed": "13"
        },
        {
          "Listings": "1 to 4",
          "Cards": "1,466",
          "Sold in last 7 days": "297 (20.7%)",
          "8 to 30 days": "604",
          "31 to 90 days": "358",
          "91 days or more": "173",
          "No dated sale in the feed": "34"
        },
        {
          "Listings": "5 to 19",
          "Cards": "1,870",
          "Sold in last 7 days": "470 (25.4%)",
          "8 to 30 days": "732",
          "31 to 90 days": "426",
          "91 days or more": "223",
          "No dated sale in the feed": "19"
        },
        {
          "Listings": "20 to 99",
          "Cards": "2,929",
          "Sold in last 7 days": "786 (27.2%)",
          "8 to 30 days": "1,070",
          "31 to 90 days": "663",
          "91 days or more": "370",
          "No dated sale in the feed": "40"
        },
        {
          "Listings": "100 or more",
          "Cards": "2,915",
          "Sold in last 7 days": "734 (26.1%)",
          "8 to 30 days": "977",
          "31 to 90 days": "810",
          "91 days or more": "292",
          "No dated sale in the feed": "102"
        }
      ]
    }
  ],
  "charts": [
    {
      "title": "Where the 26 day change landed",
      "unit": "%",
      "note": "The 6,609 paired cards that began the window on twenty or more active listings, on the later of our two reads. Each bar is that group's share. A card that moved exactly a tenth sits in the 10% to 25% band, and one that moved exactly a quarter in the 25% to 50% band.",
      "points": [
        {
          "label": "Lost half or more",
          "value": 0.3,
          "basis": "23 cards"
        },
        {
          "label": "Lost 25% to 50%",
          "value": 1.9,
          "basis": "128 cards"
        },
        {
          "label": "Lost 10% to 25%",
          "value": 8,
          "basis": "532 cards"
        },
        {
          "label": "Lost under 10%",
          "value": 18.7,
          "basis": "1,238 cards"
        },
        {
          "label": "No change",
          "value": 1.8,
          "basis": "120 cards"
        },
        {
          "label": "Gained under 10%",
          "value": 36.7,
          "basis": "2,427 cards"
        },
        {
          "label": "Gained 10% to 25%",
          "value": 25.5,
          "basis": "1,688 cards"
        },
        {
          "label": "Gained 25% to 50%",
          "value": 6.3,
          "basis": "417 cards"
        },
        {
          "label": "Gained half or more",
          "value": 0.5,
          "basis": "36 cards"
        }
      ]
    }
  ],
  "sections": [
    "A staircase, not a line",
    "It is two dozen cards, not a market",
    "The cards with no shelf at all",
    "What this measure is not"
  ],
  "method": [
    "graded_snapshots on production Turso, read on 2026-10-12, reading the listings column, which is the active TCGplayer listing count that rides the same provider call as the graded snapshot. listings is non-null from 2026-08-29 and usable daily coverage starts 2026-09-15, giving 36 recorded days. Only numeric TCGplayer product keys are kept: the table holds two keyspaces and the catalog-id keys are the stale one, 17 of 11,901 on 12 October and none at all on 10 or 11 October, all dropped, and no join mixed them. listings repeats on every grade row of a card's day, so each day is collapsed with MAX(listings) GROUP BY card_key; on 11 October, 0 of 14,781 cards had grade rows that disagreed. Change panel: three-day blocks 2026-09-15 to 17 against 2026-10-10 to 12, each card paired to itself, two or more days present in each block. Universe across both blocks 15,647, of which 5,213 were excluded for fewer than two early days and 708 more for fewer than two late days, leaving 9,726 paired on the rerun read (15,646, 5,212, 742 and 9,692 on the first); cards present in only one block were dropped rather than aggregated, because a basket that changes membership is not a measurement. Each band takes its lower edge: a card down exactly 10% is in the 10% to 25% band and one down exactly 25% is in the 25% to 50% band, which is why the first two bars sum to the 151 cards down a quarter or more. Thirty one cards sit exactly on an edge, 15 of them on the 10% edge, 14 on the 25% edge and 2 on the 50% edge, and in floating point some of them land either side of it, so the bands are computed in exact arithmetic. The percentage ranking is floored at a start-block average of 20 listings, keeping 6,609 and excluding 3,117 on the rerun read (6,592 and 3,100 on the first), and the absolute ranking is reported separately. The deck, the lede and the stat row carry the first read; the distribution chart, the fallers table and the set table carry the rerun, which a later pull reproduces exactly. The day buckets, the zero cohort and the sale-recency table are not panel reads at all. 12 October was still being written when the panel was cut, 93,831 rows against 109,361 on 11 October, and it held 98,817 rows at the rerun; the rerun gives 9,726 paired, median +4.59%, 6,609 above the floor, 23 down half or more and 151 down a quarter or more; both reads are printed above. The chart is a fixed panel of the 8,172 paired cards present on all twelve plotted days, each indexed to its own 15 to 17 September average, and the plotted days are 15, 17, 19, 21, 22 and 23 September and 3, 4, 6, 8, 10 and 11 October. No plotted day is 12 October, and all twelve values come out the same on both reads, so the line chart does not move between them. Day buckets, the zero cohort and the sale-recency table are read on 2026-10-11, a complete day of 109,361 rows and 14,781 cards, and the 9,667 figure is the numeric-key cards with a PSA 10 row that day. Set grouping is keyed on language plus set name because cards.set_id is empty on 69,034 of 69,894 catalog rows, and the 230 products claimed by two catalog rows with differing set names were collapsed onto the row carrying the romanised name, so a set's paired count is a lower bound; 133 groups reach 25 paired cards. Two of the set labels are ours and not the catalog's: the 63 cards we print as S12a: VSTAR Universe carry only the Japanese name in our catalog, and SV11W: White Flare is a separate Japanese group from the English White Flare, which is why both appear. Prices are Near Mint quotes from nm_history on 2026-10-11 and the provider's PSA 10 model from the same day with its comp count printed; an absent dated sale is recorded as absent and never as a zero. Cadence figures come from a 348-card trace, a fixed stride through the paired panel read over every recorded day each card has, and from the 16 one-day steps inside the window where both days are readable, which excludes 12 October as a step endpoint because it was still filling. An unchanged stretch is a run of consecutive recorded days carrying one value, and a downward step is a recorded day lower than the recorded day before it, counted over each card's own series; for the Prism Star cluster those series run 18 to 30 days. Every read is an indexed day read or an exact-key read; no api_cache read, no prefix predicate and no table scan. Not financial advice."
  ],
  "terms": "Figures are moonstone's own recorded measurements, dated as published. Quote them with the population stated beside them. The article at `url` is the human form of this file."
}