Updates

What we've shipped, and why.

Releases

  • When a figure cannot be calculated, Axmo now tells you why: twelve named reasons — a division by zero, a missing input, a number too large to hold — reported against the series they happened in, instead of a bare failure. Repeated failures collapse into one line carrying a count and three examples, so the owner's twelve refusals became a single entry. Parent elements can now be calculated by a formula over their own children, and a dimension can qualify any anchor in a formula.

  • The Walkthrough demo in Load Demo no longer opens reporting Calculated, with errors: its two year-on-year series are guarded for the first period, so the model opens clean. No figure it publishes moved.

  • One deleted source column used to fill the Status tab with 22 lines; it now produces one, grouped. DS.DATA refuses a dimension named on both axes instead of quietly returning a truncated table, and a failed import leaves the model you had open exactly as it was, and says so.

  • A computation with no answer became a first-class value: it renders [error] in the cell it belongs to and marks only the cells it touches, rather than voiding the whole model. A parent whose children hold no values stays empty instead of showing a manufactured zero, a blank source cell means not provided in every load mode, AVGA / MINA / MAXA join the language and the roll-up methods, the order in which data loads is yours to declare and edit, and an .axmo file whose model does not compile imports anyway and reports what is wrong instead of being refused at the door.

  • A value typed beside an output range now survives a change to that range's shape — cells in neither the old nor the new rectangle are left alone instead of being cleared. With Show data off, the anchor comment reads Axmo output: <name> and nothing else.

  • An output range with Show data switched off now draws its column headers and row labels, where it previously drew nothing at all. A render Excel refuses — a protected sheet, say — is reported as a failure instead of reading up to date. New ranges are created with all three show-options on.

  • Renaming a series you created earlier in the same editor session is now a rename, not a delete-and-re-add: the save that used to be refused goes through, and formulas referring to it stay pointed at it.

  • The Import from data source wizard ships: four steps in the Data Series editor that turn a bound table into a set of Input series and the loader that fills them, in one pass. Alongside it: names are checked by one authority, so a name the editor proposes is a name it will accept; every + Add button proposes <base>, then <base> 2; leading and trailing spaces are stripped from names; and a DS.DATA cell over a void computed tier declines rather than showing something it should not.

  • A workbook that used to open reporting itself healthy — or not open at all — now names the part of the saved model it could not read, as an error that blocks Update rather than a console message nobody sees. Two shapes that previously took the whole workbook down now open: a sequential dimension whose weights cannot be recovered is kept and named, and a series saved without dimensions loads as 0-D and is reported.

  • The editors stop losing work. Reopening after a close or a crash returns every unsaved item, not just the last one touched; pressing + Item or Duplicate no longer discards the edit in front of you; unapplied YAML text survives the X; and the Save button is lit by comparing against what was last saved, so it no longer glows over work that is not there. Importing a dimension from a range now reports an element that arrives differently instead of dropping it.

  • A dimension can be edited three ways: the layer view it always had, a new tree view with a skip-layer marker, and Edit as YAML — the dimension's own text. Its structure can also be imported straight from a worksheet range. And Save now means what it says: typing into the YAML view no longer arms a Save that would write the structure the dimension had before you typed.

  • Element order stops moving: a dimension's elements come back from an .axmo export and re-import in the order you authored them, and the Dimensions editor gains block rendering with two move gestures. One warning that fired on a correct model — an opening balance with every dimension pinned — no longer fires.

  • The Load Demo card and the model it loads now carry the same name and the same description — Walkthrough demo, "The finished model from the "Build your first model" guide on axmo.it." No model content changed.

  • A second card in Load Demo: Walkthrough resulting model, the finished model from the Build your first model guide — 2 dimensions, 11 series, 2 data sources, 2 loaders, 1 output range. Nothing existing changed.

  • A custom function can no longer put #VALUE! in a cell. =DS.DATA(…) with a comma typed where a ; belonged now returns a readable message naming the offending character and its position, and anything failing beneath DS.DATA or DS.INFO is rendered as text. An Excel error value in a cell again means Excel's own reason, not ours.

  • Three silent defects in the editor dialogs, fixed. Adding an element per layer offered the wrong parent (a new Department defaulted to the root rather than the layer above) and the quick-add showed no parent at all; renaming a dimension's root element orphaned children on any layer below the first; and a Data Loader you had just created was destroyed, with no prompt and no trace, by moving focus out of the dialog or switching Input Range.

  • An output range that is broken now says so on the surface that was silent about it: the ordinary Update path publishes a per-range diagnostic, and the Output Range explorer's red dot asks the same validator that would refuse the range, rather than answering a different question.

  • Two formulas that computed a wrong number in silence now refuse and say why. A dimensional filter written on an @ operand — Month[Europe]@Year — was parsed and thrown away, so it quietly computed something else; it is now refused with the filter quoted and two rewrites offered. An anchor naming an element or a dimension of another dimension validated and produced nothing; it now carries a diagnostic.

  • A rename now moves the output-range references it used to leave behind. Renaming a dimension, layer, element, series or axis definition rewrites every place a consuming output range named it, so the range keeps rendering instead of silently going to zero rows. A drop-set naming something that no longer exists raises a warning naming the entry, where it previously stopped filtering in silence; and renaming a layer used by a roll-up FORMULA is no longer refused outright.

  • Editor dialogs render inside the Excel window. On Excel for the web, opening an editor no longer raises "Axmo Data Modelling wants to display a new window". On every platform the dialogs are now sized against the Excel window rather than the screen, so each one is smaller than it was.

  • One string: DS.DATA's description in Excel's function wizard no longer says "Both parameters" of a three-parameter function.

This record begins on 20 August 2026.

Posts