Changelog
Shipped
What landed, month by month, in plain language. Nothing is written here until its acceptance gate has passed, and every number carries its framing.
September 2026
- Site
The website
plansieve.com: the platform in the planner's language, every claim traceable, every number carrying its framing, both themes, no third-party scripts, and a guided walkthrough with no form in front of it. News, this changelog and the glossary are folders of plain files: publishing is adding a file and pushing.
- Demand
Lifecycle policies: apply at this level, and off provably skips
New-product introduction, like-item borrowing, phase-in / phase-out transitions and end-of-life as one policy family with stage gates: placeholder, pre-launch, launch, ramp, mature, phase-out, end of life, pinned at any level, inherited by everything beneath, overridable per item with a reason, through one verb: apply at this level. Every engine seat reads the policy through one helper and returns its input unchanged when off: 14 ms with the setting off against 169 ms on, in the same run (single-node setup, in our lab).
- Demand
Why it moved: attribution, the change bridge and the override referee
Each driver's signed contribution to a forecast, written as data rather than drawn on the fly; a bridge from last cycle's plan to this one whose terms sum exactly; and a referee that scores a proposed adjustment before it is committed. The explainer's divergence from the winning model halved on the demo tenant, median 9.2% to 3.7%, which is to say the explanation got twice as faithful, not that the forecast got better.
- Demand
Verdicts as data, exceptions as data, and a driver that was allowed to say no
The planner's review flow: keep, correct, mask, declare an event, adjust or approve: one gesture each, stored on the history with a reason and a vintage stamp so the cleansing engine, the model contest and the next cycle all read it. Exceptions become data too, gated at the source by a policy rather than filtered after the flood. And the driver catalog answers "did this signal earn its seat?" per series, in words, with the score beside it, including when the answer is no.
August 2026
- Platform
The bounded cascade
One cell edit used to re-evaluate the whole population downstream: 2,875,321 rows written and 24.1 seconds on a live demo tenant. After bounding, the same edit writes six rows in about 2.2 seconds, with every declining rule naming itself; the same live cascade now lands at about 505 ms steady. A planner's edit should cost what it touches, not what exists.
- Demand
Consensus, money and the accuracy staircase
The consensus workspace with its review room and accuracy pages; units of measure and time-phased currency exercised end to end, so a plan reads in cases, pallets or money without a second dictionary; the accuracy staircase, every cycle's frozen forecast against what happened, by lag, and a larger model library behind the contest.
- Demand
A contest for every series, at the level the backtest picks
Segmentation as an object the engine reads; the model contest, simple methods, classical statistics, intermittent-demand methods and machine learning, scored per series on a held-out window with the one accuracy definition, the champion named with its margin, and ranges (P10 / P50 / P90) from the model that won; the forecast level as a first-class configuration object, with a recommender that picks the level by backtest.
- Demand
Wave 1 opens: the Demand module, and every setting becomes a policy
The demand module begins as packs of metadata on the finished core: the planning canon as configuration, never engine code. With it, the policy framework and Policy Studio: every engine behaviour is a switch with typed options, resolved through named layers (package default, tenant default, segment, series pin with a reason), set once at the level you choose and inherited beneath it.
- Platform
A billion rows, measured
A retail day-level fact table of 1,003,750,000 rows on the scale-out adapter: ingest at 2.39 million rows a second, a workbench-shaped pivot page in 127.8 ms cold, a 500-store drill in 65.6 ms, and a pivot 124.8 ms after a fresh 100,000-row write. The one shape that did not fit the interactive path, an all-history 24-month rollup at 48.0 s, was answered by declared rollup layers: 105 ms served, identical totals. Our own benchmark in our lab, not a production workload.
- Platform
The planning-cycle spine and named history streams
A cycle is a governed procedure: freeze the forecast as of this cycle, keep the vintage, and define lag, accuracy-at-lag and forecast value added over the frozen snapshots. History streams, shipments, point-of-sale, any stream you name, become first-class series instead of one undifferentiated "actuals".
July 2026
- Platform
The platform is done
The platform core passed every one of its acceptance gates. The last gate had four parts: every storage adapter answered the same conformance matrix and one configuration value swapped the storage engine with identical totals at both scales; the half-second edit budget held under sustained load on the scale-out setup (25 edits and 10 reads a second for 60 seconds, twice, zero failures); a whole planning application was built from an empty install through the product's own doors with zero module code; and the security, tenancy and lineage gate found real gaps and fixed them before "done" was said. Measured in our lab, our own test data.
- Platform
The studios: build an app from the interface
Designer Studio, Algorithm Studio, the Code & Logic workspace, the governed SQL workspace, the network view and the operations console. The gate was the sentence itself: an application built from the interface, with no code, and it closed with a hands-on pass. Every planning screen renders from the same metadata; there are no special pages we built for ourselves.
- Platform
The API plane and the workbench
REST, WebSocket and Arrow-over-HTTP behind one API boundary; a grid door that serves a pivot page over a one-million-row world in 33 ms (median, warm, single-node setup); an edit in one session visible in a second session live; right-click Explain on any cell. Measured in our lab, on our own test data.
- Platform
Scenarios, versions, lineage, audit and packages
Scenarios that store only the cells you change, branch off each other and promote with every cell re-checked (the engine's own gate at 74 ms, single-node setup); immutable published versions with value-level three-way comparison; lineage and Explain over the API; an audit with change sets and rollback; forecast value added computed from the one metric dictionary, a negative value surfaced live; solution packages that install, diff and upgrade as metadata.
- Platform
Security and tenancy from row one
Sign-in with a pluggable identity provider, role-based access, grants that narrow every query, row-level isolation enforced in the database itself: a connection that has not declared its tenant sees nothing and writes nothing, and tenancy tiers that are configuration, not code. Every layer proven per principal over HTTP.
- Platform
Plug-ins sandboxed, features point-in-time, connectors with discovery
User-authored models and solvers enter through one door: registered, sandboxed, resource-limited, lineaged; a hostile source is refused. The feature store answers as-of a moment, so a backtest can never see the future. A file lands, is profiled, a model is suggested, facts load, and rejects are quarantined with their reason.
- Platform
The engine computes, and an edit reaches its downstream in 70 ms
Cross-grain consensus at a declared computation grain, flowed down mass-conserved; spreading that re-aggregates exactly; a dependency graph that recomputes only what changed; time recurrence evaluated as an ordered fold. Then the event plane: a cell edit travels buffer → flush → event bus → dependency graph → downstream recompute in 70 ms on the full stack, a single edit on the single-node setup, in our lab, on our own test data.
- Platform
Your vocabulary becomes the model, and the facts sit behind a contract
Dimensions, levels and hierarchies, alternate, ragged, shared, effective-dated, built through the API with versions and audit; named sets that compile and compose; a re-categorisation that applies from its date rather than rewriting history. Beneath it, the first fact store behind the storage contract with Apache Arrow as the interchange: one million rows written in 1.02 s and rolled up to a thousand groups in 12.5 ms (single-node setup, in our lab, on our own test data).
Every number above was measured in our lab against our own test data, never a customer benchmark.What each number measures, and its caveats
See PlanSieve on your data
Bring your history, your hierarchies and your vocabulary. We show the platform working on them.
a working demo on your data · no commitment