ActuarialOS

ActuarialOS for Excel

Security & Data-Handling Statement

For IT departments and security reviewers evaluating the add-in for deployment: what it is, what it touches, what it sends, and how to verify it.

Last updated
2026-09-06 (beta) — every row below re-read against the code that day; the
Source
Published verbatim from the add-in’s own SECURITY.md

For IT departments and security reviewers evaluating the add-in for deployment. One page: what it is, what it touches, what it sends (nothing — its one network call is a content-free version check), and how to verify it. Last updated: 2026-09-06 (beta) — every row below re-read against the code that day; the census and its findings are in PUBLIC-REVIEW.md.

What it is

A single-file Excel add-in (.xll, Excel-DNA / .NET Framework 4.8, 64-bit) that adds actuarial worksheet functions (=aos_…) and formula-builder dialogs to Excel. All reference data (published SOA mortality tables, IRS/PBGC/SSA/Treasury series) is compiled into the file — there is no runtime download, database, or companion service. No installer is required to evaluate it (File ▸ Options ▸ Add-ins ▸ Browse); the commercial release ships a signed installer.

What it accesses

SurfaceAccessDetail
NetworkOne optional call: the update check.On each Excel start the add-in makes at most one network call: a read-only HTTPS GET of a small static version file (version.json, ~50 bytes) to see whether a newer version has been published. Nothing is transmitted — no token, no machine identifier, no custom headers, no query string, and never anything from a workbook (census data, participant data, results never leave the machine). The request has a ~2-second timeout, is never retried within a session, and every failure is silently ignored — if it succeeds and a newer version exists, the only effect is a one-line "newer version available" note inside the Help and License dialogs. There is no auto-update and no download: updating is always a deliberate reinstall through your normal channel. To block it: deny the update host (www.actuarialos.io) at your firewall/proxy/DNS — the add-in behaves identically in every functional respect (all calculations are local; the note simply never appears). If a build ships with the update URL unset (a `.invalid` placeholder), it skips the call entirely and makes zero network calls. A future license check will POST only {token, tool, version} (metadata, never workbook content) over HTTPS, and the add-in runs even if that check is unreachable (fail-open by design).
File systemNone beyond its own load.The add-in reads and writes no files. The installer copies the .xll to %LOCALAPPDATA%\ActuarialOS\Excel and the sample workbooks to Documents\ActuarialOS; the sample workbook is opened only if the user accepts the one-time first-run offer (or opens it themselves).
RegistryHKCU only.One key, HKCU\Software\ActuarialOS\Excel: LicenseToken — the user's beta key / account email, written from the License dialog or the installer's optional beta-key page; FirstRunSample — a one-shot path written by the installer and deleted by the add-in after the first-run sample offer. The installer also writes the standard per-user Office OPEN value (HKCU\Software\Microsoft\Office\<ver>\Excel\Options) that tells Excel to load the add-in; uninstall removes it. No machine-wide (HKLM) writes; no admin rights.
Processes / shellOne, and only when you click it.The ribbon's Send feedback button hands a mailto: link to Windows, which opens your default mail client with a message pre-addressed to hello@actuarialos.io and the build version filled in. Nothing is sent until you press Send, and the body asks you not to include plan or client data. That is the only process launch in the add-in: otherwise no child processes, no shell execution, no macros, no VBA.
Excel object modelStandard add-in use.Reading the active cell (formula builders / edit-in-place), writing a formula the user inserts, ribbon + dialogs. Nothing is captured or persisted.

Data confidentiality

All calculations run locally, in-process. The add-in contains no telemetry, no analytics, and no crash reporting. Its only outbound traffic is the content-free update check described above (a GET of a static file — the request carries no data and can be blocked with no functional effect). This is deliberate: actuarial census data is confidential, and the product's design rule is that plan data never transits the network — including in the future licensing path, which is metadata-only and fail-open (a licensing outage can never block or alter a valuation).

Integrity & authenticity

Deployment notes

Reporting

Security questions or suspected issues: contact the maintainer through your beta channel. Please include the add-in version (=aos_Version()).

← ActuarialOS for Excel · Questions: hello@actuarialos.io