April was a packed month! The big headline is the arrival of Model Documentation — a long-requested feature that gives model developers a dedicated space to document their work. We also shipped some meaningful formula-level additions, improved the model comparison experience, and squashed a solid round of bugs. Read on for the full rundown.
🆕 New Features
Model Documentation
Summary: Models now have a dedicated documentation page where developers can capture notes, context, and supporting files alongside their work.
Each model now includes a Model Documentation page accessible from the model details and the model context menu. The page features a rich text editor for structured documentation, the ability to attach files from the File Manager, and a tracked timestamp showing who last updated the documentation and when. Documentation carries over when copying a model. Documentation on Production models is read-only to preserve auditability. See an example of the power of these capabilities on our latest published Pension library model.
Seeded Random Number Generation
Summary: Models can now produce fully reproducible results by setting an optional seed value on the Random Number Generator formula.
A new optional Seed Value setting has been added to the Random Number Generator formula. When a consistent seed is provided, the same set of random numbers will be generated consistently across projection runs, making it much easier to validate and audit stochastic models. When no seed is set, behavior is unchanged. Note that in order to generate a unique seed per scenario, per time, or per model point number, those variables need to be included in the Seed formula.
🔧 Enhancements
Ranked Subset Support for Rolling Value
Summary: The Rolling Value formula now supports ranked subsets — Highest N or Lowest N — giving actuaries more precise control over rolling calculations.
The Rolling Value formula has been expanded with two new capabilities. First, the Frequency parameter is now a formula builder input (rather than a fixed dropdown), allowing for dynamic frequency expressions. Second, a new Subset option lets you filter the rolling window to only the Highest N or Lowest N values, with control over whether those values must be contiguous or can be selected freely from across the window.
Projections List Pagination
The All Projections and My Projections list views are now paginated, reducing load times — especially for customers with a large number of projections. Pagination applies when browsing both the top-level list and individual virtual folders.
Delete Individual Array Values When Comparing Models
When comparing models, you can now merge individual or multiple static array value deletions from a source model into the target — giving you finer-grained control during the merge process.
Improved Yield Curve Point Matching in Model Compare
Previously, if a yield curve point existed in both models with the same duration but different names, the comparison incorrectly flagged it as an addition and deletion. The comparison now matches yield curve points by duration, and name differences are shown as a standard mergeable diff.
Smarter Nested Table Handling When Copying Models
When copying a model with a nested table reference to an older version — and the latest version of that table isn’t used elsewhere — the copy will now correctly include all referenced versions, not just the latest.
🐛 Fixes
- Projection file references updated correctly — Switching a model point file from one format to another (e.g., XLSX to CSV) now takes effect on the next projection run as expected.
- Table lookup errors resolved — A specific combination of nested and non-nested table references was causing an incorrect table to be cached, leading to lookup failures (which caused errors). This has been corrected.
- Scenario table versioning fixed — When a projection uses multiple scenario tables via nesting, all tables now version correctly upon update, rather than only the first one being versioned.
- Scenario files can now be deleted after creation — Recently generated scenario table files were not being removed from the File Manager upon deletion. This has been resolved.
- Excel model point file parsing corrected — Certain Excel MPFs with stripped dimension tags were not being processed during projections. These files now parse correctly.
- Model copy reliability improved — An issue causing model copies to fail when saving files was identified and resolved.
- HPM projection improved stability — A rare condition where HPM workers would stall, causing a projection to hang has been addressed.
- Scenario log error messages no longer cut off — Full error messages are now displayed in Cores scenario logs.
- Debug dropdown alignment corrected — A minor visual misalignment between the array dropdown and array symbol box in Debug view has been fixed.
API Fixes
- Data table
indexReadMethodnow validated — The API now returns a 400 error when an invalidindexReadMethodvalue (anything other than1or2) is provided in data table requests, rather than silently creating a malformed table. - Scenario table ID returned correctly — The
GET /api/v1/DataTables/Dataendpoint now returns the correct scenario table ID instead ofnullfor data table columns backed by a scenario table.
















