FAILURE MAP
← Case archive

FA-13721 / Numerical aggregation / Open access

Tie adjusted concordance squared: Squaring the numerator loses negative association direction. · case 01

The reduction disagrees with its explicit aggregation oracle.

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

ROOT CAUSE

Squaring the numerator loses negative association direction.

VERIFIED REPAIR

Preserve the tie adjusted concordance squared contract at the identified reduction decision.

Unsuccessful approach: Always negative also loses the observed direction.

Case contract

For paired ordinal observations return sign(tau_b)*tau_b**2 as an exact Fraction string. Every unordered observation pair contributes its coordinate comparison; normalize signed concordance squared by products of non-tied x/y pair counts. Undefined if either coordinate has no varying pairs.

Why this case matters

Exact bounded examples isolate a reduction defect without floating-point or external-service effects.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
from collections import Counter, defaultdict
import math
import itertools
N = 1
observations = []
def solve(points):
    concordant=discordant=tx=ty=0
    for i in range(len(points)):
        for j in range(i+1,len(points)):
            dx=points[i][0]-points[j][0]
            dy=points[i][1]-points[j][1]
            if dx: tx+=1
            if dy: ty+=1
            concordant+=int(dx*dy>0)
            discordant+=int(dx*dy<0)
    if not tx or not ty: return None
    d=concordant-discordant
    return str(Fraction(d*d,tx*ty))
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('regression 1', solve(*([(1, 1), (2, 2), (3, 3)],)), '1')
check('regression 2', solve(*([(1, 3), (2, 2), (3, 1)],)), '-1')
check('regression 3', solve(*([(1, 1), (1, 2), (2, 2), (3, 1)],)), '-1/20')
check('regression 4', solve(*([],)), None)
check('regression 5', solve(*([(1, 1), (1, 2)],)), None)
check('regression 6', solve(*([(1, 1), (2, 2), (2, 2), (4, 3)],)), '1')
check('regression 7', solve(*([(1, 2), (3, 1), (4, 4), (2, 5)],)), '0')
check("variable discordance direction",solve([(0,N),(N,0)]),"-1")
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
regression 111Passed
regression 21-1Failed
regression 31/20-1/20Failed
regression 4NoneNonePassed
regression 5NoneNonePassed
regression 611Passed
regression 700Passed
variable discordance direction1-1Failed

SHA-256 / 9c00be52cb6952a16db3c709a95f6a11593f8eeb5c504571763abb47f1815abb

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
from collections import Counter, defaultdict
import math
import itertools
N = 1
observations = []
def solve(points):
    concordant=discordant=tx=ty=0
    for i in range(len(points)):
        for j in range(i+1,len(points)):
            dx=points[i][0]-points[j][0]
            dy=points[i][1]-points[j][1]
            if dx: tx+=1
            if dy: ty+=1
            concordant+=int(dx*dy>0)
            discordant+=int(dx*dy<0)
    if not tx or not ty: return None
    d=concordant-discordant
    return str(Fraction(-d*d,tx*ty))
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('regression 1', solve(*([(1, 1), (2, 2), (3, 3)],)), '1')
check('regression 2', solve(*([(1, 3), (2, 2), (3, 1)],)), '-1')
check('regression 3', solve(*([(1, 1), (1, 2), (2, 2), (3, 1)],)), '-1/20')
check('regression 4', solve(*([],)), None)
check('regression 5', solve(*([(1, 1), (1, 2)],)), None)
check('regression 6', solve(*([(1, 1), (2, 2), (2, 2), (4, 3)],)), '1')
check('regression 7', solve(*([(1, 2), (3, 1), (4, 4), (2, 5)],)), '0')
check("variable discordance direction",solve([(0,N),(N,0)]),"-1")
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
regression 1-11Failed
regression 2-1-1Passed
regression 3-1/20-1/20Passed
regression 4NoneNonePassed
regression 5NoneNonePassed
regression 6-11Failed
regression 700Passed
variable discordance direction-1-1Passed

SHA-256 / f5b18b4c5d1952075c68d0e6c350b40a6b6cbb3bd120d49b1c5135768ae2bf52

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
from collections import Counter, defaultdict
import math
import itertools
N = 1
observations = []
def solve(points):
    concordant=discordant=tx=ty=0
    for i in range(len(points)):
        for j in range(i+1,len(points)):
            dx=points[i][0]-points[j][0]
            dy=points[i][1]-points[j][1]
            if dx: tx+=1
            if dy: ty+=1
            concordant+=int(dx*dy>0)
            discordant+=int(dx*dy<0)
    if not tx or not ty: return None
    d=concordant-discordant
    return str(Fraction((1 if d>=0 else -1)*d*d,tx*ty))
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('regression 1', solve(*([(1, 1), (2, 2), (3, 3)],)), '1')
check('regression 2', solve(*([(1, 3), (2, 2), (3, 1)],)), '-1')
check('regression 3', solve(*([(1, 1), (1, 2), (2, 2), (3, 1)],)), '-1/20')
check('regression 4', solve(*([],)), None)
check('regression 5', solve(*([(1, 1), (1, 2)],)), None)
check('regression 6', solve(*([(1, 1), (2, 2), (2, 2), (4, 3)],)), '1')
check('regression 7', solve(*([(1, 2), (3, 1), (4, 4), (2, 5)],)), '0')
check("variable discordance direction",solve([(0,N),(N,0)]),"-1")
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
regression 111Passed
regression 2-1-1Passed
regression 3-1/20-1/20Passed
regression 4NoneNonePassed
regression 5NoneNonePassed
regression 611Passed
regression 700Passed
variable discordance direction-1-1Passed

SHA-256 / 4af632310cc2bf180cf06298cff0fd8a24e43365131b2d9f51d804bc0b9d6e7b

Verification & scope

Small offline integer/rational inputs only; no performance, statistical inference, or production-library conformance claim. 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:39:09.948637+00:00.

Case digest / e130f0d3d9a470ce7509b141186ee4fc39b1896983fa02663c13e252348413c1