Skip to content

Ozzit v3.4.0

Latest

Choose a tag to compare

@ryanduguid ryanduguid released this 06 Sep 12:29
· 69 commits to main since this release
Immutable release. Only release title and notes can be modified.
v3.4.0
ce1ffb6

Ozzit v3.4.0 ships 138 native Excel LAMBDA functions: the v3.3.0 workbook plus four functions and three changes merged on 6 September 2026.

What is new since v3.3.0

  • oz.ROEλ takes an optional OpeningEquity and divides by average equity when it is given. Called with two arguments, or with a blank opening cell, it returns exactly what it did before, so the ratios worksheet's cached value stands.
  • oz.PeriodRateλ(AnnualRate, [PeriodsPerYear]) and oz.AnnualRateλ(PeriodRate, [PeriodsPerYear]), the two directions of (1 + annual) ^ (1 / periods) - 1, the rate per period the four AASB 16 functions take. Proven against Excel's own NOMINAL() and against each other on random rates.
  • oz.DayCountRateλ(Timeline, APR, [Convention], [EndDates]): one interest rate per timeline period under 30/360, Actual/360, Actual/365 or Actual/Actual (ISDA split at 1 January). oz.DebtSculptVariableλ and oz.DebtSculptVariableLRVλ take the result through a new optional PeriodRates argument.
  • oz.DateDifλ(StartDate, EndDate, [Unit]), a DATEDIF replacement that counts a month as complete when EDATE() of the start date has arrived and takes every remainder from that anniversary, so the MD unit cannot go negative around month ends.
  • Randomised self-test checks. tools/excel_selftest.ps1 draws fresh inputs on every run for 23 checks against independent Excel formulas and prints the inputs behind any miss.

No worksheet was added or changed, so all 19,444 cached values are the ones v3.3.0 shipped. Full detail in CHANGELOG.md.

Assets

File SHA-256
ozzit.xlsx 8ea782fe7ee63605394acace586df76332fafedfea5d8bc43fb672e8424115a6
provenance.json ef35078e5758a1d65ab2c2a4f7de8af4f74bf78c509b7bd9d37e18293dd65f9c

SHA256SUMS covers the two files above and deliberately does not include itself. ozzit.xlsx is 438,726 bytes and is copied byte-for-byte from the tagged tree; the standalone and tagged workbooks share a SHA-256.

Verification

Built from signed tag v3.4.0 at commit ce1ffb6d8216cec5e0cc132fddc7d6df38353de1. All ten release gates passed on that commit:

  • mypy 2.3.1: no issues in 27 source files
  • 138 functions, 169 parts; src/ reproduces all 138; 130 signatures, 130 parameter tables and 127 example blocks checked
  • 130 of the 138 names carry over from released-names-v1.2.6.txt, 8 are new
  • 218 unit tests pass; 43 cached helps match their definitions
  • Excel 16.0 build 20326: 1,129 formulas recalculated, 0 in error; 818 assertions (516 hand-written, 23 of them randomised, and 302 generated from the help), 0 failed
  • 19,444 cached values confirmed to be the values their formulas produce

The workbook was hashed immediately before and after both native gates and was byte-identical throughout. The bundle was staged twice into separate directories outside the repository and both stagings were byte-identical.

The v3.2.0 GST capture in the README remains a record of that release; it was not re-shot for v3.4.0.