How we know what’s in stock
Every stock line on CoffeePGH has a confidence tier, a date and a source. We read roaster web stores automatically (last read Oct 25, 4:23 PM ET). Everything else, including shelves, Instagram and reader reports, is entered by a person and reviewed before it appears.
The four tiers
shape + label, not color alone| Tier | Where it comes from | How it’s collected | Fades after |
|---|---|---|---|
| Tier 1 Verified roaster feed | Roaster’s web store (Shopify, Squarespace, WooCommerce) | Read automatically, one request per site, robots.txt respected. Stock is per bag size. Last read Oct 25, 4:23 PM ET. | Possibly sold out after 3 days missing; archived after 14 |
| Tier 2 CoffeePGH shelf check | A CoffeePGH visit or shelf photo | Entered by hand, with Michael’s sign-off | Possibly gone after 7 days; expires after 21 |
| Tier 3 Roaster Instagram post · lower confidence | A roaster’s Instagram post | Entered by hand as a lead (no automated collection, per platform terms) and confirmed on the roaster’s site when possible | 7 / 21 days |
| Tier 4 Reader report · lower confidence | A reader’s report | Sent in by a reader, then reviewed | 7 / 21 days |
When a roaster-feed listing goes quiet
- Day 0Seen in feedIn stock
- Day 3Missing 3 daysPossibly sold out · missing 3+ days
- Day 14Missing 14 daysArchived · not seen 14+ days
When sources disagree: conflicting reports
When a shelf check, Instagram post or reader report disagrees with the roaster feed about the same coffee and bag size, a conflict opens.
- When it goes public (rule set Oct 26, 2026): only after 2 independent reader reports or 1 CoffeePGH shelf check (Tier 2). Until then it stays in our internal review queue, and the public page shows the feed state normally, with no badge.
- How it shows: once public, every claim sits side by side with its tier, date and source, marked ⚠ Conflicting reports. We don’t pick a winner.
- How it resolves: a newer feed read that agrees with the reports; a CoffeePGH shelf check dated after the claims; the lower-tier claims fading (possibly gone at 7 days, expired at 21); or the lot being archived.
- How we count it: a conflicting size is its own state. It is never counted as in stock (or sold out) in counts, answers or default filters, and our structured data doesn’t assert availability for it.
How process gets labeled
- Structured tag or “Process:” line: high confidence.
- Process in the title, confirmed in the text: high.
- Process word in a sentence: medium, always reviewed.
- A bare word: low, never published.
Rules filter out false positives like “honey” as a tasting note. Co-ferment and infused claims always wait for review.
What we can see, honestly
- Roasters with a machine-readable feed (estimate)
- 12 of 23
- Shops covered by those feeds (estimate)
- ≈55 of 135
- Listings on CoffeePGH
- 13
Up to 16 of 23 if 4 more Squarespace sites behave like De Fer (estimate, not yet verified).
The other ≈80 rely on shelf checks, Instagram leads and reader reports.
Drawn from 4 of those feeds, not the full catalog.
Estimate from our own bean-availability research, Oct 25, 2026. Roaster feeds last read Oct 25, 4:23 PM ET.
What we don’t do
- We don’t copy roaster descriptions or photos. We store facts and link back.
- We don’t scrape Instagram or other social sites.
- We don’t try to get past blocked sites.
- We don’t merge similar-looking lots automatically.
