Panini Threads Basketball · NBA
2018-19 Threads
- Base set
- 100 cards · checklist
- Parallels
- 97 · 11 on the base set
- Released
- April 24, 2019
licensed (NBA)
Base set parallels · 11
- Dazzlenot documentedunnumbered
- PremiumPanini Direct · Premium Edition Box/199
- Dazzle Purplenot documented/99
- Dazzle Pinknot documented/75
- Premium BluePanini Direct · Premium Edition Box/75
- Dazzle Bluenot documented/25
- Dazzle Goldnot documented/10
- Premium GoldPanini Direct · Premium Edition Box/10
- Dazzle Greennot documented/5
- Dazzle Blacknot documented/1
- Premium BlackPanini Direct · Premium Edition Box/1
Insert sets · 20
- Association Jersey SP10 cards7 parallels
- Authentic Threads59 cards1 parallels
- Automatic10 cards3 parallels
- Board of Directors15 cards7 parallels
- Bringing Down the House10 cards3 parallels
- Century Collection20 cards3 parallels
- Floor Generals20 cards7 parallels
- High Octane10 cards7 parallels
- Icon Jersey SP10 cards3 parallels
- In Motion15 cards3 parallels
- Next Wave15 cards3 parallels
- Our Time15 cards3 parallels
- Rookie Threads40 cards1 parallels
- Rookies Association30 cards7 parallels
- Rookies Icon Jersey30 cards3 parallels
- Rookies Statement Jersey SP30 cards3 parallels
- Shoot to Thrill20 cards3 parallels
- Statement Jersey SP10 cards3 parallels
- Swingmen15 cards7 parallels
- Threedom!15 cards3 parallels
Autograph sets · 2
Open questions · 22show
- G-002 COUNTER-EVIDENCE TO THE PREMIUM EDITION VERDICT, recorded rather than smoothed over. Three facts cut the other way and none was strong enough to overturn the chase-set test. (1) cardboardconnection gives the Premium Edition its own release date - its date line reads "Retail: April 24, 2019 (can vary by location); Premium: May 1, 2019" - and its own box configuration, "Premium Edition Box - 15 cards per box", while the article body says "The $100 boxes include two autographs and every card is issued on premium stock." and "The 2018-19 Panini Threads Basketball Premium Edition box format is exclusive to the online Panini Direct store." (https://www.cardboardconnection.com/2018-19-panini-threads-basketball-cards). A separate date, a separate price, a separate sales channel and a separate box are four of the five properties the hoopspremium build used. (2) A web search returned a Beckett article titled "2018-19 Panini Threads Premium Basketball Checklist, Team Set Lists and Details" alongside a separate "2018-19 Panini Threads Basketball Checklist, Team Set Lists and Details" - i.e. Beckett appears to paginate the two formats as two products. THE ARTICLE ITSELF WAS NOT READ: beckett.com 302s to https://maintenance.beckett.com/ , as the 2018-19 scope memo's section 5 records, so this rests on a search-result title only and is deliberately given no weight. (3) The release_date written is the RETAIL date; if the Premium Edition is ever split out it needs 2019-05-01.
- G-003 RELEASE DATE is 2019-04-24 on two independent sources and neither labels its date an estimate: tcdb renders "Release Date: April 24, 2019" (https://www.tcdb.com/ViewSet.cfm/sid/203690/2018-19-Panini-Threads) and cardboardconnection renders "Retail: April 24, 2019 (can vary by location); Premium: May 1, 2019" (https://www.cardboardconnection.com/2018-19-panini-threads-basketball-cards). The parenthetical "(can vary by location)" is a distribution caveat, not an estimate label, so the EXTRACTION_SPEC rule about "Estimated Release Date" does not fire. The 2019-05-01 Premium Edition date is single-source to cardboardconnection and is not written to any column because release.csv holds one date.
- G-004 BASE SET SIZE: three different numbers are in play and only one is an enumeration. The tcdb parent header says "Total Cards: 220" (https://www.tcdb.com/ViewSet.cfm/sid/203690/2018-19-Panini-Threads); cardboardconnection prints "### Base Set Checklist" / "100 cards." and then "### Rookies / Base SP Jersey Set Checklist" / "220 cards." (https://www.cardboardconnection.com/2018-19-panini-threads-basketball-cards) - note its SECOND heading also says 220, which cannot be the size of a section that starts at card 101 and ends at 220 (that is 120 cards), so that figure is either the last card number or the whole parent count filed under the wrong heading. base_set_size=100 was written from a contiguous enumeration of cards 1-100, and the 101-220 block was sized off the last rendered page as EXTRACTION_SPEC 5.3 requires: Gallery page 22 is the last page carrying tiles, Gallery page 23 carries none, and Checklist.cfm?PageIndex=4 renders no rows. The header agreement is corroboration only; no header sized anything.
- G-005 EXTRACTION_SPEC 5.3 APPLIED TO A BLOCK SHAPE THE SECTION DOES NOT DESCRIBE. Section 5.3 characterises the block filed past the base run as one "flagged AU, MEM, RC, SN99 or similar" - an autograph or memorabilia block. This release's block, cards 101-220, carries NO AU and NO MEM token anywhere: its rookie rows carry only "RC" and its veteran rows carry no token at all. It is a jersey-DESIGN short-print block (Association, Icon and Statement, the three NBA Nike uniform editions), not a hit block. The exclusion rule still applies on its own terms - it is a set filed inside the parent checklist past the base run - but 5.3's detection heuristic would not have fired on it, and an agent screening for AU/MEM flags would have written base_set_size=220. Consistent with the season: contenders-bkb-2018-19 and contendersoptic-bkb-2018-19 both exclude their blocks and both set base_set_size=100. No release in data/ has a jersey-edition block of this shape, so there is no sibling convention to check against.
- G-006 CARD COUNT DISAGREEMENTS between tcdb and cardboardconnection, three of them, all written to the tcdb figure because tcdb's is backed by a rendered row count and cardboardconnection's is a heading line, and EXTRACTION_SPEC 3.3 says aggregator headers lie including against their own lists. In Motion: tcdb "Total Cards: 15" and 15 rendered rows, plus 15 on each of its three parallel sets; cardboardconnection "10 cards". Shoot to Thrill: tcdb "Total Cards: 20" and 20 rendered rows under two URL variations; cardboardconnection "15 cards". Signage: tcdb "Total Cards: 53"; cardboardconnection "52 cards". Nobody counted the cardboardconnection lists row by row - the page was read through a summarising fetch and the lists themselves were not enumerated - so the disagreement is between one counted source and one uncounted one.
- G-007 SIGNAGE IS NOT CONTIGUOUS AND ITS GOLD PARALLEL IS LARGER THAN IT IS. Checklist.cfm on sid 203787 renders rows beginning at card 2 with card numbers 1, 4 and 10 absent from the rendered sequence, against a stated "Total Cards: 53". Its Gold parallel, sid 203788, states "Total Cards: 60" and DOES render cards 1 (Kobe Bryant) and 4 (Kevin Durant). So the parallel's roster is not a subset of its parent's, which is EXTRACTION_SPEC 5.4's fourth unit - a parallel's roster - appearing in the opposite direction from usual. card_count 53 and 60 are written as rendered; neither was reconciled. Signage Premium states 40 and Signage Premium Gold states 60. Needs a card-level pass under CHASE_CHECKLIST_SPEC. Source: https://www.tcdb.com/Checklist.cfm/sid/203787/2018-19-Panini-Threads-Signage
- G-008 THE SCHEMA CANNOT EXPRESS "SERIAL NUMBERED, RUN VARIES BY CARD" AND TWO TIERS ARE IN THAT STATE. Signage Premium (sid 203789) renders "AU, SN20" on card 1, "AU, SN100" on card 2, "AU, SN50" on card 3, "AU, SN20" on card 4, "AU, SN100" on card 7 and "AU, SN20" on card 10. Rookie Signatures Premium (sid 203779) renders "AU, SN90" on cards 1 and 2 and "AU, SN105" on cards 3 and 4. Both tiers are PROVABLY serial numbered with a per-card variable run. EXTRACTION_SPEC 2.3 forces print_run and serial_numbered to move together, so both were written UNKNOWN/UNKNOWN, which is indistinguishable from having found nothing. The held fact is here instead. Both rows are set-scope, so the base-set-scope prohibition on print_run=UNKNOWN is not engaged. Sources: https://www.tcdb.com/Checklist.cfm/sid/203789/2018-19-Panini-Threads-Signage-Premium?sort=0 ; https://www.tcdb.com/Checklist.cfm/sid/203779/2018-19-Panini-Threads-Rookie-Signatures-Premium?sort=0
- G-009 CHANNEL UNRESOLVED, channel=UNKNOWN with an empty channel_basis, on all seven base-set Dazzle tiers (Dazzle, Dazzle Purple, Dazzle Pink, Dazzle Blue, Dazzle Green, Dazzle Gold, Dazzle Black) and on the tiers of Rookies Association, Association Jersey SP, Authentic Threads, Board of Directors, Floor Generals, High Octane, Rookie Signatures, Rookie Threads, Signage and Swingmen. What IS sourced is a product-level statement - "Split across three retail formats and one online-only Premium Edition, 2018-19 Panini Threads Basketball is back for NBA fans." - and a box list with no hobby configuration in it (https://www.cardboardconnection.com/2018-19-panini-threads-basketball-cards). What is NOT sourced is which tier sits in which of those formats. Since every pack-pulled format here is a retail SKU, an argument exists that these tiers are channel=retail; that is an inference from the product to the tier, exactly what EXTRACTION_SPEC 1.5 forbids, and prizm-bkb-2018-19 made the same call the same way for tiers cardboardconnection listed without a format annotation. If a later pass decides the product-level statement does carry to the tier, the basis would be sourced-presence and 48 rows change together.
- G-010 BOX SKUs THE CHANNEL TAXONOMY DOES NOT CARRY, TWO OF THEM PLUS ONE ABSENT ENTIRELY. cardboardconnection annotates four insert sets "Hanger/Fat Pack only." (Bringing Down the House, Century Collection, Next Wave, Threedom) and two block sub-sections "Rookies Statement Jersey SP - Hanger/Fat Pack" and "Statement Jersey SP - Hanger/Fat Pack". reference/channel_taxonomy.csv records hanger as "Retail box type appearing in our text. HAS NO ENUM VALUE." and fat-pack as "Also 'value pack'. Appears in our text. HAS NO ENUM VALUE." Those 18 rows were written channel=UNKNOWN with channel_basis EMPTY and channel_sku="Hanger/Fat Pack", following the prizm-bkb-2018-19 precedent for "(Multi-Pack)" and "(Gravity Feed)", rather than forced to retail. SEPARATELY: "Premium Edition Box" is a box format this release's own sources name and channel_taxonomy.csv does not carry AT ALL - not as a box-sku row, not anywhere - the same hole gravity-feed had. It was written into channel_sku on 32 rows beside channel=panini-direct. Source: https://www.cardboardconnection.com/2018-19-panini-threads-basketball-cards
- G-011 CHANNEL=panini-direct ON 32 ROWS RESTS ON A NAME LINK, NOT ON A TIER-LEVEL CITATION, WHICH IS WHY channel_basis IS from-name AND NOT sourced-exclusive. The citation is real - "The 2018-19 Panini Threads Basketball Premium Edition box format is exclusive to the online Panini Direct store." plus "The $100 boxes include two autographs and every card is issued on premium stock." (https://www.cardboardconnection.com/2018-19-panini-threads-basketball-cards) - but it names a BOX, and the step from "a tier called Premium" to "the box called Premium Edition" is an inference this build made and did not source. Two independent facts make it a strong inference and neither makes it a citation: tcdb's four Premium base tiers each state "Total Cards: 140" and each stop at card 140, and cardboardconnection independently footnotes "*Premium parallels only for Rookies Association and Association SP.*" - 100 base cards plus the 40 cards of those two sub-sections. EXTRACTION_SPEC 2.3 forbids promoting from-name to sourced-exclusive without new evidence; a Panini blog post or a retailer box description naming the parallels would supply it.
- G-012 CHANNEL=blaster ON 18 ROWS, channel_basis=sourced-exclusive. For the four Blaster-only insert sets the citation is the set's own heading annotation on cardboardconnection - for example "Automatic Set Checklist - 10 cards. Blaster only." - and the parallel list is printed under that same heading. For Rookies Icon Jersey and Icon Jersey SP the citations are the headings "Rookies Icon Jersey - Blaster" and "Icon Jersey SP - Blaster only" plus the body sentence "Icon jersey options for the base and rookie cards are exclusive to Blaster boxes." NOTE that channel_taxonomy.csv classes blaster as a box-sku, not a trade channel, and records that it does NOT sit under retail; the enum nevertheless carries it, so the SKU and the channel value coincide here and channel_sku repeats it. Source: https://www.cardboardconnection.com/2018-19-panini-threads-basketball-cards
- G-013 TWO NEW parallel_family VALUES MINTED: "Dazzle" and "Premium". Neither appears in any of the 130 families already present across the catalogue's parallels.csv files (checked with csv.DictReader over data/*/parallels.csv). Both are the names this line's own sources use for two genuinely distinct finishes - a foil Dazzle treatment sold in the retail formats and a premium-stock Premium treatment sold in the online box - and every tier in this release belongs to one of them or to "other". Reported so they can be checked against the existing families rather than quietly becoming synonyms; "Sparkle", "Glitter" and "Shimmer" already exist and a reviewer should confirm Dazzle is not one of them under another name. The Prime memorabilia tiers and the plain Gold autograph tiers were filed as "other" rather than minting two more.
- G-014 cardboardconnection CONTRADICTS ITSELF ON ONE PRINT RUN AND A ROW-LEVEL PROBE RESOLVED IT. Its parallel line for the Rookies / Base SP Jersey set reads "*PREMIUM PARALLELS*: Premium #/199, Blue #/85 or #/75, Gold #/10, Black 1/1." - the source states two values for the same tier. tcdb's Premium Blue set (sid 203699) renders the literal token "SN75" on its page-1 rows AND on rows 101-140 of page 2, so 75 was written for both the base-set and the block-region rows. The 85 is not an error in the source: the Premium Blue parallels of the INSERT sets - Board of Directors, Floor Generals, High Octane and Swingmen - all render "SN85", so cardboardconnection appears to have merged two different tiers' figures into one line. Written as 75 at base and block scope and 85 at insert scope, both from row-level probes; value_contested left empty because the probe settled it. Sources: https://www.tcdb.com/Checklist.cfm/sid/203699/2018-19-Panini-Threads-Premium-Blue?PageIndex=2&sort=0 ; https://www.cardboardconnection.com/2018-19-panini-threads-basketball-cards
- G-015 Errors.cfm FALSE NEGATIVE REPRODUCED INDEPENDENTLY ON THIS PARENT. https://www.tcdb.com/Errors.cfm/sid/203690/2018-19-Panini-Threads returns "No errors or variations have been added for this set yet." while the same set's own Gallery rendering carries the literal token "UER" on three cards with error text attached: card 63 Domantas Sabonis and card 64 Victor Oladipo both "UER: Denver Nuggets Logo On Front Of Card", and card 65 Myles Turner "UER: Card front has Denver Nuggets logo" (https://www.tcdb.com/Gallery.cfm/sid/203690/2018-19-Panini-Threads?PageIndex=7&sort=0); the same three rows carry UER on https://www.tcdb.com/Checklist.cfm/sid/203690/2018-19-Panini-Threads?PageIndex=1&sort=0 . This is a second measured instance of the defect EXTRACTION_SPEC records against sid 182809 on 2026-09-20, on a different parent, and it confirms that the endpoint returns that identical sentence on sets that provably do have UER rows. The clean base run here rests on a contiguous enumeration, not on this endpoint. All three card numbers are plain integers; the UER concerns a team logo, so the non-integer card_number trap did not fire and nothing needed a correction marker.
- G-016 THE FETCH LAYER DROPS tcdb FLAG TOKENS ON Checklist.cfm, MEASURED THREE TIMES IN THIS BUILD, AND THE SPEC ONLY WARNS ABOUT Gallery.cfm. EXTRACTION_SPEC 4.1 records that "Gallery.cfm can drop a FLAG TOKEN while keeping the tile". The same defect occurred here on Checklist.cfm. (1) Board of Directors Premium Black, sid 203713: the plain URL returned "no token" on its first three rows; the identical page with "?sort=0" appended returned "SN1" on all fifteen. (2) Century Collection Dazzle Black, sid 203722: "?sort=0" returned "no token" on its first three rows, "?PageIndex=1" returned "SN1" on all twenty. (3) Floor Generals Premium, sid 203728: a single row (card 2) came back without a token while cards 1 and 3 carried "SN199"; a re-fetch returned "SN199" on all twenty. So the drop happens whole-set AND per-row. CONSEQUENCE FOR THIS BUILD: every tier written as unnumbered was re-fetched under a second, differently varied URL first - all thirteen plain Dazzle tiers (one base-set, twelve insert-scope) agreed across two variations. CONSEQUENCE FOR THE SPEC: the Gallery-only wording invites exactly the false unnumbered this build nearly wrote three times.
- G-017 ViewSet.cfm AND Checklist.cfm DISAGREE ON THE FLAG COLUMN ON THIS PARENT, IN BOTH DIRECTIONS. Signage, sid 203787: ViewSet.cfm renders no token on any row while Checklist.cfm renders "AU" on every row - the direction EXTRACTION_SPEC 3.2 documents, and the reason set_type=auto was still written. Automatic Dazzle Black, sid 203706: ViewSet.cfm "no token", Checklist.cfm "SN1" - same direction. Authentic Threads, sid 203702: the OPPOSITE direction - ViewSet.cfm renders "MEM" on every row and Checklist.cfm renders none. So ViewSet is not uniformly the lossy one and neither endpoint alone can be trusted for an absence. Every serial probe in this build was run on Checklist.cfm as the spec requires; the MEM evidence for Authentic Threads and Rookie Threads comes from ViewSet.cfm and is single-endpoint in one case.
- G-018 LINE SPAN: THREADS IS AN EIGHT-SEASON BASKETBALL LINE, NOT A ONE-OFF, AND THE CATALOGUE CARRIES NO ROW SAYING SO. The 2018-19 scope memo's section 6 lists Threads under "Genuinely 2018-19-and-earlier" and reference/data_line_coverage.csv carries exactly one threads row, "threads,Panini Threads Basketball,2019-20,verified-not-released". tcdb's season product indexes return a Panini Threads basketball product in SEVEN earlier seasons: 2009-10 sid 9766, 2010-11 sid 25445, 2012-13 sid 72723, 2014-15 sid 109294, 2015-16 sid 126637, 2016-17 sid 152880, 2017-18 sid 176608, plus 2018-19 sid 203690. The 2011-12 and 2013-14 indexes return no Threads entry. Corroborated on the immediately preceding season by cardboardconnection's own sentence "Collectors will likely notice that the '18-19 release ramps up considerably in comparison to the very basic 2017-18 set." and by its opening "2018-19 Panini Threads Basketball is back for NBA fans." NO EARLIER SEASON WAS BUILT - this is a coverage finding for the ledger, not a build. The per-season evidence is SINGLE-SOURCE to tcdb's season indexes for six of the seven; only 2017-18 has a second source. Indexes: https://www.tcdb.com/ViewAll.cfm/sp/Basketball/year/2009 ; https://www.tcdb.com/ViewAll.cfm/sp/Basketball/year/2010 ; https://www.tcdb.com/ViewAll.cfm/sp/Basketball/year/2011 ; https://www.tcdb.com/ViewAll.cfm/sp/Basketball/year/2012 ; https://www.tcdb.com/ViewAll.cfm/sp/Basketball/year/2013 ; https://www.tcdb.com/ViewAll.cfm/sp/Basketball/year/2014 ; https://www.tcdb.com/ViewAll.cfm/sp/Basketball/year/2015 ; https://www.tcdb.com/ViewAll.cfm/sp/Basketball/year/2016 ; https://www.tcdb.com/ViewAll.cfm/sp/Basketball/year/2017
- G-019 THE 101-220 BLOCK'S PARALLELS ARE FILED scope_type=set, NOT scope_type=block, AND THE REASON IS STRUCTURAL. EXTRACTION_SPEC 2.3 states that a block row's scope_set_id is NULL unconditionally and that parallel_unique_in_scope does not consult parallel_block_scope, so every block row in a release shares one key group and must be globally unique by name. This release would collide immediately: "Dazzle", "Dazzle Gold" and "Dazzle Black" each apply to all six sub-sections of the block. The spec also says block is only for parallels of a TIERED BASE run and that a block outside base_set_size can never be one, which is this case exactly. The six sub-sections are therefore sets.csv rows and their parallels resolve to distinct set ids. CONSEQUENCE TO REVIEW: tcdb catalogues Dazzle, Dazzle Gold and Dazzle Black as ONE set each spanning cards 1-220, so one tcdb set becomes up to seven rows here (one base-set row plus six set-scope rows). That is the catalogue's scope convention as prizm-bkb-2018-19 and certified-bkb-2018-19 apply it, and it is a decomposition, not a second source.
- G-020 BASE PRINT RUN IS assumed, NOT sourced, AND THE DISTINCTION IS DELIBERATE. No source states in words that the base cards are unnumbered. What exists is a within-renderer positive discriminative test: Checklist.cfm renders no serial token on any of cards 1-100 while rendering "SN99", "SN75", "SN25", "SN10", "SN5" and "SN1" on the parallel sets of those same card numbers, and cardboardconnection lists the plain Dazzle tier with no figure while giving one for every other tier. EXTRACTION_SPEC 2.1 classes exactly this evidence shape as assumed. Sources: https://www.tcdb.com/Checklist.cfm/sid/203690/2018-19-Panini-Threads?PageIndex=1 ; https://www.tcdb.com/Inserts.cfm/sid/203690/2018-19-Panini-Threads
- G-021 SET NAME AND COUNT VARIANTS CARRIED FORWARD RATHER THAN NORMALISED. tcdb renders "Threedom!" with a terminal exclamation mark; cardboardconnection renders "Threedom". The tcdb form is written. tcdb renders Authentic Threads at 59 cards and its Prime parallel at 58 - one card in the parent has no Prime version, or one row is missing; not reconciled. cardboardconnection heads two sub-sections with a trailing asterisk, "Rookies Association *" and "Association Jersey SP *", which is its footnote marker for "*Premium parallels only for Rookies Association and Association SP.*" - the asterisk is not part of either name and was not written. Note that the footnote itself says "Association SP" where the heading says "Association Jersey SP"; the heading form was written.
- G-022 WHAT RESTS ON A SINGLE SOURCE, stated precisely because this line has NO other season in the catalogue to compare against. Beckett is unreachable (302 to https://maintenance.beckett.com/), checklistcenter and checklistinsider were not reachable for this product (cardbv.com returned 404), so the corroboration normally supplied by a third structural source is absent throughout. SINGLE-SOURCE TO cardboardconnection: the existence and names of all six sub-sections of the 101-220 block; the four box configurations; the Blaster-only and Hanger/Fat Pack annotations on eight insert sets; the Panini Direct exclusivity of the Premium Edition; the 2019-05-01 Premium date. SINGLE-SOURCE TO tcdb: every card count in sets.csv except the eight that cardboardconnection agrees with; every print run at insert scope; the 1-100 base roster player names and teams; the existence of every one of the 97 parallel tiers. CORROBORATED BY BOTH: the 2019-04-24 date, the 100-card base size, and 11 of 11 base-set parallel print runs. THIRD SOURCE USED ONCE: eBay catalogue titles corroborating two block sub-section NAMES against card numbers 164 and 191 - names only, and both titles carry the tcdb flag-string contamination shape ("RC") that EXTRACTION_SPEC 3.4 warns about.
- G-023 A DIVERGENCE AGAINST THIS CATALOGUE'S OWN CONVENTION, RECORDED NOT RESOLVED. EXTRACTION_SPEC 5.3 says the block is excluded, and this build excluded it; contenders-bkb-2018-19 and contendersoptic-bkb-2018-19 do the same in this season. But contenders-bkb-2019-20 sets base_set_size=165 INCLUDING its Rookie Ticket autographs 101-165 and contenders-bkb-2021-22 does the same, so the catalogue answers "how big is the base set?" two ways and nothing on either row tells a consumer which convention it is under. This release is under the exclusion convention. If the repair pass the spec anticipates ever flips the convention, base_set_size here would become 220 and the six sets.csv rows for cards 101-220 would have to be withdrawn.
If you know a source that answers one of these, tell us — name the question's label and where to look.
Draft — sourced but not independently verified. How this catalogue is built