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.

Time to value.

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.

Nothing custom to maintain.

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.

Traceable by construction.

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.

Verified against the formula examples in this site's copy. Engineering completes the remaining rows before launch — see the note in the page source.
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 trailOld value, new value, person and timestamp for every figure a person entered
Cross-module referencesPull a value from another part of the model by name, so a formula always shows where its inputs came from
Dashboards and reportsAssemble the views each team needs from the same underlying numbers
Formula languageSpreadsheet-style vocabulary — a rule is one readable line, written once and applied across the entire model
Function libraryMore than forty-five functions covering arithmetic, logic, time intelligence, lookups, aggregation and text — extended with each release
Grid entry and pasteType a cell, paste a block from a spreadsheet, or drop in a file — all three land the same way
Hierarchies and roll-upsPlan at category level and see it distributed to SKU, or plan at SKU and see it consolidate — the same model does both
Multi-dimensional modellingPlan across products, customers, locations, accounts and time, at whatever level of detail each process needs
OptimisationAsk for the best allocation subject to your real capacity, budget and policy constraints
Role and data access controlControl both what someone can open and which slice of the data they see inside it
Scenario planningBuild alternatives side by side and keep the ones you didn't pick
Statistical forecastingGenerate a baseline from history, with outliers handled before they distort the result
Time intelligenceRolling periods, year-to-date, prior-year comparisons and period roll-forward built in
VersioningSnapshot a plan as the cycle rolls forward and compare against it later