Release note · August 2, 2026

A spreadsheet can change where its data comes from without changing a cell

By SybilGambleyyu · FormulaFence 0.221.0 and WCAB 0.37.0

A workbook can keep its saved imported cell values, ordinary formulas, and dashboard output exactly the same while a stored connection points somewhere new. That is not a theoretical corner: Excel keeps external-data connection material outside worksheet cells, so a cell-by-cell diff can leave the most consequential change invisible.

Microsoft's external-connection format documentation describes connection material such as providers, servers, authentication, commands, and refresh settings. For a web query, the Open XML WebQueryProperties reference identifies the stored URL and request controls. A review system needs to make a source retarget visible—but it should not turn its report into a copy of a sensitive endpoint or connection string.

Say what changed, without copying the source

FormulaFence 0.221.0 keeps its existing private, comprehensive source-configuration comparison and adds a small safe label when a stable, uniquely identified connection changes. A URL-only retarget emits high-severity FF023 evidence with:

source_configuration_material_changed: true
source_material_change_categories: ["web_query_url"]

The report does not include either URL, a connection string, command, parameter, SSO identifier, or fingerprint. Other labels distinguish web-query request/configuration material, database connection/command/configuration material, OLAP and text-import configuration, source or connection files, parameter bindings, and SSO material. They are intentionally conservative: if connection IDs are added, removed, duplicated, or renumbered, FormulaFence keeps the broad source-configuration signal and withholds a category rather than guessing.

This is an observational boundary, not a refresh engine. FormulaFence does not open a connection, fetch a URL, authenticate, trust a source, refresh data, evaluate a formula, or claim that a client returns a value.

A fixture that proves the boundary

Workbook Change Assurance Benchmark (WCAB) 0.37.0 adds a deterministic relationship-backed pair for exactly this change. The sole raw difference is xl/connections.xml webPr/@url, moving between two reserved example.invalid endpoints. The pair preserves the connection ID, type, name, refresh controls, workbook relationship, content type, saved ImportedData!B2=100 value, and direct ImportedData!B2 → Summary!B2 → Dashboard!B4 formula path.

WCAB's raw validator establishes the local package graph, checks that xl/connections.xml is the only changed member, and compares that part after removing only the selected URL. It does not contact either endpoint. The benchmark therefore tests a narrow, useful claim: a reviewer can see a stored source retarget and its local workbook context without pretending to know whether the source is reachable, trusted, refreshed, or numerically current.

Two layers of evidence

The optional WCAB adapter accepts the new fact only when FormulaFence emits the exact high-severity external_data_connections_changed record and FF023, with identical safe web-query profiles and exactly the web_query_url category. WCAB independently checks the endpoint text and package boundary that FormulaFence deliberately withholds. Neither layer substitutes a client interaction for stored evidence.

That split is useful beyond this single fixture. A production review artifact can be safe to share widely, while a deliberately local validator can still establish a narrow package-level claim. It is a better division of responsibility than either silently ignoring the source change or exporting the source itself into a CI log.

Evidence before the claim

FormulaFence 0.221.0 passed 1,591 tests, hosted CI, package metadata checks, and fresh wheel/source-distribution installs that verified the source category and absence of both synthetic endpoints. WCAB 0.37.0 contains 54 cases and 56 observable facts; its 254 tests, fixture validation, fresh installs, byte-for-byte manifest reproduction, and Python 3.10/3.13 hosted CI all passed. The WCAB dataset mirror is available on Hugging Face.

Use the releases

python -m pip install https://github.com/SybilGambleyyu/formulafence/releases/download/v0.221.0/formulafence-0.221.0-py3-none-any.whl
formulafence diff approved.xlsx candidate.xlsx

git clone https://github.com/SybilGambleyyu/workbook-change-benchmark.git
cd workbook-change-benchmark
python -m venv .venv
.venv/bin/python -m pip install -e '.[dev]'
wcab validate --fixtures fixtures
wcab formulafence --fixtures fixtures --strict

Both projects are MIT-licensed. Read the FormulaFence release, the WCAB release, or the full benchmark note for the underlying contracts and validation records.