Scope: bead-frame abacuses (soroban, suanpan, Russian/Western counting frames, rekenrek) and physical math manipulative sets (base-ten blocks, Cuisenaire rods, pattern blocks, linking cubes, loose counters) used to teach counting, place value, calculation and early geometry; excludes flash cards, puzzles and science/STEM kits (sibling leaves).

Seed:
1. Treadwear-grade equivalent: beads-per-rod (soroban's 1-over-4, suanpan's 2-over-5, a counting frame's straight 10) is reliable only within its own mechanism, like treadwear only compares within a brand — a 21-rod soroban and a 10x10 counting frame both have ~100-105 beads but are not comparable because one is place-value and one is 1-bead-per-unit.
2. A pastry chef (ratios, not brand names) would key on the fixed bead-per-rod ratio first: change 1-over-4 to 2-over-5 and the carrying/borrowing technique changes completely, the same way changing a dough's hydration ratio changes the technique, not just the result.

Sources:
[wikipedia_abacus] https://en.wikipedia.org/wiki/Abacus — fetched excerpt: Western school bead frame has straight wires, vertical frame, each bead = 1 unit regardless of row (up to 100 on 10 wires); the 20-bead version is the Dutch "rekenrek"
[wikipedia_soroban] https://en.wikipedia.org/wiki/Soroban — fetched excerpt: "A soroban has five bead on each rod, one bead above and four beads below"; rods always odd, minimum seven, basic models thirteen
[wikipedia_suanpan] https://en.wikipedia.org/wiki/Suanpan — fetched excerpt: "two beads on each rod in the upper deck and five beads on each rod in the bottom deck"
[wikipedia_manipulative] https://en.wikipedia.org/wiki/Manipulative_(mathematics_education) — fetched excerpt: manipulatives are the "concrete" first step of concrete-representational-abstract teaching; lists Cuisenaire rods, pattern blocks, tangrams, geoboards, interlocking cubes
[wikipedia_baseten] https://en.wikipedia.org/wiki/Base_ten_blocks — fetched excerpt: four sizes (units, longs, flats, blocks) = powers of ten 1/10/100/1000; Montessori's earlier "golden beads" used the same shapes
[wikipedia_cuisenaire] https://en.wikipedia.org/wiki/Cuisenaire_rods — fetched excerpt: set of ten rods, lengths 1cm to 10cm, each length painted a different (standardized) colour
[wikipedia_patternblock] https://en.wikipedia.org/wiki/Pattern_block — fetched excerpt: six standard shapes (triangle, rhombus, trapezoid, hexagon, square, narrow rhombus), developed 1960s, used for tiling/fractions/patterns
[cpsc_toy_safety] https://web.archive.org/web/20250103065650/https://www.cpsc.gov/Business--Manufacturing/Business-Education/Toy-Safety — fetched excerpt: ASTM F963 is mandatory via 16 C.F.R. part 1250; small parts already banned for children's products under 16 C.F.R. part 1501 (small-parts cylinder test); mouth-actuated toys for under-3 must not release loose components

Branches:
- product_type: when abacus, ask the rod/bead mechanism facets; when manipulative_set, ask the piece/category facets — supported by the abacus vs. base-ten/pattern-block/Cuisenaire pages being structurally different products
- primary_skill_target: when mental_calculation, route to abacus_mechanism/rod_count (soroban/suanpan are built for calculation algorithms per wikipedia_soroban); when patterns_and_geometry, route to manipulative_category (pattern blocks per wikipedia_patternblock)

Noise:
- Exact bead/brick material-grade specs (ABS vs food-grade silicone) — left out, no standard spec sheet distinguishes toy-grade plastics beyond the CPSIA/ASTM F963 bans already captured in safety_small_parts_rating
- Soroban exam/grading-body kyu-dan ranking systems — left out, not a product attribute a listing carries, only relevant to the training program around the object

Corrections (2026-10-26):
- rod_count: max 27→31 and typical text fixed to match wikipedia_soroban's own ceiling ("21, 23, 27 or even 31"); dropped "17", which the source never states.
- piece_count: range re-sourced from the uncited 6–1000 to 10 (wikipedia_cuisenaire's ten-rod set) to 1,250 (didax_patternblocks, a real Didax SKU: "Set of 1,250 Plastic Pattern Blocks"); added didax_patternblocks as second source.
- curriculum_alignment: added common_core_aligned value, sourced to didax_numberline ("teaching notes with sample activities for CCSS" on a base-ten accessory); added Common Core (CCSS) to vocabulary.
- primary_skill_target split: question now lists all 5 values ("...patterns, or fractions?"); added branches for counting_and_number_sense, place_value, and fractions_and_measurement so every value narrows something.
- age_range split: question now distinguishes early_elementary_5_8 from upper_elementary_8_plus instead of collapsing both into "school-age"; added branches for preschool_3_5, early_elementary_5_8, upper_elementary_8_plus.
- age_range/toddler_1_3 (and the new preschool_3_5) branch: makes_irrelevant narrowed from the whole abacus_mechanism facet to rod_count + beads_per_rod, since mechanism.plain treats a toddler's bead frame as a legitimate abacus — only the place-value specs are irrelevant at that age.
- Added overall_footprint facet (pocket/desktop/large-or-bulk-storage) for the missing item/package-dimensions coverage gap, sourced to two fetched Didax product pages (didax_decimalframe: 11"x7"; didax_numberline: 4"x21").
- Rejected: did not add a numeric dimensions range (vs. the categorical facet added). Only two real dimension data points were reachable (archive.org is offline; learningresources.com, hand2mind, lakeshorelearning, schoolspecialty and reallygoodstuff all return 403 to a plain fetch, and bypassing that block was not attempted) — not enough to bound a category-wide min/max without inventing it, so the facet is categorical rather than numeric.
