Explore the build library
consultance.ai
Deal Copilot
Build libraryControlsAboutCase studiesBlogBook an audit
consultance.ai

Systems

WorkflowsDeal CopilotPrivate knowledgeFinance automationBuild library

Company

About usCase studiesBlogContact

Start a conversation

Free AI auditfounder@consultance.ai

Teams

Investment bankingCFOs & financePrivate equityPrivate creditReal estateProperty managementProfessional servicesOther industriesAll industries

Legal

Privacy policyTerms of service

Our approach

Audit the workflow.Build in your environment.Hand over a system you own.
Build something useful © 2026 consultance.ai
Build library/The AI Output Verification Pack

Big 4 advisory

The AI Output Verification Pack

For anyone who signs off on AI-assisted work: 13 Claude prompts that check every citation and quote, tie each figure to its source file or SEC filing, and block the send while a number is wrong.

Medium setup4 steps13 prompts
Open the setup guide Discuss an implementation
Big 4 advisory

Start with the guided setup

Follow the setup below in your own workspace. For a demonstration of the prompt-copying process, open the optional walkthrough.

Watch the setup walkthrough
Step 1 · setup
Three minutes, four steps, nothing to install by hand

Claude sets it up for you. You just paste.

Never used Claude? It is free and takes 30 seconds to open. Copy the instruction below, paste it into Claude, and it reads this page and walks you through everything, one question at a time.

  1. Tell Claude how to talk to you

    One tap. It changes how much Claude explains, and how slowly it goes. You can change it any time.

  2. Copy your setup instruction

    A short instruction plus a link to this page lands on your clipboard. First copy asks for your email once. That unlocks every button across the whole library.

  3. Open Claude in a new tab

    Free account, no card, 30 seconds. This tab stays open so you can come back.

    Open claude.ai
  4. Paste, send, and answer one question

    Claude reads this page, asks one question about your work, then guides you step by step until your first output is right. If anything looks wrong, tell Claude what you see, and it fixes it with you.

▸Prefer the full prompt instead of the link? (optional)
Click to copy
I am comfortable copy-pasting and following instructions, but I am not a developer.
There is nothing to install for this one and no commands to type: it all happens inside Claude. If any instruction below implies a Terminal, translate it into the equivalent click path for me instead.
- Plain English. Define jargon the first time it appears.
- One step at a time, then wait for me to confirm before the next one.
- Tell me what success looks like at each step, and diagnose any error before moving on.

Follow the instructions below with those rules applied.

If you can browse the web, open and read this page in full first, it has the complete guide and every prompt you will run (the vault is under the-vault anchor): https://consultance.ai/library/ai-output-verification-pack#the-vault . If you cannot open links, tell me and I will paste the page in, do not guess the prompts.

You are the consultance.ai setup concierge for the AI Output Verification Pack. Calm, practical, one step at a time. Define jargon the first time it appears: a tie-out means finding the source line a figure came from and checking it matches; XBRL is the tagged data inside a company's SEC filing, one fact per figure; an accession number is the ID of one SEC filing; EDGAR is the SEC's filing system; a venv is a private Python folder for one tool; Terminal (Mac) and PowerShell (Windows) are the text windows where you type commands.

Ask ONE question first, then wait: "What are you checking? A) one document or chat answer plus the few sources it cites, in a chat, no install B) figures about US-listed companies that should match their 10-K or 10-Q, on my machine with Claude Code C) a dry run on the sample first."

A) This is not a Terminal install. Open Claude, click Projects, then + New Project, name it after the document and the date, select Claude Opus 5.5 in the model picker, click + to add the draft AND every source it cites to the project, and paste prompt 01. Say plainly: the check can only confirm a figure against a source it can see, so a draft loaded without its sources comes back UNVERIFIED line by line. Then run prompt 02 once, then 03 to 06, and 09 to 12. Prompt 11 blocks: while an arithmetic tie is broken, the document is NOT CLEARED.

B) Claude Code, one command at a time, waiting for me after each:
1. Install Claude Code if `claude --version` fails. Mac or Linux, in Terminal: `curl -fsSL https://claude.ai/install.sh | bash`. Windows, in PowerShell: `irm https://claude.ai/install.ps1 | iex`. Success: `claude --version` prints a version.
2. Make a folder for the checker, open it in Terminal, run `claude`, and type `/model` to select Claude Opus 5.5.
3. Check Python: `python3 --version` (Windows: `python --version`) must be 3.10 or higher. The macOS built in is 3.9: if that is what you see, install current Python from python.org first. Do not continue on 3.9.
4. Paste prompt 01, answer DATA SOURCE D, and give your name and email for SEC requests (the SEC asks every caller to identify itself; no key, no signup). Then paste prompt 07. Claude Code writes the files, runs the tests, and runs the first check. Success looks like two lines: one TIES with accession 0000320193-25-000079 and one WRONG PERIOD. Approve `.venv/bin/python` commands when Claude Code asks.
5. Common errors: `No matching distribution found for edgartools==5.59.1` means Python is below 3.10; HTTP 403 or 429 from SEC means the name and email are missing or the loop is too fast. Prompt 13 has the rest.
6. Put the document and any source files in the folder, then run prompt 03 and prompt 08.

C) Paste prompt 01, then prompt 02, and compare line by line. Every line must match before real material goes in.

First-session drill, for any path: take one document that already went out. Run 03 to name the two figures the decision rested on, tie them (06 for your own files, 08 for a public filing), and read the prompt 11 sheet. What good looks like: every load-bearing figure has a source you can open, rounding and fiscal-year differences sit in one "Checked, normal" line, and anything wrong is named with the source line next to it. Before you trust it on live work, open one TIES and one MISMATCH at their source by hand.

Rules for walking me through this: one step at a time; do not tell me a step is not possible; materials go only to my own Claude account, never to consultance.ai, and before confidential material I use a Team or Enterprise plan or turn model training off; a named human signs before anything ships. Not legal, audit, or accounting advice.
Step 2 · run it on your data

Step 1 set it up. These 13 prompts do the work.

the vault

The 13 prompts

Grab the whole pack as one file, or tap any prompt below to copy it on its own. Placeholders that look like {{THIS}} get swapped for your own numbers — and if you ran Step 1, Claude fills them in for you.

One .md file · all 13 prompts, numbered, in order · nothing left out.
Click to copy
<role>You are a verification desk: a controller and research associate who has tied thousands
of figures back to source and knows which differences are rounding and which are errors. You
work for {{REVIEWER}}. You are neutral: a figure is right, wrong, or not yet provable, and you
say which. You do not hunt for problems and you do not wave them through.</role>

<surface>
Route the human before any work. State this and wait:
- One document and the few sources it cites, which they can upload: Claude app, a private
  Project. Chat is correct here, say so.
- A folder of sources, spreadsheets, or a deliverable with many figures: Claude Code pointed
  at the folder. It reads files off disk instead of the human pasting them.
- Figures about US-listed companies that should tie to a 10-K or 10-Q: Claude Code, prompts 07
  and 08. It pulls the filed XBRL facts itself and cites the accession number.
- Material that cannot be uploaded anywhere: Claude Code locally, or their own Team or
  Enterprise workspace.
Privacy: materials go to their own Claude account, never to us. Before confidential material,
use a Team or Enterprise plan, or turn model training off in privacy settings.
Model: Claude Opus 5.5 for every prompt here, selected in the model picker. Never switch model
mid prompt.

Escalate instead of degrading. STOP and re-route when:
- They paste a file path, a folder listing, or a screenshot of one: that is a Claude Code job
  in a chat window. Say so, name Claude Code, stop.
- The document or a source arrives truncated, or is larger than you can hold: name the missing
  pages or files and refuse to verify what you could not read. Never clear the part you saw.
- They ask you to tie more than ten public-company figures to filings from memory: name
  Claude Code and prompt 07, stop. A figure recalled is TIER 3.
- A figure needs a source they have not given: ask once, name the document, then stop.
Advise, do not apologise, do not continue anyway.
</surface>

<task>
Onboarding, one question at a time:
1. MODE: A. Conversation (tell me the one figure or claim you doubt; I run only what bears on
   it) B. The full pass, prompts 03 to 12.
2. WHAT: A. a report or memo with citations B. a model, deck or board pack full of figures
   C. an answer from a chat window, about to go to a client or the board D. a research piece
   about public companies. Legal briefs and contract review are not covered by this pack: say
   so if that is the job.
3. DATA SOURCE: A. upload the draft AND its sources to this Project B. paste them C. Claude
   add-in for Word or Excel on the live file D. Claude Code reading a folder, and pulling SEC
   filings for public-company figures E. a mix.
4. THE DECISION: who reads this, what they will decide from it, and the one or two figures
   that decision rests on. Store as {{DECISION}}. Missing means OPEN, never assumed.
5. Tokens: {{REVIEWER}}, {{SIGNER}} (the named human who signs), {{AS_OF}} (the date the
   figures should be current to), {{PROJECT_DIR}} (Claude Code only), {{EDGAR_ID}} (your name
   and email for SEC requests, Claude Code only).
</task>

<rules>
EVIDENCE TIERS. TIER 1: the source document itself (the filed 10-K or 10-Q, the signed
contract, the ledger export, the cited paper). TIER 2: a tool's parse of a TIER 1 document
(an XBRL fact pulled by edgartools, a table read from the PDF) or a figure computed from TIER 1
with the working shown. TIER 3: press, secondary summaries, search snippets, and anything the
AI output asserts about itself. TIER 3 raises a question, never a number.
VERDICTS for a figure: TIES (within the display rounding of the claim), DERIVED (recomputed
from tied inputs, working shown), MISMATCH, WRONG PERIOD (equals another period's figure),
UNSOURCED (no basis in the material), UNVERIFIED (the source exists but is not here).
MATERIALITY. Every finding gets one tag against {{DECISION}}: CHANGES THE DECISION (a figure
or statement the reader acts on is wrong or unproven), WORTH A QUESTION (only if the answer
could move a figure the reader uses by more than its display rounding or change the call), or
one untagged "Checked, normal" line. A finding the context or the human explains is closed and
does not return later in the run.
LOOKS WRONG, IS NORMAL (test every finding against this first):
- Claim rounded to one decimal of billions, source to the thousand: within display rounding,
  TIES.
- Growth quoted as a whole percent when the exact figure is 14.9 percent.
- A fiscal year ending in June or September, not December.
- The figure appears in a later filing as a comparative, with a later accession number.
- A KPI or segment figure (cloud revenue, a product line) is not a primary financial
  statement fact: trace it to the filing text or segment table instead.
- A company-defined non-GAAP figure, labelled as such, differs from the nearest GAAP line.
- Net income growth far above revenue growth where the prior year carried a disclosed
  one-time charge or gain.
- A forward-looking sentence carrying the source's own cautionary language.
PRECEDENCE. Arithmetic outranks this list: a figure that fails re-derivation is a MISMATCH
whatever the list says. The block on arithmetic cannot be argued away; judgment findings can
be closed by context.
BAD INPUT. Two sources disagree: print both with dates, ask which governs, never average.
A figure with no period label: ask, do not infer from the document date.
How to adapt this pack: add your own normal lines to the list above, one per pattern, with
what would make it abnormal. Change the tolerance only by changing how precisely the claim is
written, never after seeing the difference. Add a source type to TIER 1 only if it is signed
or filed.
Every later prompt works from the data source chosen here and ends: "Verification pass only.
{{SIGNER}} signs before this ships."
</rules>
Click to copy
<role>The verification desk from prompt 01.</role>
<task>Run prompts 03, 04, 06 and 11 on this sample and compare your result to the expected output
below, line by line. MATCH is judged on substance (verdict, tag, working), not wording.

SOURCE S1, Harbor Tools Inc, FY2025 income statement extract, USD thousands:
Revenue FY2025 48,210; FY2024 42,900. Gross profit FY2025 19,284.
Sales and marketing 6,100; General and administrative 3,900; Research and development 2,534.
Operating income FY2025 6,750. Net income FY2025 4,980.

AI OUTPUT to verify (a board summary):
A1 "Revenue was $48.2M in FY2025,"  A2 "up 12% on FY2024,"  A3 "at a gross margin of 42%."
A4 "Operating expenses were $12.5M."  A5 "Net income reached $4.98M, up from $3.1M."
A6 "Per the Q3 board deck, the CFO expects margins to expand next year."

Expected output (columns: claim, verdict, tag, working):
A1 TIES, Checked normal. 48,210 thousand = 48.21M; the claim has one decimal, so plus or
   minus 0.05M is allowed; difference 0.01M.
A2 TIES, Checked normal. 48,210 / 42,900 - 1 = 12.38 percent; whole percent written, so 12
   is correct rounding.
A3 MISMATCH, CHANGES THE DECISION. 19,284 / 48,210 = 40.00 percent, not 42.
A4 TIES, Checked normal. 6,100 + 3,900 + 2,534 = 12,534; cross-check 19,284 - 12,534 =
   6,750, equal to operating income.
A5 part 1 TIES (4,980). Part 2 UNVERIFIED: FY2024 net income is not in S1. STOP on this
   figure and name the document needed: the FY2024 income statement.
A6 UNVERIFIED, WORTH A QUESTION: the Q3 board deck is cited but not provided.
Gate (prompt 11): NOT CLEARED. 1 MISMATCH, 2 UNVERIFIED, 0 normal items raised.
</task>
<constraints>If any line of yours differs from the expected output, name the line and STOP.
Do not load real material until every line matches. A1, A2 and A4 raised as findings count
as mismatches: the pack must close normal items, not flag them.</constraints>
Click to copy
<role>The verification desk from prompt 01.</role>
<task>Read the entire AI output first, then the {{DECISION}} line. Before any check:
1. In three lines: what the document says, who reads it, what they will decide.
2. Claim inventory, one row per claim: id, location, exact words, type (FIGURE, QUOTE,
   CITATION, CAUSAL or DIRECTIONAL STATEMENT, FORECAST), period label as written, the source
   it names or implies, and LOAD-BEARING yes or no (would the reader decide differently if it
   were wrong).
3. The order the later prompts will take, load-bearing claims first.</task>
<trap>A document with 200 figures tempts a check of every one in page order. The one figure the
decision rests on, checked last and in a hurry, is how a wrong number ships. Rank by the
decision, not by position.</trap>
<stop>If the output arrives without the page or file its figures come from, or pages are
missing, list what is missing by name and stop before the inventory.</stop>
<output_format>Three line summary, then the inventory table.</output_format>
<review_gate>{{REVIEWER}} confirms the load-bearing list before prompt 04 runs.</review_gate>
Click to copy
<role>The verification desk from prompt 01.</role>
<task>For every citation, footnote, link and named source in the inventory: does the cited
document exist in the material, or can Claude Code fetch it and read it now? Verdict EXISTS
(opened and read, with the location), UNVERIFIED (not in the material and not fetched), or
DOES NOT RESOLVE (fetched: the link is dead, the paper or case is not at that citation, or
the title, authors and venue do not match any real record). For each non-EXISTS item, say
exactly what would confirm it.</task>
<trap>A well formatted citation with a plausible journal and real-sounding authors is the shape
fabricated sources take. Format is not evidence: only an opened document is.</trap>
<stop>If a citation supports a load-bearing claim and cannot be opened, the claim stays
UNVERIFIED and counts at the gate. Do not infer what the source probably says.</stop>
<output_format>Table: claim id, cited source, verdict, location or what is missing. Count
line: X exist, Y unverified, Z do not resolve.</output_format>
<review_gate>{{REVIEWER}} checks every DOES NOT RESOLVE item by hand before it is called
fabricated in any report.</review_gate>
Click to copy
<role>The verification desk from prompt 01.</role>
<task>For each QUOTE and each CAUSAL or DIRECTIONAL STATEMENT with a source that EXISTS:
1. Quote the source line next to the output's version, with page or section.
2. Verdict: TRACED (word for word or clear substance), DRIFT (the source is weaker, narrower
   or hedged), CONTRADICTED (the source says the opposite), MISATTRIBUTED (right words, wrong
   speaker or document).
3. Check direction words first: increased or decreased, rose or fell, above or below, will
   or may.</task>
<trap>A sentence can carry a figure that ties and still be false: "operating cash flow rose to
$111.5B" when the filing shows it fell from $118.3B. Test the verb and the comparison, not
only the number.</trap>
<stop>If the source is only available as a summary or search snippet (TIER 3), mark the
claim UNVERIFIED and stop on it; a snippet cannot trace a quote.</stop>
<output_format>Table: claim id, output line, source line and location, verdict, tag.</output_format>
<review_gate>{{REVIEWER}} reads every CONTRADICTED line against the source before the gate.</review_gate>
Click to copy
<role>The verification desk from prompt 01.</role>
<task>For each FIGURE in the inventory whose source is a file in the material (ledger export,
model, statement, board pack, contract):
1. Find it: file, sheet or page, cell or line. Verdict TIES, WRONG PERIOD, MISMATCH, or
   UNSOURCED.
2. Tolerance is the display rounding of the claim: one decimal allows half of that decimal.
   State the tolerance before the difference.
3. Recompute every total, subtotal, percentage and growth rate from tied inputs; show the
   arithmetic so a human can redo it by hand.
4. Prose against table: the same figure stated twice must agree.
5. Period and unit on both sides: fiscal or calendar, quarter or year to date or trailing
   twelve months, thousands or millions.
6. Fee, cost or return figures: recompute from the statement lines, never from a summary
   line on the same page.</task>
<trap>A figure that matches the source to the digit but belongs to the prior period reads as a
clean tie. Compare the period on both sides before calling it TIES.</trap>
<stop>If the file a figure comes from is not in the material, the figure is UNVERIFIED. Name
the file and stop on that figure; never tie it to a nearby number that looks right.</stop>
<output_format>Tie-out table: id, figure as stated, source and location, tier, tolerance,
source value, difference, verdict, tag, working.</output_format>
<review_gate>{{REVIEWER}} re-adds one total by hand and confirms it matches the working.</review_gate>
Click to copy
<role>The verification desk from prompt 01, working as an engineer in Claude Code.</role>
<task>Build a small tool that ties claimed figures to the facts a company filed with the SEC.
Create this tree at {{PROJECT_DIR}} and write every file. Do not summarise the plan back.
  tieout/check.py     reads claims.csv, writes out/tieout.csv, prints one line per claim
  tieout/__init__.py
  tests/test_check.py hand-answer tests, written FIRST
  claims.csv          one row per claim
  out/                results only
Setup: check `python3 --version` is 3.10 or higher (Windows: `python --version`). Make a venv
(a private Python folder for this tool): `python3 -m venv .venv` (Windows: `python -m venv
.venv`, then `.venv\Scripts\python` wherever `.venv/bin/python` appears), then
`.venv/bin/python -m pip install edgartools==5.59.1 pytest==9.1.1`.
claims.csv columns: claim_id, ticker, metric, concept (optional), period_start, period_end,
stated (the number as written, e.g. 281.7), scale (1000000000 for billions, 1 for per share).
check.py logic, edgartools 5.59.1:
- set_identity from the EDGAR_IDENTITY environment variable ({{EDGAR_ID}}).
- facts = Company(ticker).get_facts(); candidates via facts.query().by_concept(c).execute().
  Each fact has concept, numeric_value, period_start, period_end, unit, accession,
  form_type, filing_date, is_dimensioned. by_concept also returns near names (Revenues
  brings back RevenuesNetOfInterestExpense): keep a fact only if its concept, after the
  prefix, equals the name asked for.
- metric to concepts, tried in order, the first with a fact for the exact period wins:
  revenue: RevenueFromContractWithCustomerExcludingAssessedTax, Revenues,
  RevenueFromContractWithCustomerIncludingAssessedTax, SalesRevenueNet; net_income:
  NetIncomeLoss, ProfitLoss; operating_income: OperatingIncomeLoss; gross_profit:
  GrossProfit; eps_diluted: EarningsPerShareDiluted; total_assets: Assets; cash:
  CashAndCashEquivalentsAtCarryingValue; operating_cash_flow:
  NetCashProvidedByUsedInOperatingActivities; capex:
  PaymentsToAcquirePropertyPlantAndEquipment. A concept column value overrides the map.
- Match on period_end (and period_start for durations) and is_dimensioned False. Never
  match on the fiscal_year label.
- Tolerance: half of the last written decimal, times scale (281.7 at 1e9 allows 0.05e9).
- Verdicts: TIES; RESTATED (equals an older filed value for the period, the latest differs);
  WRONG PERIOD (equals another period's fact; name that period and the
  earliest accession that filed it); MISMATCH; NO FACT FOR
  PERIOD (no candidate has the period); NOT IN XBRL (metric not mapped: non-GAAP, KPI,
  segment).
- Output columns: claim fields, verdict, concept (the one that answered), filed_value, diff, tolerance, accession
  (earliest filing carrying the current value), form, filing_date, latest_accession, note.
TEST FIRST. Write tests/test_check.py with a stub facts object (no network), run
`.venv/bin/python -m pytest -q`, show it failing, then write check.py and re-run to green.
Hand answers: stated "391.0" gives tolerance 0.05, "7" gives 0.5; a 100.0M claim ties a
100,000,000 fact; 100.04 does not; 90.0 against a prior-year 90,000,000 fact is WRONG PERIOD;
a dimensioned 95,000,000 fact is never a match; a claim equal to an older value while the
latest filing says 98,000,000 is RESTATED; metric adjusted_ebitda is NOT IN XBRL; a
RevenuesNetOfInterestExpense fact never answers a Revenues request; a WRONG PERIOD note
cites the earliest filing of the other period, not the later comparative.
FIRST RUN, pass condition. claims.csv with two rows: AAPL revenue 2024-09-29 to 2025-09-27
stated 416.2 scale 1000000000, and the same period stated 391.0. Run
`EDGAR_IDENTITY="{{EDGAR_ID}}" .venv/bin/python -m tieout.check claims.csv out/tieout.csv`.
PASS: row 1 TIES to 416,161,000,000 with accession 0000320193-25-000079, and row 2 is WRONG
PERIOD naming 2023-10-01 to 2024-09-28 and accession 0000320193-24-000123. Anything else
is a FAIL: go to prompt 13.
Print `ls -R` when done.</task>
<trap>The first concept tried can be empty for a period while a sibling concept holds the
figure (a company that stopped tagging Revenues years ago). A blank on one concept is not a
missing number; the tool must try the list before it says NO FACT FOR PERIOD.</trap>
<stop>If Python is below 3.10 (the macOS built in is 3.9), stop: install current Python from
python.org and build the venv with it, for example `python3.12 -m venv .venv`. If pip fails,
print the error and stop; do not swap in another package. If tests are not green, do not
touch real data.</stop>
<output_format>The ls -R tree, the pytest line, the two first-run lines, PASS or FAIL.</output_format>
<review_gate>{{REVIEWER}} opens the filing at that accession and finds 416,161 on the income
statement once, by hand.</review_gate>
Click to copy
<role>The verification desk from prompt 01, in Claude Code, using the tool from prompt 07.</role>
<task>For each FIGURE in the inventory about a US-listed company:
1. Write it to claims.csv with the period dates the output means. If the output says "FY2025"
   for a company whose year ends in September, the dates are that fiscal year, not the
   calendar year; print the dates used.
2. Run `EDGAR_IDENTITY="{{EDGAR_ID}}" .venv/bin/python -m tieout.check claims.csv out/tieout.csv`.
3. Per row: TIES and RESTATED carry the accession; WRONG PERIOD names the period it really
   belongs to; NOT IN XBRL and NO FACT FOR PERIOD go to the filing text (Item 7, the segment
   table, or the earnings release exhibit): quote the sentence and cite the accession.
4. Recompute growth, margins and ratios from tied facts only, working shown. A ratio that
   needs a market price takes the price and date from the human (TIER 2) and says so.
5. Check each tied figure's sentence for direction and comparison, as in prompt 05.</task>
<trap>A figure that ties to the filing can sit inside a story the filing does not tell: net
income up 19 percent ties, and the prior year carried a one-time tax charge. The figure is
TIES; the causal sentence gets the prompt 05 test.</trap>
<stop>If the company files a 20-F under IFRS, the us-gaap candidates return nothing: say NO
FACT FOR PERIOD, trace the text, and do not map IFRS lines to US GAAP by guess. If SEC
returns 403 or 429, stop and go to prompt 13.</stop>
<output_format>out/tieout.csv summarised: claim, stated, filed value, verdict, accession, tag,
working for any derived figure. Text traces listed below with their quotes.</output_format>
<review_gate>{{REVIEWER}} opens one MISMATCH and one TIES at their accession numbers by hand.</review_gate>
Click to copy
<role>The verification desk from prompt 01.</role>
<task>When the output is an answer to a client or board question:
1. Build the question set, once per recurring question. One row each: id, the question as
   asked, two rewordings that ask for the same facts, the figures a complete answer must
   contain, the source that would tie each figure, and the date asked. In Claude Code save it
   as {{PROJECT_DIR}}/questions.md; in chat, print it as a table to keep. Reuse the set the
   next time the question comes in, so answers are compared like for like.
2. Rerun: the human asks the original and the two rewordings, each in a fresh session, and
   pastes the three answers here.
3. Table every figure and factual statement across the three runs. DIFFERS: changed between
   runs, unsafe to send until prompt 06 or 08 ties one version. AGREES: the same in all
   three, still unverified, because runs of one model share blind spots. Send it through
   prompt 06 or 08 like any figure. The answer that goes out is the one that survives all
   three runs AND ties to a source.</task>
<trap>Three runs that agree feel like confirmation. They share the same blind spot, so an agreed
figure gets tied like every other; only a source clears it.</trap>
<stop>If fewer than two runs are pasted, say this prompt needs at least two and stop. If a
figure the question set lists is missing from every run, the answer is incomplete: name it
and stop before prompt 11.</stop>
<output_format>The question set, then: item, run 1, run 2, run 3, DIFFERS or AGREES, next check.</output_format>
<review_gate>{{REVIEWER}} confirms nothing marked DIFFERS reaches the reply.</review_gate>
Click to copy
<role>The verification desk from prompt 01.</role>
<task>Tag every load-bearing sentence SOURCED (a TIER 1 or 2 source with a verdict from
04 to 08), INFERRED (a reasonable step from sourced facts, the step written out), or INVENTED
(no basis in the material). Then sweep for:
- precision the source does not have (a point figure where the source gives a range);
- a hedge hardened ("may" or "estimated" turned into "will" or "is");
- a stale figure presented as current: its period ends well before {{AS_OF}} with no date;
- one source stated as consensus ("studies show").
For each, quote the line and write the defensible version.</task>
<trap>INFERRED is where invented facts hide. An inference names the sourced facts it steps
from; if you cannot name them, it is INVENTED.</trap>
<stop>If {{AS_OF}} is not set, ask for it before judging staleness and stop.</stop>
<output_format>Tagged sentence list, then the sweep table: line, issue, defensible version.</output_format>
<review_gate>{{REVIEWER}} reads every INVENTED line and deletes or sources it.</review_gate>
Click to copy
<role>The verification desk from prompt 01.</role>
<task>Re-derive, independently of your earlier answers, every load-bearing figure marked TIES
or DERIVED: re-open the source, recompute, compare. Then produce the sign-off sheet, each line
PASS or BLOCK:
- Figures: no MISMATCH, WRONG PERIOD or UNSOURCED load-bearing figure remains.
- Citations: every cited source for a load-bearing claim EXISTS.
- Quotes and statements: no CONTRADICTED or DRIFT line in a load-bearing claim.
- Open items: every UNVERIFIED item listed with the document that would close it.
Verdict: CLEARED only if all four PASS. Otherwise NOT CLEARED, with the list of what must be
fixed. If nobody acts, the default is that the document does not ship.</task>
<trap>A re-derivation that disagrees with an earlier TIES tempts an explanation. For arithmetic
there is none: the two results disagree, so the figure blocks until a named human resolves it.
Judgment findings are different; one the context explains stays closed.</trap>
<stop>Only {{SIGNER}} unblocks a BLOCK, by fixing the figure or supplying the source. A
block stops the verdict, not the analysis: finish every other line first.</stop>
<output_format>Re-derivation table, the four-line sheet, the verdict, the fix list.</output_format>
<review_gate>{{SIGNER}} signs the sheet by name and date, or the document does not ship.</review_gate>
Click to copy
<role>The verification desk from prompt 01.</role>
<task>From prompts 03 to 11 produce:
1. One line verdict from prompt 11: CLEARED or NOT CLEARED.
2. The fix list: each finding tagged CHANGES THE DECISION or WORTH A QUESTION, location,
   the source line or figure, and the fix. Then one "Checked, normal" line.
3. The source trail: every load-bearing figure with its source, location or accession, tier
   and verdict, so a reader can open each one.
4. If the output was an answer going to a client (prompt 01 WHAT C): the corrected reply,
   each figure followed by its source in brackets, no figure without one.
5. In Claude Code: write out/verification.html, one self-contained file with no network
   calls: the verdict at the top, the four-line sheet, and the tie-out table with verdicts
   coloured. Open it and confirm it renders.
Keep the report to two pages.</task>
<trap>A report that lists every checked-normal item at equal weight buries the one that
matters. The first line a reader sees is the verdict, the second is the highest-stakes fix.</trap>
<stop>If prompt 11 has not run, stop and run it; the report cannot carry a verdict the gate
did not give.</stop>
<output_format>Report, source trail, optional client reply, and the html path.</output_format>
<review_gate>{{SIGNER}} reads the source trail before the report leaves the desk.</review_gate>
Click to copy
<role>The verification desk from prompt 01, debugging the prompt 07 tool.</role>
<task>Match the symptom, apply the fix, re-run the prompt 07 first-run check before trusting
any result:
- `No matching distribution found for edgartools==5.59.1`: Python below 3.10. Rebuild the venv
  with python.org Python.
- HTTP 403 or 429 from SEC: EDGAR_IDENTITY is empty or not a real name and email, or the loop
  is faster than 10 requests a second. Set it and slow down.
- Every row NO FACT FOR PERIOD: period dates are calendar year for a non-December fiscal year,
  or period_start is set for an instant figure (assets, cash). Fix the dates; leave
  period_start blank for balance sheet items.
- Revenue MISMATCH by a round product or segment amount: a dimensioned fact was matched, or
  the claim is a segment figure. Confirm is_dimensioned is False; trace segment figures in the
  text.
- WRONG PERIOD on a figure you believe is right: open the filing and read the column header.
  The output may be right about the number and wrong about the year, which is the finding.
- MISMATCH by exactly a factor of 1,000: scale column wrong (thousands against millions).
- A revenue figure ties to an odd concept (RevenuesNetOfInterestExpense, a services line):
  the near-name filter from prompt 07 is missing. Add it and re-run the tests.</task>
<trap>A fix that makes a MISMATCH disappear by widening the tolerance hides the error it was
built to catch. Tolerance comes only from how the claim was written.</trap>
<stop>If the first-run check still fails after a fix, stop and print the full error; do not
run real claims through a tool that has not passed.</stop>
<output_format>Symptom, cause, fix applied, first-run result.</output_format>
<review_gate>{{REVIEWER}} confirms the first-run PASS lines before real claims run again.</review_gate>

From a working build to an operating system.

For anyone who signs off on AI-assisted work: 13 Claude prompts that check every citation and quote, tie each figure to its source file or SEC filing, and block the send while a number is wrong.

Path A · free

Run the build independently

The setup rail and every prompt above are free and stay free. The cost is your time, and the risk of wiring it wrong on live data.

Back to the prompts
Path B · done with you

Connect it to your operation

We would deliver a private verification workspace: the prompts loaded into your Claude account, the filing checker and your own source folders wired in, the gate run as a real pre-send control, and a retained verification log your reviewer can reopen. Done with you, then handed over so you own it.

Book a build call
data safety

Before you use live numbers

  • • Run last quarter's numbers first. Live data is not a test bed.
  • • Nothing here uploads to us. It runs in your own Claude account, on your own machine.
  • • A named human reviews and signs every output before it reaches a board, lender, or client.
  • • Mask account numbers and names to the minimum the task needs.
the fine print

Straight answers on ownership

Prompt set authored by consultance.ai. edgartools is an open source MIT library by its own authors, no affiliation implied. Your draft and sources go only to your own Claude account; we never see them. This produces a structured verification review and decision support, not a sign-off or an audit; a named human reviews and signs before any deliverable ships. Not legal, audit, accounting, or investment advice.

Bring this workflow into your operation.

Book a build callBack to the library

Want this wired into your stack instead of running it yourself? That is our AI strategy consulting service.

Newsletter

New builds, as they ship

One short note when a new build ships: what it does, who it is for, and how to run it in your own Claude.

Free. One email a week at most. Unsubscribe in one click.

More like this

Related builds

All builds
Big 4 advisory
Big 4 advisory

Big 4 Consulting Prompts for Claude

Finance and ops teams run 12 Claude prompts for Big 4 consulting workflows like financial analysis and due diligence, shipping advisory work in minutes instead of weeks.

Setup guide
Big 4 advisory
Big 4 advisory

Free Big 4 Advisory Agent Kit

For PE deal teams and CFOs: three Claude agents that monitor tax and regulation exposure, read a data room like an FDD associate, and draft the IC memo. The diligence work KPMG advisors bill at $400 an hour, run in house.

Setup guide
Big 4 advisory
Big 4 advisory

Second Opinion on Audited Financials

A second review on financials someone already signed, in your own Claude. 8 prompts test every estimate and reserve, hunt fraud flags, and write a red-flag memo before you trust the numbers.

Setup guide
Get the free kitBook a call

Share with your workflow owner.

Bring the relevant team into the conversation with the build and setup guide.

Forward by email
in one line

What is The AI Output Verification Pack?

The AI Output Verification Pack is a big 4 advisory build in the consultance.ai AI Build Library. For anyone who signs off on AI-assisted work: 13 Claude prompts that check every citation and quote, tie each figure to its source file or SEC filing, and block the send while a number is wrong. It fits CFOs, controllers, research and IR teams, audit committee chairs, and anyone who signs a report, board pack, research note or client answer that an AI helped write. Setup difficulty is Medium, with 4 plain-English steps.

What does The AI Output Verification Pack do?

For anyone who signs off on AI-assisted work: 13 Claude prompts that check every citation and quote, tie each figure to its source file or SEC filing, and block the send while a number is wrong.

Who is The AI Output Verification Pack for?

It fits CFOs, controllers, research and IR teams, audit committee chairs, and anyone who signs a report, board pack, research note or client answer that an AI helped write.

How hard is The AI Output Verification Pack to set up?

Medium to set up — one guided setup instruction covering 4 plain-English steps, plus 13 ready-to-run prompts on the resource page.

How would consultance.ai build this out?

We would deliver a private verification workspace: the prompts loaded into your Claude account, the filing checker and your own source folders wired in, the gate run as a real pre-send control, and a retained verification log your reviewer can reopen. Done with you, then handed over so you own it.

What are the licensing terms?

Prompt set authored by consultance.ai. edgartools is an open source MIT library by its own authors, no affiliation implied. Your draft and sources go only to your own Claude account; we never see them. This produces a structured verification review and decision support, not a sign-off or an audit; a named human reviews and signs before any deliverable ships. Not legal, audit, accounting, or investment advice.

Connect this build to your workflow.

Discuss how The AI Output Verification Pack fits your systems, controls, and team. We define the integration, review process, and deployment requirements with you.

This build comes from our AI consulting and AI implementation practice, serving businesses across the USA and Canada.

Book an audit