# 006 – Inspiration-Algorithmus: gewichteter Mix (offene Gewichtung) **Status:** proposed (Gewichtung offen, Algorithmus fix) **Kontext.** „Inspiration" schlägt **jeweils 5** Gerichte aus dem Archiv vor, neue 5 auf Button. Der Betreiber möchte einen **Mix aus drei Kriterien**: lange nicht gekocht, seltene (wenige Auftritte) und beliebte (häufig gekocht). Genauere Gewichtung und die Definition von „seltene" / „beliebte" werden bei der Implementierung festgelegt. **Entscheidung (Prinzip).** Score-Funktion `score(g)` mit drei Termen: 1. **Staleness**: `now - max(gegessen_am)` (normiert an die älteste `gegessen_am`) → gewichtet mit `w_slow` (>0, primär, z. B. 0.5). 2. **Rarity**: `1 / (auftritt_count + 1)` (auftritt = Anzahl aller Einträge mit gleichem `name`) → gewichtet mit `w_rare` (sekundär, z. B. 0.3). 3. **Popularity**: `auftritt_count / max(auftritt_count)` → gewichtet mit `w_hot` (tertiär, z. B. 0.2). `score = w_slow*stale + w_rare*rare + w_hot*hot`, Sortierung absteigend. `w_slow + w_rare + w_hot = 1.0`; konkrete Werte in `config/inspirations.yaml` und per ADR-006-Bis (Patch) fixieren, wenn die App läuft. **Konsequenzen.** - + Alle drei Nutzerintentionen (Alte, Seltene, Beliebte) sind vertreten. - + Gewichte prozentual änderbar, ohne Code. - − „Beliebte" ist kontraintuitiv, wenn der Nutzer genau das **nicht** möchte (z. B. „mööchte etwas Neues"). Dann `w_hot=0`. - Offene Fragen: - [ ] Gewichte `w_slow/w_rare/w_hot` (Default: 0.5/0.3/0.2?) - [ ] „Auftritt" zählt **Alle Zeit** oder **letzte N Tage**? (Vorschlag: alle Zeit) - [ ] Deduping gegen die letzte 5er-Ladung? (Vorschlag: ja, Session-basiert)