# Ad ID spreadsheet integrity study — research kit v1

Variafy team · recorded 11 November 2026
Canonical article: https://www.variafy.com/guides/meta-ad-id-spreadsheet-precision

## What this kit contains

All 36 identifiers and record keys are fictional. The fixed corpus deliberately probes precision and formatting mechanisms. It is not a sample of issued Meta ad IDs, customer records or real-world corruption rates. There are 32 distinct positive decimal ID strings and four leading-zero diagnostic controls, with separate denominators.

- `corpus.json`: unchanged source lexemes, cohort labels and control types.
- `source.csv`, `source-quoted.csv`, `source-semicolon.csv`, `source-tab.txt`: equivalent source tokens in named delimiter/quoting forms.
- `excel-*-export.csv`: three actual native Excel for Mac exports. UTF-8 BOM, semicolon delimiter; these captured bytes were not rewritten by a CSV library.
- `sheets-*-export.csv`: actual native Google Drive CSV exports of the selected first sheet, comma delimiter with locale-dependent cell text.
- `sheets-*-cells.json`: sanitized typed readbacks of entered, effective and formatted cell values and number formats. Document/account identifiers are excluded.
- `protocol.json`: environment, settings, operations, repeat checks and completed-run limits.
- `javascript-number-results.json`, `probe.mjs`: runtime conversion evidence and executable probe.
- `results.json`, `verify.py`: row-level analysis and independent standard-library verifier.
- `ad-id.schema.json`: a digit-string payload contract. This validates shape; comparison to an unchanged source establishes integrity.
- `sources.json`: primary vendor/API references.
- Four SVG figures, two chart PNGs and `render-figures.py`: figures derived from the recorded results.
- `excel-conversion-settings.png`: the captured Excel conversion settings, not the Convert/Don't Convert prompt.
- `checksums.json`: SHA-256 of every top-level kit file except itself and the ZIP.

## Verify

Extract into a new directory. Python 3 standard library is enough:

    python3 verify.py

The verifier aligns every captured CSV by independent `record_id`, requires all 36 unique records, compares original and exported ID strings, recomputes collisions and derived joins, and checks the published result and checksum manifests. Opening and resaving a CSV before verification can change its bytes and invalidate the checksums.

    node probe.mjs > local-javascript-results.json

The probe reports your Node version. Compare row fields with the recorded output; the runtime version field may differ. Decimal lexical equality, exact binary64 integer equality and shortest string serialization are separate observations.

To rebuild figures in a separate working copy, install matplotlib, then run `python3 render-figures.py`. Figures may have different metadata bytes after regeneration; verify the original evidence before rebuilding them.

## Reading the metrics

Exact strings: unchanged exported characters. Same numeric value: Decimal equality after interpreting a decimal comma/exponent where applicable. Numeric equality cannot preserve leading-zero identity. A displayed exponent alone does not prove that the stored value has changed.

The Sheets exact and exponent-expansion joins use 32 unique source decimal IDs as fictional owners. A correct join points to its own source; a wrong join points to a different source; an unmatched row has no owner in the source set. Exponent expansion is a derived calculation using captured CSV text, not a new live spreadsheet run.

Excel both-sides membership applies the captured changed keys to both sides of a join. Membership can be 32/32 while distinct source keys collapse. It does not establish unambiguous ownership.

## Scope

Excel: Mac 16.93 build 16.93.25011212, named native tab-delimited General imports and native CSV UTF-8 exports. Original General column width was not measured numerically. No completed Text-column import, AutoFit comparison, Windows or Web run.

Sheets: connected CSV import, native Drive export, typed updateCells/repeatCell and pasteData operations with ru_RU locale. Connector import is not claimed equivalent to browser File > Import. No direct values.update RAW/USER_ENTERED endpoint experiment. Cloud build unavailable.

CRM: HubSpot property documentation only. No live HubSpot portal, contact, payment or production account experiment. The property JSON example is an integration design, not a captured request result.

## Reuse and citation

You may copy, adapt and redistribute Variafy's original fictional fixtures, analysis, scripts and figures, including commercially, with attribution to Variafy and a link to the canonical study. Identify modifications and keep fictional-data labels. This permission does not transfer rights in third-party product interfaces, documentation, names or trademarks; the Excel settings screenshot is evidence of the test environment and is excluded from this reuse permission. Nothing here endorses a vendor or guarantees the same behaviour in another environment.

Suggested citation: Variafy team (2026). What happens to Meta ad IDs in Excel and Google Sheets? A 36-ID round-trip study. Research kit v1, 11 November 2026. https://www.variafy.com/guides/meta-ad-id-spreadsheet-precision
