Skip to content
PROTOTYPE — MOCK DATAFigures are generated fixtures derived from the registry. Not ACF actuals.
Menu (13)
?
Vu Tuan Minh (CEO)
exec · read-only
Layers
L1, L2, L3
Scope
ACF and below
Packs in scope
13 of 13
Employee record
— a role, not a person

Clears the persona and returns you to the default reader. At fullstack this is Entra ID (A-21) and the identity stops being a cookie.

DATA INTEGRITY · ELEVEN CHECKS, EVERY FINDING EVIDENCED

Does the data behave like data?

Eleven deterministic checks over two surfaces — between deliveries and period to period. Every one is arithmetic you can redo by hand, and every finding carries the numbers it was computed from.

There is no model in it, and that is not modesty: these findings name a data owner. An anomaly detector that cannot show its working is an accusation (R-G-19).

THIS IS NOT FRAUD DETECTION, AND THE DIFFERENCE MATTERS

It never looks at a customer or a transaction. Its subject is the data — batches, row counts, series, restatements — and its owners are the data owners. ACF already has the other product, and it belongs to Fraud Prevention & Investigation: AP-12 fraud and collusion detected, OP-09 double disbursement, and the merchant NST rule. Calling this module fraud detection would misrepresent it to the one department whose job that is. Q-38 asks whether ACF wants the name back.

13
FINDINGS
5
OF THEM HIGH
511
RAN, FOUND NOTHING
298
NOT ENOUGH DATA
140+8
METRICS + FEEDS
298 CHECKS COULD NOT RUN — AND THAT IS NOT THE SAME AS PASSING

The series here are monthly, 24 points. That is enough for a step change or a frozen run and nowhere near enough for a first-digit test, which wants of the order of 300+ observations across several orders of magnitude. Running it anyway would produce a number that looks rigorous and is not, so it reports not enough data — a distinct outcome from nothing found (R-G-20). It is the same discipline as the campaign sufficiency gate: a check that cannot run is not a check that passed.

THE ELEVEN CHECKS, AND WHAT EACH ONE RETURNED
CHECKCATCHESFINDINGSCLEANNO DATA
B1Row-count shift
between deliveries
Half a file, or a double load008
B2Silent restatement
between deliveries
A published value changed and nobody said so107
B3Schema drift
between deliveries
A producer changed their export and told nobody017
B4Miss run
between deliveries
The feed that died quietly170
B5Out-of-window period
between deliveries
A backfill arriving as if it were today080
S1Step change
period to period
A jump no ordinary month produces11327
S2Frozen series
period to period
Alive and not moving — the hardest failure to see31307
S3Out-of-bounds value
period to period
A unit or a denominator error7750
S4Round-number tell
period to period
Hand-keyed estimates presented as measurements013010
S5Target-hugging
period to period
The Goodhart tell028112
S6First-digit (Benford) deviation
period to period
The canonical integrity test00140

Thresholds are ours, and written down — a 6× MAD step that is also 15% of the level, 4 identical values, a 50% row shift on a batch of at least 20. Q-36 asks ACF to set the real ones.

S2Frozen seriesFINDING · HIGH
AP-08 · Score-band cut-off adherence
24 reported points, daily_t1

This series has never changed. A feed that reports the same number forever is indistinguishable from a feed that is not reporting at all, and it does not raise a freshness alert because a value does arrive.

THE ARITHMETIC
  • 24 consecutive identical values of 0
  • That is EVERY reported point — the series has never moved
  • Certification tier: managed
What would clear it
The data owner confirms the value is measured rather than defaulted, or the source is fixed.
Whose it is
IT System Planning
S2Frozen seriesFINDING · HIGH
AP-11 · KRI 376/2024 — assessment errors
24 reported points, daily_t1

This series has never changed. A feed that reports the same number forever is indistinguishable from a feed that is not reporting at all, and it does not raise a freshness alert because a value does arrive.

THE ARITHMETIC
  • 24 consecutive identical values of 0
  • That is EVERY reported point — the series has never moved
  • Certification tier: manual
What would clear it
The data owner confirms the value is measured rather than defaulted, or the source is fixed.
Whose it is
IT System Planning
S2Frozen seriesFINDING · HIGH
AP-12 · KRI 376/2024 — fraud/collusion detected
24 reported points, daily_t1

This series has never changed. A feed that reports the same number forever is indistinguishable from a feed that is not reporting at all, and it does not raise a freshness alert because a value does arrive.

THE ARITHMETIC
  • 24 consecutive identical values of 0
  • That is EVERY reported point — the series has never moved
  • Certification tier: manual
What would clear it
The data owner confirms the value is measured rather than defaulted, or the source is fixed.
Whose it is
IT System Planning
B2Silent restatementFINDING · HIGH
int-finance-stravis-csv-6d90 · Finance — STRAVIS monthly upload
dry run FN_close_2026-09.csv

This file would change values that have already been published. A restatement is legitimate; a restatement nobody announced is how two people end up quoting different numbers for the same month (R-G-09).

THE ARITHMETIC
  • FN-01 2026-08: 21.06 → 20.84 (changed — a restatement, and it will need a reason before it is stored)
  • FN-02 2026-08: 7.7 → 7.82 (changed)
  • FN-03 2026-08: 83 → 81.4 (changed)
What would clear it
The restatement is accepted with a note attached to the period, or the file is corrected.
Whose it is
Finance & Accounting
B4Miss runFINDING · HIGH
int-telesales-stringeex-7f3a · Telesales — StringeeX daily
119 windows, 82 with a row count

The clock expected something and nothing arrived, more than once in a row. Every bound metric went to not_reported for those periods — not zero, not the last value — which is the only reason this is visible at all.

THE ARITHMETIC
  • 3 consecutive missed windows, ending 2026-09-23
  • 3 missed in total across 119 windows
  • Breaker settings: 3 misses
What would clear it
The producer resumes, and the missed periods are backfilled or explicitly written off.
Whose it is
IT System Development
S1Step changeFINDING · MEDIUM
OP-10 · Unmatched payment rate
24 reported points, daily_t1

A move no other period in this series produces. It is either a real event worth knowing about, or a load that went wrong.

THE ARITHMETIC
  • Largest single-period move: 3.17 (2024-11 → 2024-12)
  • MAD of all 23 period-to-period moves: 0.410
  • That move is 7.7× the MAD, and 15% of the series level (20.8)
  • Both gates are needed: 6× MAD alone flagged 62 of 140 metrics, which is noise
What would clear it
The data owner confirms what happened in that period, and the note is attached to the series.
Whose it is
IT System Planning
S3Out-of-bounds valueFINDING · LOW
CG-08 · Operational-risk loss events
24 reported points, daily_t1

Values outside 0–100 on a percentage unit. That is perfectly legitimate for a ratio-to-plan or a variance, and impossible for a rate or a share. This check cannot tell which this is — the registered formula is a placeholder on 45 metrics — so it asks rather than asserts.

THE ARITHMETIC
  • 24 of 24 points above 100% (max 1858.6%)
  • Formula as registered: events and value per month
What would clear it
The metric owner confirms the formula and the unit. If it is a ratio-to-plan, the unit is wrong, not the data.
Whose it is
IT System Planning
S3Out-of-bounds valueFINDING · LOW
CO-01 · Resolved rate by bucket
24 reported points, daily_t1

Values outside 0–100 on a percentage unit. That is perfectly legitimate for a ratio-to-plan or a variance, and impossible for a rate or a share. This check cannot tell which this is — the registered formula is a placeholder on 45 metrics — so it asks rather than asserts.

THE ARITHMETIC
  • 14 of 24 points above 100% (max 106.6%)
  • Formula as registered: resolved POS ÷ bucket POS
What would clear it
The metric owner confirms the formula and the unit. If it is a ratio-to-plan, the unit is wrong, not the data.
Whose it is
IT System Development
S3Out-of-bounds valueFINDING · LOW
CO-12 · Waiver volume and approval level
24 reported points, daily_t1

Values outside 0–100 on a percentage unit. That is perfectly legitimate for a ratio-to-plan or a variance, and impossible for a rate or a share. This check cannot tell which this is — the registered formula is a placeholder on 45 metrics — so it asks rather than asserts.

THE ARITHMETIC
  • 4 of 24 points above 100% (max 105.3%)
  • Formula as registered: waived amount by approval level
What would clear it
The metric owner confirms the formula and the unit. If it is a ratio-to-plan, the unit is wrong, not the data.
Whose it is
IT System Planning
S3Out-of-bounds valueFINDING · LOW
FN-02 · Operating revenue vs budget
24 reported points, daily_t1

Values outside 0–100 on a percentage unit. That is perfectly legitimate for a ratio-to-plan or a variance, and impossible for a rate or a share. This check cannot tell which this is — the registered formula is a placeholder on 45 metrics — so it asks rather than asserts.

THE ARITHMETIC
  • 24 of 24 points above 100% (max 126.5%)
  • Formula as registered: actual ÷ budget
What would clear it
The metric owner confirms the formula and the unit. If it is a ratio-to-plan, the unit is wrong, not the data.
Whose it is
IT System Planning
S3Out-of-bounds valueFINDING · LOW
FN-04 · Cost-to-income ratio
24 reported points, daily_t1

Values outside 0–100 on a percentage unit. That is perfectly legitimate for a ratio-to-plan or a variance, and impossible for a rate or a share. This check cannot tell which this is — the registered formula is a placeholder on 45 metrics — so it asks rather than asserts.

THE ARITHMETIC
  • 21 of 24 points above 100% (max 128.2%)
  • Formula as registered: opex ÷ operating income
What would clear it
The metric owner confirms the formula and the unit. If it is a ratio-to-plan, the unit is wrong, not the data.
Whose it is
IT System Planning
S3Out-of-bounds valueFINDING · LOW
FN-05 · Lending balance vs plan
24 reported points, daily_t1

Values outside 0–100 on a percentage unit. That is perfectly legitimate for a ratio-to-plan or a variance, and impossible for a rate or a share. This check cannot tell which this is — the registered formula is a placeholder on 45 metrics — so it asks rather than asserts.

THE ARITHMETIC
  • 20 of 24 points above 100% (max 121.3%)
  • Formula as registered: actual ÷ plan
What would clear it
The metric owner confirms the formula and the unit. If it is a ratio-to-plan, the unit is wrong, not the data.
Whose it is
IT System Planning
S3Out-of-bounds valueFINDING · LOW
FN-09 · % of regulatory reports produced manually
24 reported points, daily_t1

Values outside 0–100 on a percentage unit. That is perfectly legitimate for a ratio-to-plan or a variance, and impossible for a rate or a share. This check cannot tell which this is — the registered formula is a placeholder on 45 metrics — so it asks rather than asserts.

THE ARITHMETIC
  • 1 of 24 points above 100% (max 104.7%)
  • Formula as registered: manual reports ÷ total
What would clear it
The metric owner confirms the formula and the unit. If it is a ratio-to-plan, the unit is wrong, not the data.
Whose it is
IT System Planning
S5Target-huggingNOT ENOUGH DATA
AP-01 · Applications received
24 reported points, daily_t1

No usable target — there is nothing to hug.

S6First-digit (Benford) deviationNOT ENOUGH DATA
AP-01 · Applications received
24 reported points, daily_t1

24 observations. A first-digit test needs of the order of 300+ spanning several orders of magnitude before a deviation means anything. Running it here would produce a number that looks rigorous and is not.

S5Target-huggingNOT ENOUGH DATA
AP-02 · Approval ratio
24 reported points, daily_t1

No usable target — there is nothing to hug.

S6First-digit (Benford) deviationNOT ENOUGH DATA
AP-02 · Approval ratio
24 reported points, daily_t1

24 observations. A first-digit test needs of the order of 300+ spanning several orders of magnitude before a deviation means anything. Running it here would produce a number that looks rigorous and is not.

S5Target-huggingNOT ENOUGH DATA
AP-03 · TAT — Installment CD
24 reported points, daily_t1

No usable target — there is nothing to hug.

S6First-digit (Benford) deviationNOT ENOUGH DATA
AP-03 · TAT — Installment CD
24 reported points, daily_t1

24 observations. A first-digit test needs of the order of 300+ spanning several orders of magnitude before a deviation means anything. Running it here would produce a number that looks rigorous and is not.

S5Target-huggingNOT ENOUGH DATA
AP-04 · TAT — ACS cross-sell
24 reported points, daily_t1

No usable target — there is nothing to hug.

S6First-digit (Benford) deviationNOT ENOUGH DATA
AP-04 · TAT — ACS cross-sell
24 reported points, daily_t1

24 observations. A first-digit test needs of the order of 300+ spanning several orders of magnitude before a deviation means anything. Running it here would produce a number that looks rigorous and is not.

S5Target-huggingNOT ENOUGH DATA
AP-05 · TAT — Cash NTB
24 reported points, daily_t1

No usable target — there is nothing to hug.

S6First-digit (Benford) deviationNOT ENOUGH DATA
AP-05 · TAT — Cash NTB
24 reported points, daily_t1

24 observations. A first-digit test needs of the order of 300+ spanning several orders of magnitude before a deviation means anything. Running it here would produce a number that looks rigorous and is not.

S5Target-huggingNOT ENOUGH DATA
AP-06 · Decline-reason mix
24 reported points, daily_t1

No usable target — there is nothing to hug.

S6First-digit (Benford) deviationNOT ENOUGH DATA
AP-06 · Decline-reason mix
24 reported points, daily_t1

24 observations. A first-digit test needs of the order of 300+ spanning several orders of magnitude before a deviation means anything. Running it here would produce a number that looks rigorous and is not.

S5Target-huggingNOT ENOUGH DATA
AP-07 · Throughput per underwriter
24 reported points, daily_t1

No usable target — there is nothing to hug.

S6First-digit (Benford) deviationNOT ENOUGH DATA
AP-07 · Throughput per underwriter
24 reported points, daily_t1

24 observations. A first-digit test needs of the order of 300+ spanning several orders of magnitude before a deviation means anything. Running it here would produce a number that looks rigorous and is not.

S4Round-number tellNOT ENOUGH DATA
AP-08 · Score-band cut-off adherence
24 reported points, daily_t1

Only 1 distinct values — with no variation there is nothing for a round-number test to be suspicious of.

S5Target-huggingNOT ENOUGH DATA
AP-08 · Score-band cut-off adherence
24 reported points, daily_t1

No usable target — there is nothing to hug.

S6First-digit (Benford) deviationNOT ENOUGH DATA
AP-08 · Score-band cut-off adherence
24 reported points, daily_t1

24 observations. A first-digit test needs of the order of 300+ spanning several orders of magnitude before a deviation means anything. Running it here would produce a number that looks rigorous and is not.

S6First-digit (Benford) deviationNOT ENOUGH DATA
AP-09 · FPD5+ on approved vintage
24 reported points, daily_t1

24 observations. A first-digit test needs of the order of 300+ spanning several orders of magnitude before a deviation means anything. Running it here would produce a number that looks rigorous and is not.

S6First-digit (Benford) deviationNOT ENOUGH DATA
AP-10 · QA sample pass rate
24 reported points, daily_t1

24 observations. A first-digit test needs of the order of 300+ spanning several orders of magnitude before a deviation means anything. Running it here would produce a number that looks rigorous and is not.

S4Round-number tellNOT ENOUGH DATA
AP-11 · KRI 376/2024 — assessment errors
24 reported points, daily_t1

Only 1 distinct values — with no variation there is nothing for a round-number test to be suspicious of.

S5Target-huggingNOT ENOUGH DATA
AP-11 · KRI 376/2024 — assessment errors
24 reported points, daily_t1

No usable target — there is nothing to hug.

S6First-digit (Benford) deviationNOT ENOUGH DATA
AP-11 · KRI 376/2024 — assessment errors
24 reported points, daily_t1

24 observations. A first-digit test needs of the order of 300+ spanning several orders of magnitude before a deviation means anything. Running it here would produce a number that looks rigorous and is not.

S4Round-number tellNOT ENOUGH DATA
AP-12 · KRI 376/2024 — fraud/collusion detected
24 reported points, daily_t1

Only 1 distinct values — with no variation there is nothing for a round-number test to be suspicious of.

S5Target-huggingNOT ENOUGH DATA
AP-12 · KRI 376/2024 — fraud/collusion detected
24 reported points, daily_t1

No usable target — there is nothing to hug.

S6First-digit (Benford) deviationNOT ENOUGH DATA
AP-12 · KRI 376/2024 — fraud/collusion detected
24 reported points, daily_t1

24 observations. A first-digit test needs of the order of 300+ spanning several orders of magnitude before a deviation means anything. Running it here would produce a number that looks rigorous and is not.

S5Target-huggingNOT ENOUGH DATA
BM-01 · Partner contract cycle time
24 reported points, daily_t1

No usable target — there is nothing to hug.

S6First-digit (Benford) deviationNOT ENOUGH DATA
BM-01 · Partner contract cycle time
24 reported points, daily_t1

24 observations. A first-digit test needs of the order of 300+ spanning several orders of magnitude before a deviation means anything. Running it here would produce a number that looks rigorous and is not.

S5Target-huggingNOT ENOUGH DATA
BM-02 · POS onboarding TAT
24 reported points, daily_t1

No usable target — there is nothing to hug.

S6First-digit (Benford) deviationNOT ENOUGH DATA
BM-02 · POS onboarding TAT
24 reported points, daily_t1

24 observations. A first-digit test needs of the order of 300+ spanning several orders of magnitude before a deviation means anything. Running it here would produce a number that looks rigorous and is not.

S5Target-huggingNOT ENOUGH DATA
BM-03 · Partner concentration
24 reported points, daily_t1

No usable target — there is nothing to hug.

S6First-digit (Benford) deviationNOT ENOUGH DATA
BM-03 · Partner concentration
24 reported points, daily_t1

24 observations. A first-digit test needs of the order of 300+ spanning several orders of magnitude before a deviation means anything. Running it here would produce a number that looks rigorous and is not.

S5Target-huggingNOT ENOUGH DATA
BM-04 · Subsidy cost on 0% schemes
24 reported points, daily_t1

No usable target — there is nothing to hug.

S6First-digit (Benford) deviationNOT ENOUGH DATA
BM-04 · Subsidy cost on 0% schemes
24 reported points, daily_t1

24 observations. A first-digit test needs of the order of 300+ spanning several orders of magnitude before a deviation means anything. Running it here would produce a number that looks rigorous and is not.

S5Target-huggingNOT ENOUGH DATA
BM-05 · Subsidy-to-rate conversion governance
23 reported points, daily_t1

No usable target — there is nothing to hug.

S6First-digit (Benford) deviationNOT ENOUGH DATA
BM-05 · Subsidy-to-rate conversion governance
23 reported points, daily_t1

23 observations. A first-digit test needs of the order of 300+ spanning several orders of magnitude before a deviation means anything. Running it here would produce a number that looks rigorous and is not.

S5Target-huggingNOT ENOUGH DATA
BM-06 · Active partner count by tier
24 reported points, daily_t1

No usable target — there is nothing to hug.

S6First-digit (Benford) deviationNOT ENOUGH DATA
BM-06 · Active partner count by tier
24 reported points, daily_t1

24 observations. A first-digit test needs of the order of 300+ spanning several orders of magnitude before a deviation means anything. Running it here would produce a number that looks rigorous and is not.

S5Target-huggingNOT ENOUGH DATA
BM-07 · Scheme coverage per POS
24 reported points, daily_t1

No usable target — there is nothing to hug.

S6First-digit (Benford) deviationNOT ENOUGH DATA
BM-07 · Scheme coverage per POS
24 reported points, daily_t1

24 observations. A first-digit test needs of the order of 300+ spanning several orders of magnitude before a deviation means anything. Running it here would produce a number that looks rigorous and is not.

S5Target-huggingNOT ENOUGH DATA
BM-08 · Dealer exclusion / blacklist hits
24 reported points, daily_t1

No usable target — there is nothing to hug.

S6First-digit (Benford) deviationNOT ENOUGH DATA
BM-08 · Dealer exclusion / blacklist hits
24 reported points, daily_t1

24 observations. A first-digit test needs of the order of 300+ spanning several orders of magnitude before a deviation means anything. Running it here would produce a number that looks rigorous and is not.

S6First-digit (Benford) deviationNOT ENOUGH DATA
CG-01 · Direct Disbursement Ratio (DDR)
24 reported points, daily_t1

24 observations. A first-digit test needs of the order of 300+ spanning several orders of magnitude before a deviation means anything. Running it here would produce a number that looks rigorous and is not.

S6First-digit (Benford) deviationNOT ENOUGH DATA
CG-01B · Direct Disbursement Ratio (flow basis)
24 reported points, daily_t1

24 observations. A first-digit test needs of the order of 300+ spanning several orders of magnitude before a deviation means anything. Running it here would produce a number that looks rigorous and is not.

S5Target-huggingNOT ENOUGH DATA
CG-02 · NPL — Circular 31 basis
24 reported points, daily_t1

No usable target — there is nothing to hug.

S6First-digit (Benford) deviationNOT ENOUGH DATA
CG-02 · NPL — Circular 31 basis
24 reported points, daily_t1

24 observations. A first-digit test needs of the order of 300+ spanning several orders of magnitude before a deviation means anything. Running it here would produce a number that looks rigorous and is not.

S6First-digit (Benford) deviationNOT ENOUGH DATA
CG-03 · Provision coverage
24 reported points, daily_t1

24 observations. A first-digit test needs of the order of 300+ spanning several orders of magnitude before a deviation means anything. Running it here would produce a number that looks rigorous and is not.

S5Target-huggingNOT ENOUGH DATA
CG-04 · CAR
24 reported points, daily_t1

No usable target — there is nothing to hug.

Showing 60 of 822. Per-metric detail is on each metric’s integrity page.