Daily cost
Search and AI spend per day, from each call's measured usage and the prices on the Prices tab.
Show as a table
By provider and model
Totals for the period shown above.
Public access
The dashboard is public: anyone with the address can open it, with no PIN or sign-in. This admin page still needs your admin code (then a signed cookie, up to 30 days per device), and while you're signed in here the dashboard gives you the admin controls.
Admin sign-ins
The last admin-code attempts.
Market and official feeds
Every figure is read directly from its source by this server, at no cost: stock indices from Google Finance quote pages, commodities and US 10Y from CNBC's quote service, US 10Y and Brent spot from FRED's CSV download, JISDOR and BI-Rate from Bank Indonesia, SBN yields from PHEI, coal, CPO, CPI and the monthly series from Trading Economics, chokepoint transits from IMF PortWatch and foreign flow from IDX. When a page refuses the direct request or changes its layout, CNBC (for indices) and then the extraction service on the Search API tab are the fallbacks.
A feed whose direct read fails three times in a row goes straight to the fallback for 6 hours, then the direct read is tried again. Market pages are read while their exchange trades (interval on the Schedule tab) and once after the close.
Live push
Open dashboards keep one WebSocket to this server. New headlines that pass the relevance filter and fresh market readings are pushed to every dashboard the moment they are stored, so nobody's browser polls a source and no API call is made per viewer.
Live TV relay
A direct channel is played by the viewer's browser straight from the broadcaster: nothing passes through this server. A relayed channel is fetched by this server and forwarded to the viewer (needed when the broadcaster checks the Referer or sends no CORS headers), so every video segment is this server's traffic: on Cloudflare one Worker request every 2–6 s per tile; on Cloud Run outbound egress, roughly 1 GB per hour per tile.
Relay off for a channel that also plays directly only removes the relay fallback. Relay off for a relay-only channel (BeritaSatu) takes it off air: its tile says so and viewers can pick another channel. Viewers can also run the local relay on their own computer (node tools/local-relay.mjs, then “Relay: this computer” under the TV grid), which never uses this server.
Strategy review
The scenario levels, IGEI and rankings update by themselves every few minutes. What does not is the written part: each scenario's shock sizes, premise, watch lists and invalidation conditions, and each sector's tickers, exposures and mechanism. Once a week, and early when major news breaks, an AI reviews them against the week's rated headlines, today's figures and a few web searches, and proposes changes. Nothing changes until you approve it here, and each change stays within a limit around the original values.
Run now
Each run is one AI call plus the searches (cost above). Proposals appear below for approval.
Waiting for approval
No review is waiting.
In force
Free mode
One switch for a dashboard that makes no paid API calls. Market figures still come from the exchanges, central banks and data pages directly, news from Google News and RSS, and the scenario engine still recalculates every few minutes. What the AI did is done by rules instead: the bottom line, the hotspot statuses and the relevance rating of each headline. API keys become optional.
What changes
News sources
Where the headline wire, the map pins and the refresh brief get their news. Google News searches and publisher RSS feeds are read directly and cost nothing; the web search is a fallback for when they fail or bring too little.
News feeds
No key and no cost. They run every minute in active hours; a feed that hasn't changed answers "not modified" with no download. General feeds keep only stories about markets, policy, conflict or the regions on the map; tick "All" for feeds that are already on topic.
Grouped by source; open a group with +. The switch on a group turns all its feeds on or off. Google News and Bing News run the same searches (each at most every 5 minutes); a feed that a site refuses (HTTP 503 or 429, common for Google News from cloud servers) pauses 20 minutes and is retried. To change a search, remove the feed and add your own news.google.com/rss/search?q=… or bing.com/news/search?q=…&format=rss URL.
Refresh brief
Each AI assessment reads the relevant stories from the news database (last 12 hours) plus one Google News search per scenario:
Fallback: web search
Parallel or Exa search (set on the Search API tab) for the headline wire. It runs only when the free feeds fail, or when the last 3 hours hold fewer relevant stories than the threshold, and at most once per interval.
News filter and relevance
Stories that match are dropped everywhere: the headline wire, Today's headlines, Today's news, the AI brief and /api/news, for every viewer. Already-stored stories are hidden too, so the change shows on dashboards within a minute. Sports, celebrity and similar noise is filtered by default. Viewers can also hide a single story in their own browser with Hide.
/api/news?all=1). Copies of one story from several sources are merged. Headlines not screened yet, or with this off, are judged by fixed keyword rules.Other sources worth adding
Not connected. Each would need its own key and terms; listed for when you want deeper coverage.
Scenarios and calculations
The server works out each scenario's level, trend and triggers by fixed rules from the last 24 hours of relevant headlines and today's figures. It runs after every feed round and news update, and at least every 15 minutes, at no cost. The same run recalculates the IGEI, the live baseline drivers, and the sector scores behind the heatmap and Opportunities. Open dashboards reload within seconds.
Scenario scores
Score 0–100 = 0.5 × news pressure + 0.3 × market stress (0.15 for Russia–Ukraine) + triggers. Middle East covers Iran and Hormuz, Israel (Gaza, Lebanon), the Houthis and Red Sea, and the Gulf states. Levels: Dormant < 15 ≤ Watch < 35 ≤ Elevated < 55 ≤ Active < 75 ≤ Severe. Active needs a trigger hit or market stress of 60 or more; Severe needs two escalation triggers hit.
IGEI, baseline drivers and sectors
Baseline drivers measured today
Sector scores by lens
Map
The background map on the Executive page. All choices use OpenStreetMap data. The first two need no key; the others need a key from the provider.
Search API
Fallback only. Figures and news are read directly from their sources; this service is called when a direct read fails (extraction), when the refresh brief or the headline wire is short of stories (search), and for foreign flow when IDX has no figure by 17:30 WIB.
Search API keys
Keys saved here are encrypted in the database and override Worker secrets. Remove one to fall back to the secret.
AI model
The model that reads the search results and returns today's figures, hotspot status, scenario levels and the bottom line.
Save cost
AI API keys
Encrypted in the database. A test sends a tiny prompt, which costs a fraction of a cent and shows on the Usage tab.
Schedule
The server checks every minute and runs whatever is due. Now: .
Estimated cost per weekday
At the saved settings and prices. The AI range depends on how often there is news: the low end assumes it runs only when required by the "at least every" setting.
Budget
Run now
Ignores the schedule and the budget pause.
Prices
Used to cost each call as it happens. Defaults are the published list prices (October 2026); change them if your contract differs. Past calls keep the cost they were logged with.
Updates
The last 40 refreshes and wire polls.
Recent API calls
The last 60 paid calls, with tokens, cost and errors.