Fundamentals 45 · Valuation 30 · Moat 25. Code scores the numbers; AI helps grade only the moat.
A stock-scoring engine and an atlas of European electricity — both live, both built with Claude and gated by humans.
scroll ↓ 01 stockscore · 02 wattlas · 03 how it shipsOne number for the business: 100 points across quality, value and moat. Around it, a score-free read on sentiment, IPOs and events. Every score shows its working — the numbers behind it, and how complete the data is. Nothing here is a black box, and every card is live data.
Fundamentals 45 · Valuation 30 · Moat 25. Code scores the numbers; AI helps grade only the moat.
ETFs get their own score, ranked by percentile against funds in the same category.
Sentiment Radar, IPO Radar and Event Briefs — deliberately score-free, on their own blue↔violet axis.
Compare companies side by side, and read an AI breakdown of the latest earnings.
Five plain questions about European power: when does the price move, what generates it, why do prices split, what happens when supply runs tight, and who pays. Twenty-six views answer them — pre-computed from open data, rebuilt every morning, no backend to keep alive.
When does power move? The duck curve, the daily spread, negative prices, capture price.
Generation mix, carbon intensity, residual load, and when gas sets the price.
Where power flows and why prices split — Germany, France, the Nordics, the UK.
Dunkelflaute, storage economics, adequacy — and a sourced replay of the Iberian blackout.
What flexibility is worth, and how a megawatt-hour becomes your monthly bill.
Both products ship the same way. Claude writes the tickets, the mockups, the code and the tests; a human makes the two decisions that matter — the plan and the release. Work moves in small vertical slices, each one gated, each one readable in a diff.
Behind it, a testing gate on every session: failing-first tests, pre-commit hooks, detect-secrets. Wattlas alone carries 130 offline tests across 20 files — pure metric functions on inline fixtures, no network needed.
Cloud Run front and back, Cloud SQL behind a VPC, every secret in Secret Manager. The pipeline authenticates with Workload Identity Federation — no JSON keys stored anywhere. PR checks and a Gemini-call guard gate every deploy.
A scheduled job reruns the Python pipeline daily at 05:17 UTC, commits only the JSON that changed, and the static site redeploys. Seven open data feeds, each isolated and fail-open. No backend, no database.