Features
What it does, and why each piece is there.
Three things carry the product. Everything else in the reference grid below exists to make those three usable on a real planning cycle.
Flagship · near real-time recalculation
Answers at the speed of the question
Anything you change — a single entry, a pasted block, a whole imported file, or one assumption at the top of the plan — triggers a full rebuild of everything downstream of it. Not a sample and not a summary: every affected plan, at its full grain, however many million rows that is.
The consolidated total at the top of the page and the SKU-level detail underneath it are never out of step with each other, because they were never calculated at different times.
An operation either completes in full or not at all. There is no state in which half your paste landed and the totals are wrong.
Flagship · the engine
Scale that doesn't cost you speed
Orthantic understands the relationships between every number in your model. A change touches only the values genuinely affected by it, which is why response time tracks the size of your change rather than the size of your model.
Practically: adding three years of history or a second product hierarchy does not make tomorrow's planning session slower.
Flagship · the formula language
Spreadsheet vocabulary, applied to the whole business
Every calculated number in Orthantic is defined by a formula you can read. The vocabulary
is deliberately the one planners already have — arithmetic, comparisons, if,
and a library of named functions that behave the way their spreadsheet equivalents behave.
What it actually looks like
# Revenue, from two different modules
Sales Value = "Sales History"["Quantity"] * "SKU Master"["Sales Price"]
# A driver-based cost line, with a floor
Freight Cost = max(Shipped Units * Rate per Unit, Minimum Charge)
# Last month's closing becomes this month's opening
Opening Stock = lag(Closing Stock, 1, 0)
# A three-month moving average
Demand Baseline = rollingtotal(Shipped Units, "Month", "AVG", 3, 0)
# Each SKU's share of its category
Mix % = round(Units / aggregate(Units, "SUM", over=[Category]), 4) * 100
Within one module you refer to another number by its name. Across modules you qualify it —
"SKU Master"["Sales Price"] — so a formula always says where its inputs come
from.
A planning lead can write and change the logic themselves. There is no translation step between the person who understands the business rule and the person who implements it, which is where most of the elapsed time in a planning project goes.
The alternative to a formula language is code: scripts, stored procedures, a nightly job somebody wrote years ago. That code becomes a liability the moment its author moves on, and every business change becomes a change request. A formula is the definition itself — there is no separate implementation to keep in step with it.
Every calculated number can be traced back to the rule that produced it and the inputs it used. Every number a person typed carries their name and a timestamp. “Why is this figure what it is” is a question with an answer, not an investigation.
More than forty-five functions, and the list keeps growing
Arithmetic and logic you would expect. Time intelligence — lagging a period, running and rolling totals, period start and end dates, offsets. Cross-module lookups and aggregation to any level of any hierarchy. Text handling for labels and codes. New functions ship with releases, and existing models pick them up without being rebuilt.
| Group | Function | What it does |
|---|---|---|
| Arithmetic & logic | max |
Returns the larger of its arguments — a floor under a calculated cost line, for instance |
| Time intelligence | lag |
Takes a value from an earlier period, so last month's closing becomes this month's opening |
| Time intelligence | rollingtotal |
Runs a total or average across a moving window of periods |
| Lookup & aggregation | aggregate |
Rolls a value up to any level of any hierarchy, so a share-of-category is one expression |
| Rounding & maths | round |
Rounds to a stated number of decimal places |
Feature reference
| Feature | What it is |
|---|---|
| Cell-level audit trail | Old value, new value, person and timestamp for every figure a person entered |
| Cross-module references | Pull a value from another part of the model by name, so a formula always shows where its inputs came from |
| Dashboards and reports | Assemble the views each team needs from the same underlying numbers |
| Formula language | Spreadsheet-style vocabulary — a rule is one readable line, written once and applied across the entire model |
| Function library | More than forty-five functions covering arithmetic, logic, time intelligence, lookups, aggregation and text — extended with each release |
| Grid entry and paste | Type a cell, paste a block from a spreadsheet, or drop in a file — all three land the same way |
| Hierarchies and roll-ups | Plan at category level and see it distributed to SKU, or plan at SKU and see it consolidate — the same model does both |
| Multi-dimensional modelling | Plan across products, customers, locations, accounts and time, at whatever level of detail each process needs |
| Optimisation | Ask for the best allocation subject to your real capacity, budget and policy constraints |
| Role and data access control | Control both what someone can open and which slice of the data they see inside it |
| Scenario planning | Build alternatives side by side and keep the ones you didn't pick |
| Statistical forecasting | Generate a baseline from history, with outliers handled before they distort the result |
| Time intelligence | Rolling periods, year-to-date, prior-year comparisons and period roll-forward built in |
| Versioning | Snapshot a plan as the cycle rolls forward and compare against it later |