Executable
Can I buy this as whole beans?
ALS-COFFEE-1.3-FORMAT-001
This question is asked as a test and produces a result for a real page.
Assertion
whole_bean_option option_available true
Applicability
- applies when
- the product is roasted coffee sold by mass rather than in pods or capsules
- signal
- product_type or title indicates coffee; pod and capsule products are excluded by the envelope
Accepted evidence
- product_options — a purchasable option value naming the whole-bean state e.g. Whole Bean
- variant_availability — the matching variant is listed and marked available
Explicitly insufficient evidence
What does not count, and why. Published because the omission is where a check quietly becomes a claim.
- "beans" as a generic synonym for coffee
"our house beans" and "single origin beans" are marketing register, not a statement about the delivered state; a product literally named Bean Blend can ship ground. - an option LIST containing whole bean among others
A page offering Whole Bean / Espresso / Filter asserts none of them about what ships. This entry asks only whether the option is purchasable, which is the narrower and answerable question. - "freshly ground" or "we grind to order"
These state a process the seller performs, not the state of this purchasable item, and in some sellers' usage they describe what the buyer is expected to do. - a photograph of beans, a grinder or a portafilter
Image content is not page text, is not read by the engine, and bean photography is routinely used as brand imagery on ground products. - a brew-method mention such as "excellent in a French press"
This implies a target grind and says nothing about whether the bag contains beans.
Conflict rules
- When the title says whole bean and no whole-bean option is purchasable — then the purchasable option list decides; a title is not an offer precedence: product_options > product_title
- When a whole-bean option exists but is out of stock — then report it as listed and not purchasable, which is what the engine returns, rather than as absent
What a pass licenses
A pass establishes: That a purchasable option naming the whole-bean state exists on this product at the time of the test.
A pass does NOT establish: That whole beans are what a buyer receives by default, that the option is the one preselected, or that the coffee is unground at any point before dispatch.
Discrimination
Measured fail rate: 73.7% (73 of 99 adjudicated)
95% interval: 64.3% – 81.4%, against a 15-85% target band (wilson95 vs target band)
Verdict: Discriminating — the measured rate lies inside the target band, so the answer separates stores from one another.
Recomputed by `standards/coffee/issue_v1_2.ts` from experiments/v3-2/standard_run3.jsonl through the shipped `verdictFor` in standards/discrimination.ts; no re-run, no network, no spend. Cross-checked against experiments/v3-2/discrimination.json and standards/coffee/v1.0/fitness.json.
Authored expectation: no prediction, confidence low. The numeric band this standard used to carry is not published at this grammar version.
Grind is routinely modelled as a Shopify variant by specialty roasters, so many pages will expose it, while single-format sellers and supermarket-style listings will not name the state as an option at all. The wide band reflects that this is an untested split between two very different seller populations.
The numeric fail-rate band this reasoning was authored with is NOT carried at grammar 1.2 and is not reproduced here. Authored bands held 1 of 10 against this category's own sample and every miss was HIGH, so a direction derived from the band would inherit the error that condemned it (SCHEMA.md §9.3 step 3). The band survives in ALS-COFFEE v1.1 (standard_hash f8ec2780f60c38931913e5b6cd37506500c8462709209de7180ba6691d6137e7), which is byte-frozen and still served.
Known gaps
- no adversarial-corpus coverage exists for variant_option at all — false_pass
The corpus covers materials, dimensions, care, claim and delivery. variant_option has no hostile cases, so its behaviour under merchant-authored option strings is unmeasured.
For a shopper
If you own a grinder, whole bean is the format that keeps longest, because less surface area is exposed to oxygen. You can check this yourself by looking at whether the page lets you actually select whole bean, rather than at whether the word appears in the description.
For a merchant
Expose the delivered physical state as a product option value with the words "Whole Bean", and make sure the corresponding variant is purchasable rather than permanently out of stock.
Grounding
- EU Regulation 1169/2011, Annex VI Part A (legal_instrument)
that the physical state or treatment of a food must form part of the name of the food where its omission could mislead, which is the legal basis for treating ground versus whole bean as a required disclosure rather than a preference - National Coffee Association, storage and shelf life guidance (trade_body)
that whole beans keep materially longer than ground coffee at room temperature because less surface area is exposed to oxygen, which is why the delivered state is a purchase-relevant fact and not a detail