{
  "url": "https://www.moonstonehq.com/articles/cheapest-way-to-buy-pokemon-packs",
  "slug": "cheapest-way-to-buy-pokemon-packs",
  "title": "The Cheapest Way to Buy Pokemon Packs, Measured",
  "summary": "Only 271 of the 2,358 sealed SKUs we track can be priced per pack honestly, and where one set sells packs two ways the dearest costs a median 1.31x the cheapest.",
  "section": "Market Structure",
  "published": "2026-09-22",
  "readMinutes": 9,
  "publisher": "moonstone",
  "findings": [
    {
      "value": "271",
      "measures": "of 2,358 sealed SKUs can be priced per pack",
      "basis": "11.5% of the catalog; the rest are multi-unit lots, or formats our pack-count rule refuses to guess at, or the 16 SKUs whose own name contradicts the count"
    },
    {
      "value": "1.31x",
      "measures": "median gap between the dearest and cheapest channel",
      "basis": "across 65 set-editions selling packs through two or more priceable formats"
    },
    {
      "value": "37 of 65",
      "measures": "set-editions where the booster box is the cheapest channel",
      "basis": "the loose pack is cheapest in 26 and the bundle in 2"
    }
  ],
  "tables": [
    {
      "title": "The sixteen priceable SKUs whose own name contradicts their pack count, all excluded",
      "columns": [
        "Product",
        "Assigned packs",
        "Name implies",
        "Why"
      ],
      "rows": [
        {
          "Product": "Trick or Trade BOOster Bundle (120 ct)",
          "Assigned packs": "6",
          "Name implies": "120",
          "Why": "explicit count in the name"
        },
        {
          "Product": "Trick or Trade BOOster Bundle (40 ct)",
          "Assigned packs": "6",
          "Name implies": "40",
          "Why": "explicit count in the name"
        },
        {
          "Product": "Trick or Trade BOOster Bundle 2023 (120 ct)",
          "Assigned packs": "6",
          "Name implies": "120",
          "Why": "explicit count in the name"
        },
        {
          "Product": "Trick or Trade BOOster Bundle 2023 (50 ct)",
          "Assigned packs": "6",
          "Name implies": "50",
          "Why": "explicit count in the name"
        },
        {
          "Product": "Trick or Trade BOOster Bundle 2024 (120 ct)",
          "Assigned packs": "6",
          "Name implies": "120",
          "Why": "explicit count in the name"
        },
        {
          "Product": "Trick or Trade BOOster Bundle 2024 (35 mini packs)",
          "Assigned packs": "6",
          "Name implies": "35",
          "Why": "explicit count in the name"
        },
        {
          "Product": "Trick or Trade BOOster Bundle 2024 (80 mini packs)",
          "Assigned packs": "6",
          "Name implies": "80",
          "Why": "explicit count in the name"
        },
        {
          "Product": "Trick or Trade BOOster Bundle - Mini Booster Pack",
          "Assigned packs": "6",
          "Name implies": "1",
          "Why": "a single mini pack; the set name contains \"Booster Bundle\""
        },
        {
          "Product": "Trick or Trade BOOster Bundle 2023 - Mini Booster Pack",
          "Assigned packs": "6",
          "Name implies": "1",
          "Why": "a single mini pack; the set name contains \"Booster Bundle\""
        },
        {
          "Product": "Trick or Trade BOOster Bundle 2024 - Mini Booster Pack",
          "Assigned packs": "6",
          "Name implies": "1",
          "Why": "a single mini pack; the set name contains \"Booster Bundle\""
        },
        {
          "Product": "2 Booster Packs & Celebi Collector's Pin",
          "Assigned packs": "1",
          "Name implies": "2",
          "Why": "inline count in the name"
        },
        {
          "Product": "2 Booster Packs & Jirachi Collector's Pin",
          "Assigned packs": "1",
          "Name implies": "2",
          "Why": "inline count in the name"
        },
        {
          "Product": "2 Booster Packs & Latias Collector's Pin",
          "Assigned packs": "1",
          "Name implies": "2",
          "Why": "inline count in the name"
        },
        {
          "Product": "2 Booster Packs & Latios Collector's Pin",
          "Assigned packs": "1",
          "Name implies": "2",
          "Why": "inline count in the name"
        },
        {
          "Product": "Greninja ex Battle Deck & 2 Booster Bundle",
          "Assigned packs": "6",
          "Name implies": "2",
          "Why": "inline count in the name"
        },
        {
          "Product": "Forbidden Light 3-Card Booster Pack",
          "Assigned packs": "1",
          "Name implies": "less than a pack",
          "Why": "a partial pack, not comparable to one"
        }
      ]
    },
    {
      "title": "Every sealed format in the catalog, 2,358 priced SKUs, 2026-09-22",
      "columns": [
        "Format",
        "SKUs",
        "of which lots",
        "priceable per pack",
        "median price",
        "median cost per pack"
      ],
      "rows": [
        {
          "Format": "Blister",
          "SKUs": "327",
          "of which lots": "21",
          "priceable per pack": "0",
          "median price": "$34.95",
          "median cost per pack": "not recorded"
        },
        {
          "Format": "Booster Pack",
          "SKUs": "311",
          "of which lots": "122",
          "priceable per pack": "183",
          "median price": "$72.98",
          "median cost per pack": "$49.67"
        },
        {
          "Format": "Collection",
          "SKUs": "275",
          "of which lots": "60",
          "priceable per pack": "0",
          "median price": "$184.28",
          "median cost per pack": "not recorded"
        },
        {
          "Format": "Tin",
          "SKUs": "253",
          "of which lots": "41",
          "priceable per pack": "0",
          "median price": "$100.00",
          "median cost per pack": "not recorded"
        },
        {
          "Format": "Product (unclassified)",
          "SKUs": "250",
          "of which lots": "35",
          "priceable per pack": "0",
          "median price": "$90.41",
          "median cost per pack": "not recorded"
        },
        {
          "Format": "Deck",
          "SKUs": "221",
          "of which lots": "26",
          "priceable per pack": "0",
          "median price": "$42.51",
          "median cost per pack": "not recorded"
        },
        {
          "Format": "Mini Tin",
          "SKUs": "170",
          "of which lots": "38",
          "priceable per pack": "0",
          "median price": "$50.63",
          "median cost per pack": "not recorded"
        },
        {
          "Format": "Elite Trainer Box",
          "SKUs": "127",
          "of which lots": "48",
          "priceable per pack": "0",
          "median price": "$570.57",
          "median cost per pack": "not recorded"
        },
        {
          "Format": "Premium Collection",
          "SKUs": "120",
          "of which lots": "19",
          "priceable per pack": "0",
          "median price": "$246.18",
          "median cost per pack": "not recorded"
        },
        {
          "Format": "Booster Box",
          "SKUs": "86",
          "of which lots": "29",
          "priceable per pack": "57",
          "median price": "$1,647.98",
          "median cost per pack": "$18.83"
        },
        {
          "Format": "Booster Bundle",
          "SKUs": "71",
          "of which lots": "29",
          "priceable per pack": "31",
          "median price": "$168.54",
          "median cost per pack": "$14.92"
        },
        {
          "Format": "Build & Battle",
          "SKUs": "69",
          "of which lots": "29",
          "priceable per pack": "0",
          "median price": "$225.58",
          "median cost per pack": "not recorded"
        },
        {
          "Format": "ETB (Pokemon Center)",
          "SKUs": "62",
          "of which lots": "21",
          "priceable per pack": "0",
          "median price": "$412.31",
          "median cost per pack": "not recorded"
        },
        {
          "Format": "Half Box",
          "SKUs": "10",
          "of which lots": "0",
          "priceable per pack": "0",
          "median price": "$252.50",
          "median cost per pack": "not recorded"
        },
        {
          "Format": "Hanger Box",
          "SKUs": "5",
          "of which lots": "0",
          "priceable per pack": "0",
          "median price": "$166.22",
          "median cost per pack": "not recorded"
        },
        {
          "Format": "Accessory",
          "SKUs": "1",
          "of which lots": "0",
          "priceable per pack": "0",
          "median price": "$999.99",
          "median cost per pack": "not recorded"
        }
      ]
    },
    {
      "title": "Distribution of the within-set channel gap, 65 set-editions",
      "columns": [
        "Percentile",
        "Dearest channel / cheapest channel, per pack"
      ],
      "rows": [
        {
          "Percentile": "Minimum",
          "Dearest channel / cheapest channel, per pack": "1.011x"
        },
        {
          "Percentile": "10th",
          "Dearest channel / cheapest channel, per pack": "1.050x"
        },
        {
          "Percentile": "25th",
          "Dearest channel / cheapest channel, per pack": "1.109x"
        },
        {
          "Percentile": "Median",
          "Dearest channel / cheapest channel, per pack": "1.31x"
        },
        {
          "Percentile": "75th",
          "Dearest channel / cheapest channel, per pack": "1.499x"
        },
        {
          "Percentile": "90th",
          "Dearest channel / cheapest channel, per pack": "1.795x"
        },
        {
          "Percentile": "Maximum",
          "Dearest channel / cheapest channel, per pack": "1,080.022x"
        }
      ]
    },
    {
      "title": "Which channel is cheapest, and which is dearest, per set-edition",
      "columns": [
        "Format",
        "Cheapest in",
        "Dearest in"
      ],
      "rows": [
        {
          "Format": "Booster Box",
          "Cheapest in": "37 of 65",
          "Dearest in": "18 of 65"
        },
        {
          "Format": "Booster Pack",
          "Cheapest in": "26 of 65",
          "Dearest in": "28 of 65"
        },
        {
          "Format": "Booster Bundle",
          "Cheapest in": "2 of 65",
          "Dearest in": "19 of 65"
        }
      ]
    },
    {
      "title": "Pairwise cost per pack, one figure per set-edition",
      "columns": [
        "Comparison",
        "Set-editions",
        "Median ratio",
        "Dearer in"
      ],
      "rows": [
        {
          "Comparison": "Loose pack / booster box",
          "Set-editions": "55",
          "Median ratio": "1.177x",
          "Dearer in": "37 of 55"
        },
        {
          "Comparison": "Booster bundle / booster box",
          "Set-editions": "18",
          "Median ratio": "1.327x",
          "Dearer in": "17 of 18"
        },
        {
          "Comparison": "Loose pack / booster bundle",
          "Set-editions": "28",
          "Median ratio": "0.946x",
          "Dearer in": "8 of 28"
        }
      ]
    },
    {
      "title": "Cost per pack across all 271 priceable SKUs",
      "columns": [
        "Percentile",
        "Cost per pack"
      ],
      "rows": [
        {
          "Percentile": "Minimum",
          "Cost per pack": "$4.89"
        },
        {
          "Percentile": "10th",
          "Cost per pack": "$8.66"
        },
        {
          "Percentile": "25th",
          "Cost per pack": "$12.29"
        },
        {
          "Percentile": "Median",
          "Cost per pack": "$31.42"
        },
        {
          "Percentile": "75th",
          "Cost per pack": "$186.41"
        },
        {
          "Percentile": "90th",
          "Cost per pack": "$515.29"
        },
        {
          "Percentile": "Maximum",
          "Cost per pack": "$15,000.00"
        }
      ]
    },
    {
      "title": "The five cheapest and five dearest costs per pack in the catalog, ranks 1 to 5 of 271 each way",
      "columns": [
        "Product",
        "Set",
        "Price",
        "Packs",
        "Cost per pack"
      ],
      "rows": [
        {
          "Product": "Perfect Order Booster Box",
          "Set": "[Perfect Order](/set/perfect%20order)",
          "Price": "$175.99",
          "Packs": "36",
          "Cost per pack": "$4.89"
        },
        {
          "Product": "Chaos Rising Booster Box",
          "Set": "[Chaos Rising](/set/chaos%20rising)",
          "Price": "$191.83",
          "Packs": "36",
          "Cost per pack": "$5.33"
        },
        {
          "Product": "Pitch Black Booster Box",
          "Set": "[Pitch Black](/set/me05%3A%20pitch%20black)",
          "Price": "$191.88",
          "Packs": "36",
          "Cost per pack": "$5.33"
        },
        {
          "Product": "Chaos Rising Booster Pack",
          "Set": "[Chaos Rising](/set/chaos%20rising)",
          "Price": "$5.39",
          "Packs": "1",
          "Cost per pack": "$5.39"
        },
        {
          "Product": "Perfect Order Booster Pack",
          "Set": "[Perfect Order](/set/perfect%20order)",
          "Price": "$5.83",
          "Packs": "1",
          "Cost per pack": "$5.83"
        },
        {
          "Product": "Pokemon Base Set (Shadowless) [1st Edition] Booster Pack",
          "Set": "[Base Set (Shadowless)](/set/base%20set%20%28shadowless%29)",
          "Price": "$15,000.00",
          "Packs": "1",
          "Cost per pack": "$15,000.00"
        },
        {
          "Product": "Legendary Collection Booster Pack",
          "Set": "[Legendary Collection](/set/legendary%20collection)",
          "Price": "$2,499.99",
          "Packs": "1",
          "Cost per pack": "$2,499.99"
        },
        {
          "Product": "Neo Destiny Booster Pack [1st Edition]",
          "Set": "[Neo Destiny](/set/neo%20destiny)",
          "Price": "$2,095.00",
          "Packs": "1",
          "Cost per pack": "$2,095.00"
        },
        {
          "Product": "Aquapolis Booster Pack",
          "Set": "[Aquapolis](/set/aquapolis)",
          "Price": "$1,999.99",
          "Packs": "1",
          "Cost per pack": "$1,999.99"
        },
        {
          "Product": "Dragon Frontiers Booster Pack",
          "Set": "EX Dragon Frontiers (no set-history page to link)",
          "Price": "$1,999.99",
          "Packs": "1",
          "Cost per pack": "$1,999.99"
        }
      ]
    }
  ],
  "charts": [],
  "sections": [
    "Most of the sealed catalog has no cost per pack",
    "Where two channels sell the same packs",
    "Two prices that cannot both be real",
    "The full range of a pack",
    "What this study cannot show",
    "What would overturn this"
  ],
  "method": [
    "Universe: every row of sealed_products with price_usd > 0 on 2026-09-22, which is 2,358 of 2,358 rows across 157 distinct set_name values (156 after the era-prefix strip below merges SWSH: Crown Zenith into Crown Zenith, the only collision). This table is the TCGplayer sealed catalog as refreshed nightly by the sync-sealed cron; its prices are ASKS. It is a different pipeline from the singles prices on card pages. Format classification uses classifyProduct() from src/server/set-products.ts unchanged, which also flags lot SKUs by the pattern case / display / [Set of N] / lot. Cost per pack uses perPackOf() unchanged: price_usd divided by the packs column, only on non-lot SKUs with packs > 0 and price > 0. PROVENANCE OF THE PACK COUNT: the packs column is NOT supplied by TCGplayer. It is written by the sync-sealed cron from packsIn() in src/server/sealed-ppt.ts, a name-matching rule of ours that returns 36 for a Booster Box, 6 for a Booster Bundle, 1 for a Booster Pack, and null for a case and for an Elite Trainer Box, the latter deliberately because ETB counts vary by era. That is why 13 of 16 formats show no per-pack figure: the rule declines to assert a count, not the catalog. CONTRADICTION EXCLUSION: because the rule reads names, it can misread one, so we exclude any priceable SKU whose own name states a count or a unit kind that disagrees with the assigned value. Four disjoint clauses: an explicit parenthesised or bracketed count such as (120 ct), (35 mini packs) or [Set of N] that differs from packs; an inline count such as \"2 Booster Packs\" where the number is between 2 and 12 and does not appear in the row's own set_name; a name whose head noun is a single Booster Pack while packs is not 1, which is how the Trick or Trade family inherits 6 from a set literally named Booster Bundle; and a partial pack such as \"3-Card Booster Pack\". That removes 16 of 287 SKUs, leaving 271. All sixteen are listed in full in the body. The exclusion moves the coverage share from 12.2% to 11.5%, the cost-per-pack median from $30.76 to $31.42, its minimum from $0.34 to $4.89, and the within-set gap median from 1.30x to 1.31x; it leaves the 65-group panel and the bundle-over-box figure of 1.327x completely unchanged. Set grouping strips the sealed catalog's era prefix (the leading token before a dash or colon, as in SWSH07: or XY -) and lower-cases the tail; grouping is additionally keyed on an edition tag parsed from the SKU name ([1st Edition], [Unlimited Edition], [Revised Unlimited Edition]) so that editions are never compared to one another. Where one set-edition holds several SKUs of the same format, that format's figure is the median of them. Medians take the upper-middle value on even samples throughout. The pairwise table reports one ratio per set-edition, never per SKU. DEDUPLICATION: every count here runs over sealed_products, whose 2,358 rows carry 2,358 distinct product ids, so nothing is counted twice; the 1,212 TCGplayer product ids that two catalog CARD rows both claim do not touch this study, which never reads the cards table. Scripts: apps/web/scripts/sealed-a4-final.mts for the base pass and sealed-audit-a-final.mts for the contradiction rule and the post-exclusion recompute. Every printed figure and its query are recorded in apps/web/.scratch-sealed/figures.json."
  ],
  "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."
}