Structured extraction from screenshots with Chrome's built-in on-device model.
Three input paths over the same fixtures and the same schema:
vision (image → model), ocr (image → Tesseract.js → text → model),
hybrid (ocr as the base, vision only for price, skipped when no quote panel is detected).
Everything runs locally in this tab. Serve the repo over HTTP (python -m http.server) so
fixtures/out/labels.json can be fetched; file:// blocks it.
Counts are over successful (parsed) runs. distractor→change is the number of runs where
change_percent equals the body's inflation/rate percentage — the contamination this benchmark exists to measure.
copied is the headline being the page's deck line verbatim (only possible on deck fixtures).
none yet
| # | fixture | path | rules | run | headline | topic | lang | copied | change | price | date | instr | sent | ms | status |
|---|