Files
Cibello-app/docs/10-ai-kostnad.md
T
Claude ee5eb32e09 chore(modell): rikta ALLT mot gemini-3.1-flash-lite + fixa kostnadsberakning
Koden/docs pastod overallt gemini-3.5-flash-lite fast .env kor 3.1. Nu enhetligt
3.1 i .env.example, config.ts-default, gemini.ts-default, tester, eval och docs
(09 + 10). Dessutom en RIKTIG bugg: estimateCostUsd rakna pa 3.5-priser
($0,30/$2,50) medan vi kor 3.1 -> overskattade spend och troffade budgetlarmet
for tidigt. Nu 3.1-priser ($0,25/$1,50). docs/10 helt omraknad pa 3.1 (per
uppgift, per anvandare, skala, 100k-trial-scenariot). Referenslinje kvar som
visar 3.5-priset for att motivera valet.
2026-08-18 20:16:37 +00:00

7.4 KiB
Raw Blame History

Del 10 AI-modeller och kostnad

Priser verifierade 2026-08-02 (BenchLM, uppdaterad 2026-08-01, samt korsläst mot publika prislistor). Kontrollera mot Google/Anthropics officiella prissida innan avtal.

Faktisk modell (kontrollerad mot koden 2026-08): All bildanalys, OCR och receptgenerering körs på Gemini 3.1 Flash Lite samma värde i .env.example, i GEMINI_MODEL-defaulten i apps/api/src/config.ts och i packages/ai-contracts/src/gemini.ts. Priserna nedan speglar estimateCostUsd i koden. (Vi kör medvetet 3.1 och inte 3.5 3.1 är billigare per token, särskilt på output; 2.5-serien fasas ut och är inget alternativ.)

Aktuella modeller och listpriser (USD per miljon tokens, in/ut)

Modell Input Output Roll i appen
Gemini 3.1 Flash Lite (standard) $0,25 $1,50 Arbetshäst: all bildanalys, OCR, receptstrukturering (Skiva 1)
Gemini 3.1 Flash Lite (batch, 50 %) $0,125 $0,75 Asynkrona nattjobb: minnesuppdatering, batch-generering
Premium-eskalering (Skiva 2, framtid) Större modell vid låg confidence (spec §33) ej i volym ännu

Referens: Gemini 3.5 Flash Lite ligger på $0,30/$2,50 dyrare på både in och ut, därför kör vi 3.1.

Hävstänger: batch-tier 50 %; context caching sänker upprepad input; AAMOS-specialistmodeller ersätter över tid externa anrop för de vanligaste bilduppgifterna (spec §33) → kostnaden nedan är ett tak, inte ett golv.

Kostnad per uppgift

Antaget: bild ≈ 1 000 tokens (Gemini-tiling, A1), systemprompt+kontext ≈ 5001 000 in, strukturerad JSON-output 4001 200 ut (A2), växelkurs 10,50 SEK/USD (A4). All bildanalys på Gemini 3.1 Flash Lite standard-tier ingen modell-eskalering i Skiva 1.

Uppgift Tokens (in/ut) Kostnad (Gemini 3.1 Flash Lite)
Kyl-/skafferibild (2 bilder) 4 000 / 800 $0,0022 ≈ 0,023 kr
Kvitto 3 000 / 1 000 $0,0023
Tallriksfoto 2 500 / 500 $0,0014
Näringsetikett/datum 2 000 / 400 $0,0011
Receptstrukturering (text) 2 500 / 1 200 $0,0024
Veckoplan 3 000 / 800 $0,0020
Minnesuppdatering (batch, natt) 4 000 / 600 $0,00095 (batch-tier)

Tumregel: ≈ $0,002 ≈ 0,02 kr per AI-skanning. Deterministiska flöden (rekommendationer, nutrition, streckkod, FEFO) kostar $0.

Kostnad per användartyp och månad

Profil Antagande om användning AI-kostnad/mån
Gratis 5 skanningar (kvottak) $0,011 ≈ 0,12 kr
Household (aktivt) 60 skanningar + 4 planer + nattligt minne $0,14 ≈ 1,5 kr
Family (aktivt) 100 skanningar + 4 planer + minne $0,22 ≈ 2,3 kr
Family (maxar fair use 200) värsta fallet $0,41 ≈ 4,3 kr — fortfarande långt under priset

Fair use-taken (100/200/400, gratis 5) gör att ingen enskild användare kan bli förlustaffär ens i värsta fallet.

Total kostnad per skala

Antaget (A5): 60 % av registrerade är månadsaktiva; mix 80 % gratis / 20 % betalande; betalande mix 60/30/10 (Household/Family/Large); aktiva gratisanvändare gör 5 skanningar, betalande enligt tabellen ovan.

Baslinjetabellen nedan är en pessimistisk referens (en dyrare modell); raden under visar den faktiska kostnaden med Gemini 3.1 Flash Lite.

Registrerade Aktiva Baslinje AI-kostnad/mån (USD) ≈ SEK/mån Intäkt/mån (SEK) AI-andel (baslinje)
1 000 600 ≈ $140 1 500 kr ≈ 11 900 kr 12 %
10 000 6 000 ≈ $1 400 15 000 kr ≈ 119 000 kr 12 %
100 000 60 000 ≈ $14 000 147 000 kr ≈ 1 190 000 kr 12 %

Intäktsantagande (A6): 20 % betalande × viktat pris ≈ 99 kr. Skalan är linjär tills specialistmodeller (spec §33) sänker styckkostnaden ytterligare.

Med Gemini 3.1 Flash Lite (~$0,0022/skanning) blir den faktiska AI-kostnaden ~4,9× lägre än baslinjen ovan: ≈ $29 / 300 kr (1k reg), ≈ $285 / 3 000 kr (10k), ≈ $2 850 / 30 000 kr (100k). AI-andelen av intäkt sjunker från ~12 % till ~2,5 %. Firebase Auth tillkommer först vid 60 000 aktiva: 10 000 × $0,0055 = $55/mån ≈ 580 kr.

Känslighet

Dubbla bildstorleken (A1) → +~30 % (fler bild-tokens). Fler upptäckta varor per bild → mer, eftersom output ($1,50/1M) dominerar över input ($0,25/1M). Bevaka därför: tokens/bild och output-tokens i verklig trafik, kostnad per uppgiftstyp (usageMetadata → ai_usage_counters / scan_jobs.cost_usd → adminpanelen) med larm på dagsbudget (§58).

Scenario: 100 000 trial-användare dag 1 (onboarding-toppen)

Antagande: 100 000 registrerar sig dag 1, alla kör 14-dagars trial (25 skanningar) och använder upp alla 25 på 2-bilders kylskanningar i medelkvalitet via Gemini 3.1 Flash Lite (~$0,0022/skanning: ~4 000 input-tokens à $0,25/1M + ~800 output-tokens à $1,50/1M).

Post Beräkning Kostnad
AI trial-skanningar 100 000 × 25 × $0,0022 $5 500 ≈ 58 000 kr (på 14 dgr)
Firebase Auth (100k MAU) 50k gratis + 50k × $0,0055 $275/mån ≈ 2 900 kr/mån
Totalt onboarding-månaden ≈ $5 775 ≈ 61 000 kr

AI står för ~95 %, men hela toppen är nu ~4,5× lägre än den tidigare felräkningen (263 000 kr → 58 000 kr) eftersom vi kör Gemini 3.1 Flash Lite (billigare än 3.5, långt billigare än den ursprungliga felräkningens modell). Kör trial-skanningar som enkla medelkvalitetsbilder (~1 500/700 tokens) landar toppen på ~37 000 kr 58 000 kr är alltså ett tak.

Efter trial om alla faller till gratis (5 skanningar/mån): 100 000 × 5 × $0,0022 + Firebase ≈ 14 000 kr/mån utan intäkt. Break-even på den bördan: ~145 betalande (0,15 %), och trial-toppen (58 000 kr) tjänas in långt inom första månaden om ~2 % konverterar.

Slutsats: med rätt modell är onboarding-toppen ~58 000 kr på 14 dagar vid 100k dag-1 en hanterbar post och strukturellt ofarlig. Batch-tier (Flash Lite $0,125/$0,75) halverar dessutom nattliga minnesjobb. Bevaka faktisk token-förbrukning per skanning (usageMetadata → ai_usage_counters) och konvertering inte Firebase.