v0.0.24: Multi-Region Per Project
One project now tracks several markets: configured markets are scanned on your plan's cadence, the dashboard reads a selected market's latest scan, and each market can answer in its own language. Plus the derived grounding multiplier and the seeded league's nightly refill.
One project, several markets
Markets are a project setting
A project now has a home market plus any number of extra markets, managed on the Domains page. Adding a market is a deliberate, bounded act: up to 20, deduplicated against the home market, validated with the same rules the scan path enforces. The Competitors page compares and scans the markets you have configured; it no longer half-adds one.
Each market is scanned on your plan’s cadence
The automated pass keeps every configured market fresh: one scan per market, due per that market’s own last scan, so one market’s recent result never suppresses another’s. A market scan is billed exactly like any other (one credit per prompt that comes back with an answer), and the whole run folds into the same daily and monthly budget as your home-market scanning. N markets, N checks, N credits: no per-region discount, no hidden surcharge.
Read a market, not just the project
The dashboard’s market filter (next to the date range) reads a selected market’s latest scan across the overview: headline score, stat cards, trends and derived alerts. A market with no scans yet says so honestly and offers to scan it now; it never borrows your home market’s numbers.
Each market can answer in its own language
A market can name a language (e.g. de for DACH) and every scan of that market asks the engines to answer in it, stored per scan. Blank follows your project language. This is tracking language. The product itself stays in English.
Under the hood
- The grounded-credit multiplier is now derived, not guessed. The 2× figure was a hand-set literal; it is now computed from the modelled worst-case grounded fleet against the cheapest included credit rate, and pinned so the margin floor holds on both plans and both billing intervals. Grounding stays off by default until the token-shape model is measured against real grounded calls.
- The seeded league refills itself. The industry-benchmarks catalog’s brands are scanned weekly (7/day stagger) ahead of the index rebuild, gated behind
BENCHMARK_SEED_REFILLand scoped to catalog domains: the operator workspace’s own ledger pays, so the leg is armed deliberately. - A DB invariant keeps market language slots aligned with their markets, whatever writes them.
Want to shape what we build next?
See what we're building next, and tell us what you need.

