FAILURE MAP
← Case archive

FA-12086 / Sensor fusion consistency / Open access

Calibration scales measurements but leaves their variances in raw units · case 01

Fusion weights change when an equivalent sensor representation changes units.

Verified by executionVariant 1 · 6 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

Affine calibration transforms the mean but not covariance.

VERIFIED REPAIR

Apply the squared calibration gain to raw variance; deterministic offset has no variance.

Unsuccessful approach: Multiplying variance by absolute gain only accounts for standard-deviation scaling.

Case contract

For affine sensor calibration y=g*x+b with deterministic integer gain and offset, return calibrated mean and variance [g*x+b, g*g*r]. Raw variance r nonnegative.

Why this case matters

Deterministic sensor-fusion model isolating one consistency contract; no hardware or production estimator is simulated.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
N = 1
observations = []
def solve(x, r, gain, offset):
    return [gain*x+offset,r]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('gain greater than one', solve(N,N,2,3), [2*N+3,4*N])
check('negative gain', solve(N,N,-3,1), [1-3*N,9*N])
check('offset is deterministic', solve(N,N,1,100*N), [101*N,N])
check('zero gain', solve(N,N,0,7), [7,0])
check('noise free source', solve(N,0,3,N), [4*N,0])
check('negative raw reading', solve(-N,N,2,-N), [-3*N,4*N])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
gain greater than one[5, 1][5, 4]Failed
negative gain[-2, 1][-2, 9]Failed
offset is deterministic[101, 1][101, 1]Passed
zero gain[7, 1][7, 0]Failed
noise free source[4, 0][4, 0]Passed
negative raw reading[-3, 1][-3, 4]Failed

SHA-256 / c88f8d870695ea99ab4fa433c84a6833141680af7cf646d55145f30b764d2953

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
N = 1
observations = []
def solve(x, r, gain, offset):
    return [gain*x+offset,abs(gain)*r]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('gain greater than one', solve(N,N,2,3), [2*N+3,4*N])
check('negative gain', solve(N,N,-3,1), [1-3*N,9*N])
check('offset is deterministic', solve(N,N,1,100*N), [101*N,N])
check('zero gain', solve(N,N,0,7), [7,0])
check('noise free source', solve(N,0,3,N), [4*N,0])
check('negative raw reading', solve(-N,N,2,-N), [-3*N,4*N])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
gain greater than one[5, 2][5, 4]Failed
negative gain[-2, 3][-2, 9]Failed
offset is deterministic[101, 1][101, 1]Passed
zero gain[7, 0][7, 0]Passed
noise free source[4, 0][4, 0]Passed
negative raw reading[-3, 2][-3, 4]Failed

SHA-256 / e435f712e99f644bfa3336feb82beb53d73b41b0a942160a967ef54ad5b13f51

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
N = 1
observations = []
def solve(x, r, gain, offset):
    return [gain*x+offset,gain*gain*r]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('gain greater than one', solve(N,N,2,3), [2*N+3,4*N])
check('negative gain', solve(N,N,-3,1), [1-3*N,9*N])
check('offset is deterministic', solve(N,N,1,100*N), [101*N,N])
check('zero gain', solve(N,N,0,7), [7,0])
check('noise free source', solve(N,0,3,N), [4*N,0])
check('negative raw reading', solve(-N,N,2,-N), [-3*N,4*N])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
gain greater than one[5, 4][5, 4]Passed
negative gain[-2, 9][-2, 9]Passed
offset is deterministic[101, 1][101, 1]Passed
zero gain[7, 0][7, 0]Passed
noise free source[4, 0][4, 0]Passed
negative raw reading[-3, 4][-3, 4]Passed

SHA-256 / b0556872eeac83b58bce18bb40084bfa4e253a999bdff15fc5063945c031dcf5

Verification & scope

Exact small scalar or two-axis models; no nonlinear dynamics, numerical conditioning, or real sensor noise simulation. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.

Observations recorded using Python 3.12.14 at 2026-09-29T14:38:53.676775+00:00.

Case digest / 5eb68fc5e652b38eeaf6415ecfc2dd15ddb6e9818578b4af46f66e8a9fb8ed47