AnantState
The adaptive state engine

Start with what you already know. Let the model learn the rest.

Most systems ask a model to learn your business from scratch. Here you supply the part that is already known: how your business normally behaves. The model only learns what is left over. That is a smaller problem, its mistakes are easier to see, and it works before you have history.

In plain termsA known pattern plus a small learned correction, instead of a model starting from nothing.

State changes for two reasons

  • 1 · Known dynamics

    Seasonality, throughput, scheduled events, decay.

    A store processes transactions because it is open. A machine wears because it runs. Modeled with baseline dynamics: encoded, inspectable, derived from how the business works.

  • 2 · Everything else

    The interesting part.

    A new fraud pattern, a failing supplier, a member quietly disengaging, a process degrading in a way nobody scheduled. Modeled with a learned residual.

nextstate = baselinedelta(state, event, dt) + α · learnedresidual(state, event, dt)
α is the domain’s residual weight: how much the learned component is trusted relative to the baseline. A configured, inspectable number per domain, not a hidden internal.
The business declares how its world moves. A bounded correction learns only what is left over, so the state is useful on day one and gets sharper as history accumulates.

Four consequences that matter commercially

Why this beats predicting state directly.

  1. It works before you have much data

    The baseline is available on day one because it is derived from your business, not learned from your history. The learned component starts at zero trust and earns its weight. You get a usable state model in the first week, not the first year.

  2. It degrades gracefully

    If the learned component is wrong, the state still moves correctly under baseline dynamics. The failure is a missed correction, not nonsense. A model that predicts state directly is confidently wrong about everything when it is wrong.

  3. Its errors are interpretable

    A residual that should have fired and did not is a bounded, visible event: “the model missed the supplier disruption”. You can look at it, explain it and retrain against it. “The model was wrong” is not a debuggable statement.

  4. It gives you a baseline to be measured against

    Because the baseline is a real, runnable model, we can answer the question that matters: is the learned component adding anything? If the residual weight needs to be zero to be accurate, the platform reports that. That is the platform working correctly.

The learned component: what kind of model, and why

The correction comes from a specialized, bounded learned component. It is not a language model, it is not token-based, and it generates nothing: it produces a numeric correction the business can weight, inspect and override.

  • Time is a first-class input. State advances by an elapsed `dt`, not by a fixed step. The model is asked “how much time passed”, which is exactly the question the business asks.
  • Irregular observations are normal. A store that reports every 200 ms and a supplier that reports daily are handled by the same component, because it is parameterized by time, not by position in a sequence.
  • Small and inspectable. Its internal signals are small enough to display, so a practitioner can see which dimension the model is leaning on.
  • Two variants. A faster, higher-capacity configuration and a smaller, more interpretable one, selectable per domain.

Elapsed time is real elapsed time. In production editions `dt` is the observed time between an entity’s events, recovered from timestamps. In the demo edition, with its built-in simulator, it is a fixed simulated step. Gaps longer than the training ceiling fall back rather than extrapolating, because extrapolating through a data gap is how you produce a confident number with no information in it.

What we deliberately do not do

Not thisBecause
Predict state from scratchA larger learning problem, a worse failure mode, and it needs far more history.
Treat every tick as an independent sampleState is sequential; ignoring that throws away the signal.
Use a fixed step size regardless of real elapsed timeIt produces silently wrong timing on irregular feeds.
Hide the residual weightIf you cannot inspect how much the model is trusted, you cannot govern it.
Retrain on the model’s own outputSelf-referential corpora are detected and disqualify a promotion.

That last row is not marketing. The platform records which teacher produced each training row and flags corpora that are too self-referential to certify. A model trained on its own predictions looks excellent and knows nothing.

The correction has to earn its place

Models are compared with a baseline on data they never trained on. Those that do not beat it are shown.

Prediction error by model on data the model never trained on, with a dashed baseline line: models that beat the baseline fall below it and those that do not rise above itFictional reference world: OgMart
Models are judged against a baseline on data they never trained on. The ones that lose are shown, not hidden.

See the residual weight on a real domain

We will show the baseline, the correction and the weight side by side, and what the model record says about whether the correction earns its place.