Skip to content

Compatibility Model

Formulon treats compatibility as a measured property. It does not claim generic Excel behavior; it targets named profiles backed by generated oracle data. That gives the project two concrete things to do — capture oracle data per profile, and surface accepted divergences explicitly.

Glossary: measured compatibility

A compatibility claim that points at a profile and a body of oracle data that proves it. "Compatible with win-365-ja_JP" means we ran this on Excel and captured the values. "Excel-compatible" without a profile is intentionally not used.

Profiles

The main profile today is win-365-ja_JP. The repository also tracks Mac Excel 365 ja-JP data where that data is available. English-locale profiles remain hidden until they have their own locale-specific oracle coverage.

See Locale profiles for the public list and pinning behavior.

Divergences

Some differences are inevitable:

  • floating-point drift between platforms,
  • volatile snapshot mismatches,
  • undocumented Excel behavior whose contract is not stable across builds,
  • deliberate fixes for cases where reproducing Excel would make the engine less predictable (silent overflow, silent type coercion in specific corner cases).

Each accepted divergence carries a reason and a last-verified Excel build so future maintainers know whether the divergence is still intentional or whether Excel has since fixed the underlying behavior.

Practical rule

DoingShould
Applications using FormulonPersist the profile used for calculation
TestsState the profile they expect and pin to a Formulon version
DocumentationAvoid unqualified claims like "Excel-compatible" when a feature is only verified for one profile
Issue reportsInclude the profile, the Formulon version, the Excel build of the oracle, and a minimal reproducing workbook