# Phase 2 completion report

Generated from `data/catalog.json` and `data/dossiers/` by `tools/phase2-report.mjs`.
Built 2026-08-14.

## Headline numbers

| Metric | Count |
|---|---|
| Total products discovered | 313 |
| Products with an official ingredient declaration | 170 (54%) |
| Products with an official nutrition panel | 168 (54%) |
| Products with ≥80% existence confidence | 279 (89%) |
| Ready for Phase 3 (reverse engineering) | 25 |
| Evidence-complete but not yet promoted | 145 |
| Needing further evidence (discovered/researching/partial) | 143 |
| Genuine source conflicts preserved | 1 |
| Nutrition-discrepancy flags raised | 8 |

## Strongest-evidenced categories (by declaration rate, n≥1)

- **salad-additions**: 21/21 declared (100%)
- **deli-pots**: 13/13 declared (100%)
- **salads**: 83/98 declared (85%)
- **sandwiches-wraps**: 53/84 declared (63%)
- **sushi**: 0/15 declared (0%)

## Weakest-evidenced categories (n≥3)

- **bakery-pastry**: 0/3 declared (0%)
- **sandwiches-and-burgers**: 0/3 declared (0%)
- **bowls**: 0/5 declared (0%)
- **ready-meals**: 0/5 declared (0%)
- **bakery-bread**: 0/5 declared (0%)

## Major research gaps

- Every dossier is missing an official product photo (Tier-1 image evidence was never captured this round — the research agents fetched text/HTML, not screenshots).
- Serving weight is unestablished for the deli-portal range (`gaps: serving_weight` on nearly every portal-sourced dossier) — the portal publishes per-100g nutrition but not a per-tub weight.
- 143 products (46%) still have no ingredient or nutrition evidence at all — mostly `expected_category` placeholders from the July catalog that were never individually confirmed.
- Historical version detection (spec item 38) hasn't been attempted yet — the archive.org captures are preserved in `archive/` but not yet mined for packaging/formulation changes over time.

## Benchmark dossier: Spinneys Chicken Salad

`data/dossiers/spk-chicken-salad.json` — status **READY_FOR_REVERSE_ENGINEERING**, evidence score 80/100, completeness 67%.

- Full verbatim ingredient declaration (9 top-level components) and complete nutrition panel from the official deli portal, Atwater-consistent.
- A second, independently-sourced nutrition panel from the spinneys.com listing genuinely disagrees (218 vs 196 kcal/100g) — kept as two versions rather than silently picking one (see `conflicts[]`).
- An unrelated price figure (91.50 AED/kg, from an early search snippet) was traced to a different product (Greek Salad) and the resolution is recorded, not just corrected silently.
- 4 formulation hypotheses (A/B/C/D) computed against a generic nutrition-reference table and mass-balanced to 100%; the best fit (Model D) was derived FROM why the first three underfit, not picked by trial and error alone.
- Full texture/flavour/aroma profile and a commercial→home cooking-method mapping, both explicitly labeled `culinary_inference` and traceable to the specific evidence they draw from.

## Recommended Phase 3 starting recipes (top 10 by priority)

1. ASIAN SALMON AND QUINOA SALAD
2. CHICKEN SALAD
3. GREEK SALAD
4. Lentil and Aubergine Salad
5. PRAWN AND MANGO SALAD
6. QUINOA, FETA AND POMEGRANATE SALAD
7. ROAST BROCCOLI
8. ROAST POTATO SALAD
9. ROASTED ROOT VEGETABLE SALAD
10. SALMON ASPARAGUS QUINOA

## What Phase 2 deliberately did NOT do

Per `docs/EVIDENCE.md`'s gate: no product was promoted to `READY_FOR_REVERSE_ENGINEERING` without either a verbatim ingredient declaration or an explicit "searched, not found" entry. No formulation percentage is asserted without `estimated_from_ingredients` provenance and a mass-balance check. No confidence above 60 rests on a tier-3/4 source. This is enforced by `js/evidence.js` — a dossier that violates any of these rules fails `npm run validate` and never reaches this report.
