Send the fills from a single strategy. We check them against what the market genuinely did at each of those instants and walk you through what we found — at no cost, on the understanding that you tell us whether it was useful.
| What you get | What it means |
|---|---|
| Per-fill verdicts, with the reason | For every fill you send: whether it would have happened, how much of it, what it really cost, and which check bound. A row we cannot check comes back unknown and is excluded from the totals, never counted as fine. |
| Book condition at the moment of the fill | How far each book was from its own normal depth, in either direction, banded. A flag on the fill, never a deduction from it. |
| Coverage, including what cannot be answered where | Which venues, which instruments, at what resolution, over what history - and which questions stop being answerable where, separated into what cannot be measured and what is not recorded yet. |
| An answer that keeps | Every response carries the engine revision, the baseline window and how the data reached it. The baseline ends on the fill's own day, so the same fills return the same numbers next year. |
Plus the walkthrough, which is the part that matters on a first run: which check bound, on which fills, and whether the pattern is something your model can be changed to avoid.
One row per fill, as CSV or JSON. Five required fields, two that improve the answer. If you already have a fills file, you almost certainly already have these.
| Field | Required | Notes |
|---|---|---|
ts | required | unix seconds or ISO-8601 |
venue | required | must be a venue we record - the coverage page lists them |
symbol | required | as that venue names it |
side | required | buy or sell |
size_usd | required | notional. Every venue measures size differently; dollars is the one thing everyone can produce |
price | optional | |
pnl_usd | optional | without it you get verdicts but no money figure, and the response says so |
Your executions are your clients' data before they are yours, and they carry retention obligations of their own. So the rule is narrow enough to state in two sentences.
The file you send is never written to disk. It is parsed in memory, checked, and released — there is no staging copy and no temporary file. The report is kept until you delete it, and the report contains a row per fill — derived, in our format, but still a record of what you traded. We will not tell you we keep nothing, because that would not be true.
One request removes a run and everything in it. Storage boundary and jurisdiction are stated in writing before a first upload, because those are the questions your own compliance function will ask before ours does.
This page itself collects nothing. There is no form endpoint behind it, no analytics, and nothing to decline — the button below opens a message in your own mail client, which you read before you send.
Four things. Name, firm, an address we can reply to, and what you trade — that last one decides whether we can answer you at all, because it tells us whether your venues are in the recording.
Or write to hello@delta.example directly.
It is worth two minutes on what is recorded first. If the venues you trade are not in there, a first check cannot tell you anything, and we would rather you found that out from a page than from us. What we answer, and when →