BalanceBikeToddler
Ten catalogue listings carried review counts reaching 47 million. We suppressed them rather than estimate, set a hard credibility ceiling of 200,000, and added a build-time guard.
Review Count Integrity
The Review Counts We Refuse to Publish
Ten listings in this catalogue carried review counts reaching 47 million. We deleted them rather than round them, and anything above 200,000 is now blocked automatically.
A review count is a claim about how many families bought something. Publishing a number we cannot defend is worse than publishing no number at all — especially when that same number silently changes how we rank products.
Detected 13 Oct 2026 · gated the same day · 10 records affected · all in the stroller family
- Largest count suppressed
- 47,475,530
- Credibility ceiling
- 200,000
- Records affected
- 10
- Balance-bike pages clean
- 16 of 16
on a stroller listing
any count above this is dropped, not published
pages publishing a count went 176 → 166
no balance-bike listing ever carried a bad count
01 / Defect
What was actually wrong
A review-count field arrives with each catalogue record. Ten records carried values that cannot be true — up to 47,475,530 on a stroller listing and 47,475,117 on a Baby Trend playard. For scale, the highest credible figure anywhere in this catalogue is roughly 59,000 on a convertible car seat, and one of the biggest sellers on the site, the Radio Flyer wagon, shows 14,471.
Forty-seven million ratings on a toddler playard exceeds plausible unit sales for that category by orders of magnitude.
These are values inside our own catalogue as our collector recorded them. They are not figures published by any brand, and they have never appeared in a brand's own materials. The defect is in our pipeline, not in anyone's product.
| Surface affected | What happened |
|---|---|
| Visible page copy | Pages read star-rated copy followed by tens of millions of ratings |
| Product structured data | aggregateRating.ratingCount was emitted with the impossible value |
| Internal ranking maths | reviewCount / 100,000 in our scoring added up to +475 to a single row, silently reordering top-pick lists |
02 / Response
Deleted rather than estimated
The count is dropped, not replaced with a plausible guess. Where the source supports it the star rating stays; the count and the entire aggregateRating block go with it.
An aggregateRating whose ratingCount is fabricated is a structured-data violation. Losing the rich result is the lesser cost — a search result built on a number we invented would not be a small mistake, it would be this site's credibility spent on one field.
One function now gates every path: credibleReviewCount() in src/lib/reviewSignal.ts. Prerendering, client-side structured data, API responses and our own scoring all route through it, so a future output surface cannot quietly bypass the rule.
03 / Calibration
Why the ceiling sits at 200,000
The threshold is deliberately an order of magnitude above anything credible in this catalogue. The largest defensible count we hold is about 59,000. Setting the gate far above that means legitimate movers cannot trip it — and empirically they did not: exactly ten records were suppressed, pages publishing a count fell from 176 to 166, and nothing else moved.
If a real product ever does clear 200,000 ratings, that is a case worth noticing by hand rather than a case worth optimising for in advance.
04 / Records
The ten suppressed records
All ten sit in the stroller family, which the search data had already demoted to a subordinate section. Not one balance-bike page was affected.
The values cluster suspiciously — several share leading digits (47,475,530 and 47,475,117; 4,444,511 and 4,444,515) — which points at a scraper or field-concatenation defect rather than ten independent typos. The fix belongs in the collector, not in ten hand-edited fields.
| Page | Published count | Brand |
|---|---|---|
| /products/strollers/stroller-b07pjmb6gf | 47,475,530 | — |
| /products/strollers/playard-b07964sfw4 | 47,475,117 | Baby Trend |
| /products/strollers/stroller-b09jls8lsr | 46,465,563 | Mompush |
| /products/strollers/playard-b08bt16th5 | 45,455,104 | Dream On Me |
| /products/strollers/stroller-b07g55y3dp | 44,445,715 | — |
| /products/strollers/stroller-b008u4mku6 | 4,646,593 | Baby Trend |
| /products/strollers/stroller-b00gjixp5o | 4,545,537 | — |
| /products/strollers/stroller-b07bb5vxbw | 4,545,528 | Baby Trend |
| /products/strollers/stroller-b07kr61jvd | 4,444,511 | BABY JOY |
| /products/strollers/stroller-b07b7qc8dv | 464,652 | Jeep |
05 / Guard
How it stays fixed
npm run check:reviewcounts walks every HTML file in dist/, checking both the visible copy and the JSON-LD, and fails the run if any count exceeds the ceiling. The ceiling itself is read out of reviewSignal.ts by regex, so the guard cannot drift away from the rule it guards.
If the collector is fixed at source, these ten rows leave the suppression list and their counts return automatically. Until then the correct answer for those pages is no number at all.
Every balance-bike page passed this check clean — start where the inventory and the evidence agree.
See the rest of the scoring model, and why a corrupted count mattered more than a cosmetic defect.