AHF Demo Walkthrough

What this demo shows

AHF catches inconsistencies across a set of documents and pinpoints when a stated position or policy changes.

The real target is internal material: documentation, email, JIRA and Slack. We don't expect access to that for a demo, so we use public filings instead.

How it works: AHF reads documents one at a time, in the order they were published. Each one adds to a running picture of what has been stated, its ground truth. When a new document changes or contradicts that picture, AHF flags it, and a human reviewer decides whether it matters.

For every check it gives one of three answers: Yes, No, or Can't tell — and, once the evidence behind an answer is withdrawn, no longer knowable. It keeps full history, so you can see exactly what was known on any past date.

Using the demo

About 15 minutes. Each demo has a status bar at the top showing the system's answer at every step. If you watch one thing, watch that.

Three things to know up front:

Demo 1: Simple example (made-up data) · Open Demo 1

A company reports a total of 100. Two teams report their parts: 40 and 60. Over several weeks, new information arrives. Step through with the arrows at the top or your arrow keys.

  1. Teams report. 40 + 60 = 100. All good.
  2. Unclear summary. A summary says 80 but doesn't say how it was calculated. The system says “can't check,” not “wrong,” and names what's missing. Most tools treat those as the same thing.
  3. Explained. The owner says the 80 excludes a 20 adjustment; a reviewer accepts. Both numbers are correct. The approval is logged and nothing is overwritten.
  4. Correction. A team changes 60 to 85. The parts now total 125 against a reported 100. The issue the reviewer closed is automatically reopened, and their earlier decision stays in the history. Click any reference to jump to the exact source cell.
  5. Outside confirmation. An independent source confirms 85. Then the team withdraws its own correction. The problem remains, because the outside source still stands.
  6. Last source withdrawn. The outside source is withdrawn too. The answer becomes “no longer knowable.” Key point: it does not say “resolved,” and it does not revert to 60.

Then go back to step 3. You see exactly what was known on that date, not today's view with later data hidden.

Demo 2: A real bank's Q1 2012 filings · Open Demo 2

Read first. These are JPMorgan's SEC filings for the quarter of the London Whale trades. The system reports only what was filed and when, and how its ground truth changes as each filing arrives. It says nothing about why any figure changed or about any person. It ignores the Senate investigation, the bank's internal review, and regulators' findings.

Six documents. The question: what did the bank report for Q1 2012, and does each number still stand?

  1. Earnings release (Apr 13, 2012): Can't check. The risk figure doesn't state which model it's based on. Meanwhile, the seven business lines add up to the total correctly. Two numbers, same morning: one checkable, one not. “Can't check” doesn't mean “fine.”
  2. Quarterly report (May 10): Yes. Every mention of the figure matches. On that day's call, the figure's owner explains it and a reviewer accepts. The earlier figure is replaced, not deleted, with the bank's own statement as the reason.
  3. “No longer to be relied upon” (Jul 13): Can't check. The filings it depends on were withdrawn. Watch this step: the system does not recalculate from what's left. Separately, the bank's own correction math checks out. The public record stayed in this state for 27 days.
  4. Restatement (Aug 9): Yes, at the restated figure. The withdrawn figure stays on file but is never revived.

Why this example. It's familiar, so it needs no background. And behind these six documents sits the bank's full record, 53,686 figures across 3,662 filings, run through the same rules.

One finding from the full record. Three filings report a 2011 figure as positive. The 2012 amendment reports it as negative. If the system sees only the 2012 filings, it treats this as a normal restatement. With the full record, it flags the change as unexplained: three earlier filings say otherwise, and none of them has been retracted. The second answer is correct. Takeaway: limited data can miss problems, and can also produce confident conclusions that more data overturns.

There's no AI model comparison here on purpose: the episode is well known, so a model might answer from memory rather than the documents. In this demo the system itself uses no AI in its reasoning.

Demo 3: A regional bank, filing by filing, and the regulator's letter · Open Demo 3

Five years of one bank's filings are read first. Then its 2024 filings arrive one at a time. Press “Send next filing” at the bottom to send the next one, or click any filing in the strip near the top to jump to it, forwards or back. After each filing the screen shows:

  1. Annual report (Mar 2024): needs a look. Columns in the rate/volume tables don't add up to their totals, and deposits fell by more than the filings explain.
  2. Quarterly report (May 2024): needs a look. Two lending policies changed (a minimum DSCR from 120% to 125%, a maximum LTV from 65% to 70%) and no filing says so.
  3. The SEC staff's letter (Jul 2024). The system never saw it. After the fact, 4 of its 34 questions match something the screen had already raised, 68 to 125 days before the letter. Each match links to the exact question in the letter.
  4. The bank's response (Aug 2024). The bank answers; what was raised stays on the record.

Marking a question. Under each question, Raise to owner and Mark fine record what a reviewer decided. Every mark can be undone, and Reset marks clears all of them for that bank. ⚠️ Marks are kept on this server and everyone who opens the page sees them; this demo has no logins. A mark changes nothing the system concluded.

Finding another bank. The search box at the top finds the banks built on this server, by ticker or name. A ticker that is not built shows where a new one would be ingested — its SEC filings, earnings-call transcripts and investor presentations. That is not available yet: building a bank is a background job, not something the page can do while you wait.

AI in this demo. The AHF reviewer uses a language model (Gemini) under AHF's rules to read the filings, pull out statements, find the tables and ask the questions a careful reviewer would ask. AHF's code checks every quotation against the filed text, and a human reviewer decides whether to raise it. One of the four matches came from the AHF reviewer. Figures restated in a later filing, which are usually routine, are listed under “Watching” rather than raised. The method was developed on this bank, with its letter open, and the screen says so.

Each card also has folded Developer notes, for the people who build this: identifiers, and a link to Inspect, the raw store behind the cards. The earlier layout of this screen is still at Classic view.

Two more banks from a set of twenty run without seeing any letters: the one with the most raised and the one with the fewest. Whether those match their SEC letters has not been scored yet.

FAQ

Does it find real errors?Partly shown. On the bank in Demo 3, 4 of 34 SEC questions match something it flagged months before the letter — but that bank is the one we developed on. On twenty banks we did not develop on, the fixed rules matched none of 54 SEC comments, and the AI's questions are not scored yet. In Demos 1 and 2, all scores come from planted problems.
Is it better than a good AI model?On accuracy, slightly: a strong model with the same data and rules scored 73/75; this system scored 75/75. The bigger advantages: every answer traces to an exact source, a rule check costs nothing to re-run, and it gives the same answer every time.
How much of it is AI?In Demos 1 and 2, none in the reasoning or calculations; an LLM wrote the plain-English captions afterward, working only from numbers that were already calculated. In Demo 3, AI reads the filings and suggests questions; code checks every quotation and does every sum, and a human reviewer decides. Reading one bank's three annual reports costs about $1–2.
Can we use it on our data?That's a pilot, and it's the next step.
Who can see what?Everyone sees everything. There are no permissions yet.

The demo is read-only. Nothing you click changes what anyone else sees.