# Autoresearch Dashboard: ai-rule-suggestion-coverage **Status:** STOPPED by user after run 7. **Runs:** 7 | **Kept:** 7 | **Discarded:** 0 | **Crashed:** 0 **Headline:** live-model coverage for victoor89@gmail.com **real_tx 416 → 1122** of 1329 uncategorized tx (**31% → 84%**). Segment 0 primary = oracle_tx (saturated near 1329 by run 2). Segment 1 primary = reachable_tx (realizable ceiling). real_tx = live-Gemini ground truth (median of repeated runs; the user-facing number). Note: the small per-run commits were later squashed into two feature commits (`max_groups_sent 40->150` and `resilient batched generation`); the `commit` column below is historical. Final code state is at HEAD `133c95f0`. Ground truth (live Gemini) progression: - baseline (40 groups): 416 (437/410/400) - 150 groups, single payload: 711 (711/214/774) — unstable tail - 150 groups + batching: 903 (970/903/885) - + frequency grouping: 925 (950/900/925) - + send all groups (min1/cap500): 1124, then 1122 (resilient) — 84% | # | seg | reachable_tx | oracle_tx | real_tx | status | description | |---|-----|--------------|-----------|---------|--------|-------------| | 1 | 0 | 515 | 830 | 416 | keep | baseline + frozen oracle benchmark | | 2 | 0 | 828 | 1229 | 711 | keep | max_groups_sent 40->150 | | 3 | 0 | 828 | 1229 | 903 | keep | batch Gemini calls (group_batch_size=40) | | 4 | 0 | 1027 | 1222 | 925 | keep | language-agnostic frequency grouping | | 5 | 1 | 1027 | 1222 | 925 | keep | segment baseline (primary -> reachable_tx) | | 6 | 1 | 1329 | 1329 | 1124 | keep | send all groups (min_group_count=1, cap=500) | | 7 | 1 | 1329 | 1329 | 1122 | keep | resilient batched generation + tests | ## What shipped (all language-agnostic, pan-EU safe) 1. `max_groups_sent` 40 → 150 then cap raised; send every group. 2. `min_group_count` 2 → 1 (include one-off merchants). 3. Batch the Gemini call (`group_batch_size`=40) so a large payload doesn't make the model under-enumerate. 4. Frequency-based description grouping (drop tokens appearing in >2% of the user's tx) — merges merchant variants in any language; no wordlists. 5. Resilient batching: retry once, tolerate partial-batch failure, only error if every batch fails. ## Cost / UX tradeoff to decide before shipping defaults min_group_count=1 + cap=500 sends ~441 groups → ~12 Gemini calls per run and creates one-off rules for single transactions. It buys ~+200 real categorizations (925→1122). A more economical default (min_group_count=2, cap~200, reachable≈1049, ~5 calls, recurring merchants only) captures most of the gain without the one-off-rule clutter. See worklog "Next Ideas".