What the review looks at, and what it hands back.
DoubleCheck replays each account's own history in order and asks five questions of it. An account that answers all five the way a real economic life answers them passes. This page is the whole method.
A synthetic identity has to fake all five. It cannot.
Each family reads one part of an account's history. Any one of them can fire on a real customer for an innocent reason, which is why a single fire produces review rather than fail.
-
Provenance, where the money first came from.
A real relationship usually opens with income that behaves like payroll: the same counterparty, on a regular cadence, in amounts that move within a band. A fabricated one opens with funding from very few sources, no payroll pattern, and credit sought within days rather than after a history exists.
Provenance looks only at the opening window, so it sees the account before there is anything to hide behind.
-
Coherence, whether the spending has a life behind it.
Real spending is messy. It has recurring merchants, category variety, odd amounts, and gaps where someone was on holiday or between jobs. Cultivated spending is thin and optimized: few categories, almost no recurring merchants, and a share of round-dollar amounts that a real household does not produce.
The signal is the absence of texture, not the presence of anything suspicious.
-
Ramp, whether appetite is outrunning income.
Credit exposure and genuine inflows normally move together. Ramp fires when exposure sought climbs far faster than non-circular inflows, which is the shape of an account being prepared for a draw rather than one being used.
Inflows that circulate between accounts under common control are excluded from the denominator, because otherwise a ring can inflate its own apparent income.
-
Inflection, the break from the account's own pattern.
Inflection is measured against the account's own history, not against a portfolio average. It fires when utilization and cash-equivalent usage jump away from the pattern that account established over months or years.
This is the last signal to fire and the closest to the loss. A review that finds only Inflection has found the bust-out, not the cultivation, and the memo says so.
-
Ring, whether the account is working alone.
Synthetics are rarely built one at a time. Ring looks for clusters of accounts sharing funding or payee counterparties alongside clustered openings, where more than one account in the cluster is already firing other signals.
This is the family that requires the whole portfolio. Counterparties are hashed with your salt, so the engine can see that two accounts pay the same party without seeing who that party is.
A disposition, the reasons for it, and nothing else.
Every account returns pass, review, or fail. A disposition is produced by how many families fired, and each one is accompanied by the reason codes that produced it, written in the same plain language they appear in here.
There is no numeric score, no percentile, no rating, and no dollar figure anywhere in the memo. The output is structured to avoid consumer-report score formats under FCRA. DoubleCheck is not a consumer report and Delegate is not a consumer reporting agency.
What this costs you. There is nothing to sort by. A reviewer reads reason codes and decides. On a portfolio where the review returns a few dozen accounts to look at, that is a manageable afternoon; it is not a queue that triages itself.
36 months in, a readout within 30 days.
You provide 36 months of de-identified core history for the loan portfolio and your known charge-off file. The engine replays each account's history in point-in-time mode: at every step it sees only what was knowable on that date, so a signal's fire date is a date you could have acted on.
The charge-off file is held back from the replay and used afterward, to measure what the signals caught and what they missed. That measurement goes in the memo whichever way it comes out.
The review is free. The findings are yours regardless of the outcome, including the outcome where DoubleCheck finds little.
One executable. A folder in, a report out.
DoubleCheck ships as a single code-signed Windows executable. You place the extract folder beside it and run it. It writes the findings memo, a findings CSV, the backtest results, and a run log to a local path you choose.
It makes zero network calls. No license check, no telemetry, no update check, no endpoint to allowlist. There is nothing to install and no account to create. Block it at the firewall and run it anyway if you want to satisfy yourself of that: the memo comes out the same.
System requirements
- Operating system
- 64-bit Windows 10 or 11, or Windows Server 2019 or later. That is what the build targets; it has not been tested on every version.
- Memory
- 8 GB is comfortable. Peak memory measured at about 230 MB on a 2,000-account book.
- Disk
- Room for the extract plus the outputs. The extract is the large part, and it is your file.
- Run time
- About a minute for 2,000 accounts. Roughly 15 to 30 milliseconds per account, and the per-account cost rises as the book grows.
- Privileges
- None special. It reads a folder and writes a folder.
Run time and memory were measured on the simulator, on a developer laptop, at 260, 600 and 2,000 accounts. They are not measurements of your book on your hardware. Because the per-account cost rises with book size, a materially larger portfolio needs measuring rather than extrapolating from these figures, and we will publish what the first pilots actually show.
Model documentation is available on request: what each signal reads, every threshold and where its value came from, the population the thresholds were judged against, and the shapes the method is not expected to reach.
It reads files, not core systems.
DoubleCheck consumes five delimited files with a fixed column list. It does not connect to anything. Institutions running Jack Henry Symitar, Corelation KeyStone, Fiserv DNA, COCC, or FIS produce those files from standard exports. Delegate provides the file specification; your team maps the export columns to it once.
Delegate has no relationship with any core provider and does not need one. Nothing here is a partnership or an integration.
What this costs you. The column mapping is real work the first time, and it lands on whoever knows your core's export layout. The extraction script carries a self-test so they can validate the mapping on a handful of rows before committing to a full pull.
An estimate, not a measurement. We expect the export to take somewhere in the region of four to eight hours of one person's time who already knows your core: most of it mapping columns once, then a self-test run on a sample, then the full pull. We have not yet done this with an institution, so treat that range as our honest guess and not a commitment. We will replace it with the real figure once the first pilots have run, including if the real figure is worse.
Run it against your own book.
The ask is a 15 minute call: what your portfolio looks like, which core you run, and whether a review would tell you anything you do not already know.