What’s new in Novi: September 2026
The plan now comes in from the people who own its numbers, straight into the model. Plus links that match codes by rule, a register grid that groups, and the thirty formula functions financial models actually use.
September was the month Novi learned to run the part of planning that is about people. The headline is a redesigned Contributions: the budget round, from the first department to the last approval, inside the model instead of around it. Below it sit a way to match codes that never lined up, grouping and totals in the register grid, a fuller formula language, forecasting that holds up on real data, and a month of smaller things.
Contributions: the plan, from the people who own it
Every plan eventually needs numbers only other people have. Sales know their pipeline, operations know their headcount, and every cost-centre owner knows what next year will cost. The usual way to collect them is a round of files: a template goes out, forty copies come back, and someone spends the following week consolidating, chasing and reconciling versions.
Contributions runs that round inside the model. A modeller picks the tree the plan is collected over, usually the departments, and who contributes and who approves at each level. A contributor opens a task, takes ownership of it, and types straight into the views and dashboards of the contribution’s form set. When they submit, the approver above them sees it at once.
The contributor
Your departments, in your inbox. Take ownership, enter the numbers in the scenario and periods the round is open for, and submit. If a task comes back, the reason comes with it.
The approver
One tree for everything below you, with each department’s state and a progress bar for the whole. Send a task back with a reason, fill one in yourself if the contribution allows it, and lock a branch when it is done.
There is no copy. A contributor types into the model itself, so the moment a department submits, its numbers are already in the plan, rolled up and ready for the report. Nothing has to be collected, because nothing was ever sent away. The workflow decides who may write where, and when; it never keeps a second version of the numbers.
The round keeps itself honest. A task opens read-only until someone takes ownership, the tree shows who holds each task and when they last edited, and another member of the same group can take a task over when a colleague is away. A submission carries its scenario and the periods open for input, and its sheets are pinned to them. Play refuses to start a contribution that is not complete (a department with no contributor, a rollup with no approver, a missing form set) and lists what is missing. State changes reach everyone’s inbox and tree as they happen, without a refresh.
Form sets, the views and dashboards a contributor works in, are now built in the Storyteller with their own access rights, and a contribution picks one for contributors and one for approvers.
Contributions is a module; ask us to switch it on.
Match by Rule: when the codes don’t line up
Every company keeps a mapping somewhere. The ledger calls a product P-1042 Oak Desk 160 and the plan calls it P-1042; the cost centres in the ERP carry a prefix the planning hierarchy never had. Usually the mapping is a rule nobody wrote down, applied by hand every month: the code is the first word of the name, the family is the code’s first letter.
A link can now keep that rule itself. Match by Rule gives each side of a mapping a key: the element’s code, its name, both, an alias, an attribute, the text of a register’s column, or an expression of your own. LEFT(Product, FIND(" ", Product) - 1) on the source side matches the code on the target side, and next month’s new products follow the rule without anyone touching the mapping. Expressions take text functions, arithmetic, IF, ANCESTOR to fall back to the nearest parent that matches, and lookups through an alias or an A-Table.
You watch the rule work while you write it. The panel counts what matched, what did not and what matched more than one element, and the grid shows the pair the rule made for every source element. Whatever no rule can express is still mapped by hand.
Links from a register also carry text now, so a product’s material arrives in the planning table as a value rather than as another dimension.
The register grid, grouped
A register, a T-Table or S-Table of transactions, is where the detail lives, and detail is only useful once it is summed the way the question is asked. The grid now groups by up to three levels: a column, a calculated column, or a date by day, week, month, quarter or year. Every group header carries its count and totals, groups can be ordered by a total, and the whole tree folds and unfolds at once. Grouping works on every row that matches your filters, not on the page you happen to have loaded, and it is saved with the view.
A summary row under the headers totals each column over the filtered rows (sum, average, minimum, maximum, count, distinct count, earliest or latest). A search box looks across every column. The download saves every matching row, however many there are, as a CSV that opens correctly in Excel.
On the demo tenant’s purchase register, two million lines, a filtered and sorted page comes back in under half a second.
Formulas: the thirty that financial models use
Novi’s formula language is deliberately small. Most of modelling is arithmetic, and a list of two hundred functions is a list nobody reads. September fills in what was missing from the part that gets used.
IF now nests anywhere, including inside arithmetic, with AND, OR and NOT beside it. BLANK leaves a cell empty instead of writing a zero, so IF(Units = 0, BLANK, Revenue / Units) stops a price line filling with zeros that are not true. MIN and MAX, powers, roots, logarithms and MOD. DATE, YEAR, MONTH, DAYS and ADDMONTHS, behaving as they do in Excel. The start, end and length of the period a cell sits in, and DATETOPERIOD to find the period that contains a date.
And one function finance people will recognise at once: BALANCE(Opening, In, Out), a roll-forward in one line. The opening balance is read at the first period, the movements are added and subtracted, and every later period opens where the one before it closed. Time functions now work over calculated measures too, so PREVIOUS(Closing) and YTD(Margin) do what they say.
Forecasting that holds up
Forecasting in Novi takes a table’s history, one series per product or customer, and runs a competition. Seven statistical models are fitted to each series and scored on the most recent months they were not shown, and the winner writes its forecast, with 80% and 95% ranges, to a forecast table beside the model. The run reports how it did against a seasonal-naive baseline, last year’s same month, the forecast every analyst reaches for first, and says in plain words which series it could not forecast and why.
September is when it started to hold up on real data. A product that never sold is no longer counted as a failure, a product launched last year starts its history where it started, every series in a run forecasts from the same month, and there is no longer a cap on the number of series.
Forecasting is an add-on; ask us to switch it on.
The rest of the month
Views that total by weighted average across many aggregates can open more than a hundred times faster: on one client’s sales table, from nearly twenty seconds to a seventh of a second. A link from a register into a planning table runs about sixteen times faster, measured in production.
For standard users, Access Lists now decide everything: an object appears in the explorers, in search and in every list only when a list grants it, and it cannot be opened any other way. Modellers are not restricted by them. Models, Matrices and Maps are modelling areas, closed to standard users by default.
A model has a description, which CLARA can draft in your language for you to accept. The workspace page shows every model as a card with its description, its size and when it last changed. Hover over a model, a dictionary or a row header and it says what it is.
CLARA says so when an answer was cut short, explains a failed step instead of stopping, and answers “is anything waiting for my approval?” across the whole workspace. Docked in the model canvas or the dictionary editor, it opens on the object in front of you.
Fifty articles, written step by step in the running product: an orientation, a track for people who enter and review numbers, the first two levels of building models, and three multi-part guides that build a whole model from an empty workspace, for a coffee chain, a furniture maker and a pharmaceutical distributor. Orientation and the guides are also in Polish.
The Time Wizard opens from the Time group. A table created in a folder stays there. Import history sits in the side dock, Gateway deliveries included. The formula editor follows the app’s theme.
All of this is live. Open the bell in Novi for the full release notes, in English, Polish, French, German and Spanish.
Run the next budget round inside the model
Contributions collects the plan from the people who own it, straight into the model, with the approvals on the same screen. If your last round ended with a folder of returned files, this is the one to try.