SheetShift equivalence certificate GREEN
Example Mutual Insurance Co. (FICTIONAL) HO-3 workbook vs the translated service service.sheetshift_ho3.rater. Run 75d5cd8a0168, seed 2026, generated 2026-09-26T15:59:37+00:00. All data synthetic; anomalies seeded.
Policies10,000
Cells compared430,000
Cells equal409,539
Decided cells20,461
Unexplained cells0
Traceability48/48 rules
Mutants killed51/60
Patched unexplained0
Mismatch groups (original oracle)
| Group | Class | Root | Rows | Cells | Lint | Signature |
|---|---|---|---|---|---|---|
| G01 | decided | Calc!O | 1874 | 20449 | A1 | delta -0.08 x1874 | p.deductible in [10000..50000] (precision 1.00: 1874 of 1874 such rows) |
| G02 | decided | Calc!X | 1 | 10 | A3 | delta -0.08 x1 | single row 31 (HO-000030); p.effective_date in [2027-06-01..2027-06-01] (precision 0.04: 1 of 28 such rows) |
| G03 | decided | Calc!AM | 1 | 2 | A2 | delta -21.65 x1 | single row 17 (HO-000016); c.premium_rounded in [1301..1301] (precision 0.20: 1 of 5 such rows) |
Decisions
| Id | Lint | Status | Option | Rule | By |
|---|---|---|---|---|---|
| D-001 | A1 | DECIDED | adopt-manual | R-205 | m1 |
| D-002 | A2 | DECIDED | adopt-manual | R-510 | m1 |
| D-003 | A3 | DECIDED | adopt-manual | R-310 | m1 |
Naive translation baseline
| Operator | Rows affected | p_detect_20 |
|---|---|---|
| bisect_left_band | 7244 | 1.0 |
| case_sensitive_text | 3525 | 0.9998 |
| min_blank_as_zero | 1110 | 0.9049 |
| naive_round | 2552 | 0.9972 |
| any_rows | 8819 | 1.0 |
Mutation self-test
51 of 60 mutants killed (4 by crash); caught using boundary rows 45, random rows 46; only by boundary rows: M19.
| Survivor | Operator | File:line | Change | Label |
|---|---|---|---|---|
| M15 | text_case | tables.py:103 | .upper() removed | equivalent mutant |
| M16 | blank | xlsem.py:161 | None -> 0 in comparison | equivalent mutant |
| M17 | comparison | xlsem.py:211 | > -> >= | equivalent mutant |
| M18 | constant | tables.py:90 | 0 -> 1 | equivalent mutant |
| M30 | blank | xlsem.py:237 | None -> 0 in comparison | equivalent mutant |
| M32 | constant | xlsem.py:128 | 0 -> -1 | gap |
| M33 | text_case | tables.py:91 | .upper() removed | equivalent mutant |
| M52 | blank | rater.py:106 | None -> 0 in comparison | equivalent mutant |
| M59 | constant | units/u3_hurricane.py:60 | 0 -> -1 | equivalent mutant |
Oracle and hashes
| Item | Value |
|---|---|
| Oracle | LibreOffice 24.2.7.2, recorded, golden seed 2026 |
| Recalculation | forced full recalculation on load (OOXMLRecalcMode=0, ODFRecalcMode=0) |
| Excel cross-check | not run (Excel parity UNVERIFIED) |
| git commit | d1510e87e9f7e2cf19cf2280962daa37bc5ec750 |
| workbook | 7fb6363ba5136e18596506d29a95026548af9d883942edeae54f33214b1e83c4 |
| rate_tables_build | 56b6ed5d3e7c06fddc79a31e3909fa6dbe37c2a7abc82aca33fec2d04c3ee250 |
| rate_tables_service | 56b6ed5d3e7c06fddc79a31e3909fa6dbe37c2a7abc82aca33fec2d04c3ee250 |
| service_tree | 46a9cb449bc30ea28bf5482b7dcbc9d12b4d10599fd50efa4e206a5fcee7921b |
| harness_tree | 728a78550c2a64b6a55c86e7b6e3a6766407d0f31bf4d33ffb45bc4ceeef2f05 |
| harness_tree_expected | 728a78550c2a64b6a55c86e7b6e3a6766407d0f31bf4d33ffb45bc4ceeef2f05 |
| golden_inputs | 8334d8a2c55902797826c0b77171a7b002dc925db8087039e8ec33a7298b1e94 |
| oracle_original_csv_gz | 6e8e2764d0908ce9dbf01a5bb138d4f987fed31dc88a513528382e78640ad5f7 |
| oracle_patched_csv_gz | af5c1c997e22bc81678ff326381864f1f11c010d12deeb0812ecfdf1a0566c7f |
| decisions_jsonl | 0809cd7290b97f80ddad02ef3de2462a24dd2eb59cf1d98acf076665848d3fe0 |
Limits
- Macros and VBA are not supported; .xlsm files are never opened.
- Volatile functions (NOW, TODAY, RAND, OFFSET, INDIRECT) are listed as unsupported.
- External links, array and dynamic-array formulas, data tables and iterative calculation are out of scope.
- The oracle is LibreOffice 24.2 with forced recalculation; Excel parity is UNVERIFIED unless the Excel cross-check runs.
- Inputs are sampled, so equivalence is evidence, not proof.
- The workbook's anomalies were seeded deliberately for the demonstration.
Written by harness/certify.py (Claude Code harness). Numbers are copied from reports/certificate.json.