Skip to content
How we use AI

Where the LLM runs, and where it doesn't

StreamGist's recommendation engine is deterministic, with LLM narration at the edges. The user request path makes zero AI calls. Games are ranked by deterministic code, never written by an LLM.

Engine map

Four tiers, one user-facing path

Three tiers use LLMs, each on a different cost and risk profile. Only the user-request tier serves games, and it never calls an LLM.

Tier 1 · Overnight precompute

Catalog enrichment + ranking inputs

  • Daily cron pipeline enriches new games with structured perception data
  • LLM produces static per-game public copy and baseline rationale text
  • Deterministic jobs refresh the stats and multipliers the ranking reads
When it runs
Daily, overnight UTC
LLM call frequency
Per game, once
Failure impact
Yesterday's stats still serve
Tier 2 · User request path

Recommendation API0 LLM calls

  • Serves from a per-user cache, refreshed about hourly
  • On refresh, ranks the live stats pool with deterministic SQL and Python
  • Filters to the user's style, platform, and skipped games
When it runs
Every user request
LLM call frequency
Never
Failure impact
N/A (no LLM dependency)
Tier 3 · On-demand narration

“Why this game for me?” & weekly recap

  • Personalized rationale: one LLM call per user click only
  • Weekly per-game recap: batched LLM, one cron per week
  • Cost-gated by design. Not invoked passively.
When it runs
User action or weekly cron
LLM call frequency
Per click or per week
Failure impact
Games still served; narration absent
Tier 4 · Internal ops synthesis

Daily ops briefing, weekly & biweekly strategic recap

  • LLM compresses ops telemetry into human-readable briefings
  • Daily ops, rec-quality, and rec-filter briefings; weekly and biweekly recaps
  • Not user-facing. Consumed by the operator only.
When it runs
Cron, scheduled cadences
LLM call frequency
Per cadence (1–7 / week)
Failure impact
Operator loses summary; product unaffected
Kill-switch verification. If every AI provider went offline tomorrow, StreamGist would keep serving games to every user. Recommendations come from cached results and a deterministic SQL ranking, neither of which calls an LLM. Verified by source-level review of the user-facing recommendation handler.
30-day spend

What the LLM actually costs us

Logged figures come from production telemetry; estimated figures are marked. Logged spend sums the per-batch cost ledger and per-call cost logs on the ops droplet. Each Anthropic API call writes its token usage and computed cost. Estimates apply where per-call cost is not directly logged.

Tier 1 · Catalog enrichment
$110.57
Tier 1 · Rationale generation
$3.15
Tier 1 · Public-page copy
$0.41
Tier 4 · Ops briefing (est.)
~$19.501
Tier 4 · Weekly/biweekly recap (est.)
~$3.001
Tier 3 · On-demand narration
~$1–52
Tier 2 · User request path
$0.00

Known logged spend: $114.13. Estimated total including internal briefings and on-demand narration: ~$138–$142. Tier 1 (overnight, amortized) and Tier 4 (internal ops) absorb nearly all spend. The user request path is $0.

The architectural claim. StreamGist is structured so that an LLM outage cannot break the core recommendation serving path. All AI calls are either amortized overnight (one failure delays one game's enrichment) or explicitly user-initiated (one failure omits one narration string). The ranking and serving layer has no AI vendor dependency.
Public Best Games page

The public rankings page runs on a daily snapshot

Separate from the personalized engine above. The anonymous Best Games page is served from a single precomputed row, not a per-user ranking. Figures below are point-in-time, as of the report date.

Up to 100
Candidate games per snapshot
42.4 KB
Snapshot payload size
09:00 UTC
Snapshot rebuilt daily at

Rebuilt once per day by a deterministic SQL job, read in a single indexed lookup, with a live SQL fallback if it goes stale.

Failure modes

Kill-switch matrix: failure modes by tier

ComponentTierFailure modeWhat users see
Recommendation servingTier 2Anthropic + OpenAI both downNo degradation to recommendation serving. Cached results and the deterministic SQL ranking continue without LLM calls.
Catalog enrichmentTier 1LLM unreachable during overnight jobNewly-discovered games not enriched until next successful run. Existing catalog and recommendations continue serving.
Public-page game copyTier 1Copy generation fails for a gamePublic page renders the game without a marketing blurb. The game itself still appears.
“Why this game for me?” rationaleTier 3LLM call fails on clickThe personalized sentence is absent. The ranked game itself is unaffected.
Weekly saved-game recapTier 3Weekly cron LLM call failsRecap email not sent that week. Catalog and recommendations unaffected.
Daily ops briefingTier 4LLM unreachableOperator does not receive that day's summary. Product unaffected.
FAQ

Common questions about StreamGist and AI

Does StreamGist's user-facing recommendation path call an LLM?

No. The recommendation API serves each user from a short-lived cache, and on refresh ranks the games with a deterministic SQL query and Python scoring. No LLM client imports or calls are present in the request path, verified by source-level review.

What happens if Anthropic or OpenAI go down?

Recommendations keep serving to every user, from cached results and a deterministic SQL ranking that is also LLM-free. Only AI-generated narration (the per-click "Why this game?" text and the weekly recap email) is affected.

Does StreamGist train AI models on user data?

No. StreamGist makes inference-only API calls to third-party model providers. Personal user data is not used as training material for any model.

Does StreamGist use AI to write its blog or public game copy?

Yes, and it is disclosed. Blog articles are drafted by an LLM from StreamGist's own data, then reviewed by a person before publishing. Per-game public copy and rationales are LLM-generated overnight (Tier 1). The recommendations themselves are never written by an LLM.

How much does StreamGist spend on AI per month?

About $138 to $142 over the most recent 30 days. $114.13 is directly logged from production telemetry; the remainder is estimated for internal ops briefings and on-demand narration. Nearly all spend is absorbed by overnight precompute and internal ops. The user request path costs $0.

How often is this report updated?

The report is reviewed at least quarterly, and republished sooner when the underlying figures or architecture change materially. The figures in this version reflect the 30 days ending 2026-05-23.

Is the kill-switch claim independently audited?

Not at this time. The claim is verified by source-level review of the recommendation handler; the full source under review is private. The verification process is documented in the methodology section below. Independent audit may be added in future revisions.

Methodology

How these figures were derived

Logged costs. Tier 1 enrichment ($110.57): 31 rows summed from per-batch cost ledger (SQLite batch_runs), 30 days ending 2026-05-23UTC. Rationale ($3.15) & public-copy ($0.41): per-call cost=$X markers from droplet cron logs over the same window.
Estimated costs. Tier 4 1: observed token usage (~25k tokens/run, 105 runs) × published Anthropic pricing for the configured model tier. Tier 3 2: per-call observations × conservative click-frequency assumptions.
Source review. Public Best Games snapshot stats from a direct query against the best-games snapshot row at report-generation time; serving latency not measured for this report. Kill-switch claims verified by source-level review of the user-facing recommendation handler. No LLM client imports or calls present in the request path.

Related reading: How StreamGist builds recommendations · Execution systems (the framework this report applies) · The operating loop (Tier 4 as a live system) · Partners.

Prepared by Matthew Juszczyk, Founder · Reviewed 2026-05-23 · v1.0