GodEngine
Not one model. An engine with two ways of answering.
TimesFM 2.5 produces the quantile forecast around a single series. The GodEngine swarm resolver answers the other half of the question — which futures are on the table, and how heavy each one is.
TimesFM 2.5
temporal/ · wft/forecast/A foundation time-series model, vendored byte-verbatim from god-engine and verified against a lockfile. Any series the product holds can be sent to it, with horizon and transform chosen in the lab.
Answers how wide is the distribution around this series
Feeds Forecast Lab · forecast columns · Divergence · Record
Swarm resolve
wft/godengine/client.pyGodEngine’s resolver streams branching futures with probability mass, assumptions and triggers per branch. It is the other half of the engine, not a different product.
Answers which futures are on the table and how heavy each one is
Feeds Scenarios · Simulation · Regimes
What happens when you ask for a forecast
Six steps, and what stops each one.
Series
A named series is selected — from yfinance, FRED, CoinGecko or any bound connector.
Refuses when the connector is unbound
History
Observed history is read from Postgres, with its as-of stamp from the last successful fetch.
Refuses when history is shorter than the context window
Weights
The forecast worker loads the model file already verified on local disk.
Refuses when size or sha256 does not match
Forecast
TimesFM 2.5 returns a median and the quantile band for the chosen horizon.
Refuses when the decoder is the polyfit fallback
Record
The forecast is written down with horizon, quantiles, baseline and decoder before any outcome exists.
Refuses when never — recording precedes display
Render
The panel draws observed in data ink and the forecast in engine ink, with provenance beside it.
Refuses when decoder_name is StubDecoder
What every forecast carries
A plausible line is worse than no line.
The decoder name travels to the browser with every forecast, so a run from the fallback decoder is visible rather than hidden — and it draws nothing at all.
decoder_nameWhich decoder produced this. The fallback is visible, not hidden.
horizonHow far ahead, fixed at write time and never re-chosen after the fact.
q20 / q50 / q80The quantile band drawn as the fan.
baselineRandom walk, scored alongside so skill is measurable.
as_ofThe server's last successful fetch of the input series, never the browser clock.
sourceThe named connector behind the input series.
run_idTies this forecast to its row in the ledger when it resolves.
Weight integrity
Vendored, not forked.
temporal/ is a byte-verbatim copy of god-engine’s TimesFM layer.
verified against temporal/VENDOR.lockA modified vendored file fails the build rather than shipping quietly.
scripts/vendor_sync.py --check in CIWeights are fetched from a local path or a release, never from git.
scripts/fetch_weights.pySize and sha256 are checked against the recorded checksums.
weights/CHECKSUMS.txtOnly a verified file is moved into place, atomically.
925,181,104 bytesSix commitments the engine makes
What the engine will never do.
Quantiles, not a point
A single line implies a confidence the model does not have. Every forecast ships q20, q50 and q80.
A baseline travels with it
Skill is measured against a random walk. Without a baseline a forecast can only be admired, not judged.
Written before scored
The horizon is fixed at write time. Nothing is re-chosen once the outcome is known.
The fallback is loud
A polyfit stub is plausible and therefore dangerous. It draws nothing and says why.
Vendored, not forked
The model layer stays read-only and verified; product behaviour lives beside it, not inside it.
Engine ink only
Forecasts never borrow the colour of an observed number, in any theme or colourblind mode.
Where the engine appears
FCSTForecast Lab
Pick a series, horizon and transform; read the fan and its provenance.
RECTrack Record
Resolved forecasts, coverage, calibration and skill by horizon.
DIVDivergence
Where the engine most disagrees with the baseline, and whether that paid.
SCNScenarios
Branch tree and probability mass from the swarm resolver.
SIMSimulation
Push a shock and watch it propagate through the linkage graph.
MKTEvery tape section
An engine column beside the observed one, never in the same ink.