point‑in‑time platform sec edgar + 6 sources 587,689 rows
Evaluate and run AI agents against what was knowable at the time.
PIT keeps the public record on a clock and hands an agent only the rows that were public at the instant you name. The harness runs it with the network off and hashes the whole trajectory into a receipt.
Get access — $79/mo Run a query first — no account
pit-harness is not on PyPI yet, so that line reads a
checkout. The harness and the audit tool are Apache-2.0 and cost
nothing. The data plans are paid by card through Stripe, and your
first key is on the dashboard when you get back.
receipt · pit-harness 0.1.0 · run over the built release receipt_version 1
0 egress attemptsnetwork clean · guard fail_closed
- valid
- true
- run_id
- 90e6dcddc2613fa9
- body_sha256
- sha256:c727e8aba4dea4555e5a1b38c8426aacdf74333a0634e0a90fb1d9e12d37fa75
- bundle
- pit-eval-sec-2022-11_2023-03
- corpus_version
- sha256:29336a245255fdc7be9b5b0b1a6e90053e958a78a58166dbefeaeedce05eea7a
- arms × clocks
- 9 cells · main/redacted/shifted × leaky/dump/pit
- rows per arm
- 2,617
- trajectory
- 260 events · sha256:cf285bb1…1c29a8
- positive_control
- shifted/pit · 1 of 8 recovered · mask_leaks
The last line is the probe. It puts a date question to the agent on the shifted arm and scores the free-text answer against the true date. This run used the stub agent that ships with the harness, whose answer repeats the instant it was handed, so one of the eight items came back with the true date in it. The threshold is zero recoveries, so the verdict is mask_leaks and the shifted arm's delta does not measure memorisation on this run.
pit-harness verify receipt.json recomputes body_sha256
from the body on your machine —
how a run is recorded
The three lines run the same strategy over the same basket and the same price series, and the clock is the only input that differs between them. The arm that joins on the filed date ends at +5.13%, and it gets there by buying, on 47 of the 64 filings that carry an acceptance receipt, a mean of 6.05 hours before EDGAR accepted them, so that curve was never available to trade. On the two clocks that were, the same 88 filings return −2.02% on the nightly dump and +0.18% on the acceptance receipt. The difference between those two is smaller than its own spread across trades; the methods page has the per-event table, the basket rule and the exclusions.
+5.13% Naive filed-date join. Enters at the open of the filing’s own index day. On 47 of the 64 stamped filings that open is earlier than the acceptance receipt, by a mean of 6.05 hours.
−2.02% Nightly EDGAR dump. Treats a filing as knowable at 23:59:59Z on its index day and enters the next open.
+0.18% PIT acceptance clock. Enters the open after the acceptance receipt, and falls back to the filer clock on the 24 filings that carry no receipt.
the walk-forward loop, with one line replaced
10.3% of filings are accepted after the day boundary that join uses 1.1h median distance between the two clocks 343d the largest one 14,975 filings measured on the far side of that boundary
sample · GET /v1/sample/news · SIVB · 9–10 March 2023 walking the window
as_of
2023-03-09T20:00:00Z
1 / 12 captured instants
0 countstatus ok · coverage complete
- published_at
- count 0
- available_at
- 409 · availability.sec.edgar/2023-03-09
- committed_at
- count 0
Nothing SVB had filed was public at this minute. Both sources are certified complete for 2023-03-09, so the zero is an answer and not a hole.
- form
- 8-K
- accession
- 0001193125-23-067777
- title
- SVB FINANCIAL GROUP 8-K
- published_at
- 2023-03-10T23:59:59Z
- acceptance_at
- 2023-03-10T22:23:03Z
- available_at
- null
- content_sha256
- 8a95862ef3953dd206f1afeb5a0ab19014b57f7f332b764e948f6514fdd2d06a
coverage.touched 5
- identity.ticker/SIVB@2023-03-09
- sec.edgar/2023-03-09
- sec.edgar/frontier:2020-02-18..2023-03-10;holes=0
- us.federal_register.pi/2023-03-09
- us.federal_register.pi/frontier:2020-02-18..2023-03-10;holes=0
coverage.missing 0
[]
{ "corpus_version": "sha256:sample", "as_of": "2023-03-09T20:00:00Z", "visible_by": "published_at", "status": "ok", "results": [], "next_cursor": null, "count": 0, "coverage": { "touched": [ "identity.ticker/SIVB@2023-03-09", "sec.edgar/2023-03-09", "sec.edgar/frontier:2020-02-18..2023-03-10;holes=0", "us.federal_register.pi/2023-03-09", "us.federal_register.pi/frontier:2020-02-18..2023-03-10;holes=0" ], "missing": [] }, "error": null, "sample": true }
{ "corpus_version": "sha256:sample", - "as_of": "2023-03-09T20:00:00Z", + "as_of": "2023-03-09T23:59:59Z", "visible_by": "published_at", "status": "ok", "results": [], "next_cursor": null, "count": 0, "coverage": { "touched": [ "identity.ticker/SIVB@2023-03-09", "sec.edgar/2023-03-09", "sec.edgar/frontier:2020-02-18..2023-03-10;holes=0", "us.federal_register.pi/2023-03-09", "us.federal_register.pi/frontier:2020-02-18..2023-03-10;holes=0" ], "missing": [] }, "error": null, "sample": true }
{ "corpus_version": "sha256:sample", - "as_of": "2023-03-09T20:00:00Z", + "as_of": "2023-03-10T00:00:00Z", "visible_by": "published_at", "status": "ok", "results": [], "next_cursor": null, "count": 0, "coverage": { "touched": [ - "identity.ticker/SIVB@2023-03-09", - "sec.edgar/2023-03-09", + "identity.ticker/SIVB@2023-03-10", + "sec.edgar/2023-03-10", "sec.edgar/frontier:2020-02-18..2023-03-10;holes=0", - "us.federal_register.pi/2023-03-09", + "us.federal_register.pi/2023-03-10", "us.federal_register.pi/frontier:2020-02-18..2023-03-10;holes=0" ], "missing": [] }, "error": null, "sample": true }
{ "corpus_version": "sha256:sample", - "as_of": "2023-03-09T20:00:00Z", + "as_of": "2023-03-10T04:00:00Z", "visible_by": "published_at", "status": "ok", "results": [], "next_cursor": null, "count": 0, "coverage": { "touched": [ - "identity.ticker/SIVB@2023-03-09", - "sec.edgar/2023-03-09", + "identity.ticker/SIVB@2023-03-10", + "sec.edgar/2023-03-10", "sec.edgar/frontier:2020-02-18..2023-03-10;holes=0", - "us.federal_register.pi/2023-03-09", + "us.federal_register.pi/2023-03-10", "us.federal_register.pi/frontier:2020-02-18..2023-03-10;holes=0" ], "missing": [] }, "error": null, "sample": true }
{ "corpus_version": "sha256:sample", - "as_of": "2023-03-09T20:00:00Z", + "as_of": "2023-03-10T08:00:00Z", "visible_by": "published_at", "status": "ok", "results": [], "next_cursor": null, "count": 0, "coverage": { "touched": [ - "identity.ticker/SIVB@2023-03-09", - "sec.edgar/2023-03-09", + "identity.ticker/SIVB@2023-03-10", + "sec.edgar/2023-03-10", "sec.edgar/frontier:2020-02-18..2023-03-10;holes=0", - "us.federal_register.pi/2023-03-09", + "us.federal_register.pi/2023-03-10", "us.federal_register.pi/frontier:2020-02-18..2023-03-10;holes=0" ], "missing": [] }, "error": null, "sample": true }
{ "corpus_version": "sha256:sample", - "as_of": "2023-03-09T20:00:00Z", + "as_of": "2023-03-10T12:00:00Z", "visible_by": "published_at", "status": "ok", "results": [], "next_cursor": null, "count": 0, "coverage": { "touched": [ - "identity.ticker/SIVB@2023-03-09", - "sec.edgar/2023-03-09", + "identity.ticker/SIVB@2023-03-10", + "sec.edgar/2023-03-10", "sec.edgar/frontier:2020-02-18..2023-03-10;holes=0", - "us.federal_register.pi/2023-03-09", + "us.federal_register.pi/2023-03-10", "us.federal_register.pi/frontier:2020-02-18..2023-03-10;holes=0" ], "missing": [] }, "error": null, "sample": true }
{ "corpus_version": "sha256:sample", - "as_of": "2023-03-09T20:00:00Z", + "as_of": "2023-03-10T16:00:00Z", "visible_by": "published_at", "status": "ok", "results": [], "next_cursor": null, "count": 0, "coverage": { "touched": [ - "identity.ticker/SIVB@2023-03-09", - "sec.edgar/2023-03-09", + "identity.ticker/SIVB@2023-03-10", + "sec.edgar/2023-03-10", "sec.edgar/frontier:2020-02-18..2023-03-10;holes=0", - "us.federal_register.pi/2023-03-09", + "us.federal_register.pi/2023-03-10", "us.federal_register.pi/frontier:2020-02-18..2023-03-10;holes=0" ], "missing": [] }, "error": null, "sample": true }
{ "corpus_version": "sha256:sample", - "as_of": "2023-03-09T20:00:00Z", + "as_of": "2023-03-10T20:00:00Z", "visible_by": "published_at", "status": "ok", "results": [], "next_cursor": null, "count": 0, "coverage": { "touched": [ - "identity.ticker/SIVB@2023-03-09", - "sec.edgar/2023-03-09", + "identity.ticker/SIVB@2023-03-10", + "sec.edgar/2023-03-10", "sec.edgar/frontier:2020-02-18..2023-03-10;holes=0", - "us.federal_register.pi/2023-03-09", + "us.federal_register.pi/2023-03-10", "us.federal_register.pi/frontier:2020-02-18..2023-03-10;holes=0" ], "missing": [] }, "error": null, "sample": true }
{ "corpus_version": "sha256:sample", - "as_of": "2023-03-09T20:00:00Z", + "as_of": "2023-03-10T22:23:03Z", "visible_by": "published_at", "status": "ok", "results": [], "next_cursor": null, "count": 0, "coverage": { "touched": [ - "identity.ticker/SIVB@2023-03-09", - "sec.edgar/2023-03-09", + "identity.ticker/SIVB@2023-03-10", + "sec.edgar/2023-03-10", "sec.edgar/frontier:2020-02-18..2023-03-10;holes=0", - "us.federal_register.pi/2023-03-09", + "us.federal_register.pi/2023-03-10", "us.federal_register.pi/frontier:2020-02-18..2023-03-10;holes=0" ], "missing": [] }, "error": null, "sample": true }
{ "corpus_version": "sha256:sample", - "as_of": "2023-03-09T20:00:00Z", + "as_of": "2023-03-10T23:00:00Z", "visible_by": "published_at", "status": "ok", "results": [], "next_cursor": null, "count": 0, "coverage": { "touched": [ - "identity.ticker/SIVB@2023-03-09", - "sec.edgar/2023-03-09", + "identity.ticker/SIVB@2023-03-10", + "sec.edgar/2023-03-10", "sec.edgar/frontier:2020-02-18..2023-03-10;holes=0", - "us.federal_register.pi/2023-03-09", + "us.federal_register.pi/2023-03-10", "us.federal_register.pi/frontier:2020-02-18..2023-03-10;holes=0" ], "missing": [] }, "error": null, "sample": true }
{ "corpus_version": "sha256:sample", - "as_of": "2023-03-09T20:00:00Z", + "as_of": "2023-03-10T23:59:58Z", "visible_by": "published_at", "status": "ok", "results": [], "next_cursor": null, "count": 0, "coverage": { "touched": [ - "identity.ticker/SIVB@2023-03-09", - "sec.edgar/2023-03-09", + "identity.ticker/SIVB@2023-03-10", + "sec.edgar/2023-03-10", "sec.edgar/frontier:2020-02-18..2023-03-10;holes=0", - "us.federal_register.pi/2023-03-09", + "us.federal_register.pi/2023-03-10", "us.federal_register.pi/frontier:2020-02-18..2023-03-10;holes=0" ], "missing": [] }, "error": null, "sample": true }
{ "corpus_version": "sha256:sample", - "as_of": "2023-03-09T20:00:00Z", + "as_of": "2023-03-10T23:59:59Z", "visible_by": "published_at", "status": "ok", - "results": [], + "results": [ + { + "id": "0001193125-23-067777_719739", + "source_id": "sec.edgar", + "lane": "certified_pit", + "form": "8-K", + "accession": "0001193125-23-067777", + "cik": "719739", + "title": "SVB FINANCIAL GROUP 8-K", + "event_at": null, + "published_at": "2023-03-10T23:59:59Z", + "available_at": null, + "acceptance_at": "2023-03-10T22:23:03Z", + "committed_at": "2026-08-25T09:18:11Z", + "availability_basis": "unknown", + "revision_id": "0001193125-23-067777_719739", + "supersedes": null, + "content_sha256": "8a95862ef3953dd206f1afeb5a0ab19014b57f7f332b764e948f6514fdd2d06a", + "source_locator": "https://www.sec.gov/Archives/edgar/data/719739/000119312523067777/0001193125-23-067777.txt", + "sample": true, + "as_of_visible": true + } + ], "next_cursor": null, - "count": 0, + "count": 1, "coverage": { "touched": [ - "identity.ticker/SIVB@2023-03-09", - "sec.edgar/2023-03-09", + "identity.ticker/SIVB@2023-03-10", + "sec.edgar/2023-03-10", "sec.edgar/frontier:2020-02-18..2023-03-10;holes=0", - "us.federal_register.pi/2023-03-09", + "us.federal_register.pi/2023-03-10", "us.federal_register.pi/frontier:2020-02-18..2023-03-10;holes=0" ], "missing": [] }, "error": null, "sample": true }
Captured from /v1/sample/news on 2026-08-26, one
response per instant. request_id is dropped because
it is a fresh UUID on every call; the rest is verbatim, reindented
to two spaces. Green is what this cut added since
2023-03-09T20:00:00Z and red is what it dropped.
The API reference lists every field.
curl -s "https://pit.aqx.llc/v1/sample/news?example=svb&as_of=2023-03-09T20:00:00Z"
The call needs no key and no account. It answers from the same engine the paid /v1/news uses, over a five-day sample of the corpus, and every response carries "sample": true.
Change as_of to any minute you like. Ask about a day we have never read and the call returns 409 with that day named in coverage.missing. Open the playground
Twelve real responses, captured 2026-08-26. Every one of them is replayable — run it yourself
What the SVB cut returned, minute by minute
Drag the scrubber. It walks twelve responses this repo's own
/v1/sample/news returned for SVB across 9–10
March 2023, and the count holds at zero until
2023-03-10T22:23:03Z, the minute EDGAR stamped the 8-K as
accepted. The index line for that filing carries the date
20230310 and nothing finer, which is twenty-two hours
earlier and is what a join on the date column would have used.
Each response also lists the days it read, and those keys change
from 03-09 to 03-10 when the cut crosses midnight. Ask about a
day nobody has read and the call answers 409 with that day named
in coverage.missing.
Fifteen products on one clock
The rows an agent reads carry the same clock as the window it is evaluated on and the server it calls in production, so a run can be checked end to end against one timeline.
1 · Ingest
Every row is kept as it arrived, with a receipt for the minute it arrived.
Point-in-Time API LIVE Live Feed LIVE Flat Files LIVE Data Connectors BUILDING2 · Test
A frozen window with matched control arms, so contamination comes out as a number.
Evaluation Harness BUILDING Benchmark Datasets LIVE Post-Cutoff Holdouts LIVE Eval Gates BUILDING3 · Run
Agents call these at runtime, and every answer names the clock it used.
MCP Server LIVE Deterministic Replay BUILDING Decision Audit Logs LIVE4 · Prove
The audit checks the agent's rationale against the rows the run served.
Reasoning Audits BUILDING Contamination Certificates BUILDING Certified Leaderboard PLANNED Academy PLANNEDThe agent cited a $2.25B raise that appeared in none of its rows
The audit reads the run's trajectory, lifts every figure, name, date and event assertion out of the agent's written rationale, and checks each one against the rows that run served.
unsupported: 9 flagged of 12 claims over 5 rationales (5 at or above entity), worst number 2023-03-08 main/pit number[number] unmatched '$2.25B' 2023-03-08 main/pit number[number] unmatched '$2.25 billion' 2023-03-08 main/pit event[entity] unmatched 'Form 8-K (2023-03-08) announcing large …' cell main/pit: unsupported, 6 flagged, worst number cell redacted/pit: grounded, 1 flagged, worst vague cell shifted/pit: grounded, 2 flagged, worst vague
On the 2023-03-08 session the main arm had been served 86 rows
whose entire text is a company name and a form type, such as
SVB FINANCIAL GROUP 8-K. The strings
2.25, capital and receivership
appear in none of them. The matcher considered 966 served
numbers before flagging the claim, and the nearest one it found was
1,844,552,234, an accession number read as a magnitude, 18.0%
away and outside the loosest rung on the ladder. SVB did announce a raise
that size, and the figure reached the agent through its training data
rather than through the run.
How a claim is matched, and what a rung means
What it costs
These are founding prices: monthly, self-serve, and you keep the one you sign up at. Every plan reads the same rows, and the rate limit, the key count and the flat files are what differ.
SEC filings run continuously from 2022-11-01 to 2023-03-31, the live tape records forward from 2026-08-26, and outside those windows coverage is day by day — every certified day is listed on the coverage page. Reasoning Audits meter per decision audited with an allowance in every plan; certificates price flat per run. Every plan covers work you do for yourself or your employer; if your own users end up holding PIT data you need a commercial license, which we price by email.