HomeLibraryServicesCase studiesBlogAbout
consultance.ai
Book a discovery call →

Services

  • AI consulting
  • AI implementation
  • AI agents
  • Workflow automation
  • RAG systems
  • Voice AI
  • Custom AI development
  • All services

Library

  • AI build library
  • Finance AI automation
  • AiToEarn content agent
  • Fincept Terminal
  • ERPNext
  • SEO + GEO Claude skill
  • Claude for Legal
  • Free Claude Code proxy

Resources

  • Case studies
  • Blog
  • Industries
  • Locations
  • Guide: AI for property management
  • Guide: AI for marketing agencies
  • Guide: AI agents vs Zapier
  • AI glossary
  • vs traditional consulting

Company

  • About
  • Book a call
  • Contact
  • Privacy
  • Terms

© 2026 consultance.ai · AI, implemented.

audit → build → deploy

← Libraryconsultance.ai
Book a build call
Finance and data

Stock Research Structured Review With Fact Check

For family office and RIA investment teams: a structured review of one listed stock in Claude, with a cited 21 section memo, the case against, and a fact check that fails any number that doesn't tie.

Free — runs in your own ClaudeMedium setup · 5 steps13 ready-to-run prompts
Set it up free — takes 3 minutes ↓Or have us wire it in →
watch first

How to run these prompts

A short walkthrough of the exact mechanic: where the prompts go, what to answer when the first one asks, and what a good first output looks like. Same for every pack in the library.

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. 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. 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. 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. 4

    Paste, send, and answer one question

    Claude reads this page, asks which computer you are on, then guides you step by step until it works. If anything errors, 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.
- 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/research-memo-fact-check#the-vault . If you cannot open links, tell me and I will paste the page in, do not guess the prompts.

I want to set up the Stock Research Structured Review With Fact Check pack, so I can write a cited research memo on one listed US company, with the case against written out and a fact check that fails the memo when a number does not tie. It is built on the method of the open source fin-research-agent repo. Walk me through it one step at a time, as a calm and practical guide, and wait for my answer before moving on. Define every term the first time you use it. I may not be a developer.

## Step one, ask me this first, nothing else
"Do you want to (A) write a memo on one company from a few filings you download yourself, or (B) set up a watchlist that pulls the figures by code and writes each memo and its fact check to files on your computer?"

Wait for my answer. Then tell me which path you picked and why.

## Path A, the Claude app, no install. Not a Terminal install.
1. Open claude.ai or the Claude app. In the left sidebar click Projects, then + New Project in the upper right. Name it Research Memo. Projects work on every plan, including free (up to five projects).
2. Open a chat in the Project. Click the model name next to the send button and choose Claude Opus 5.5 (look under More models if it is not in the first list). If it is not there at all, tell me my plan does not include it: the free plan does not.
3. Get the filings. Open https://www.sec.gov/edgar/search/ , type the company name, open the latest 10-K (the annual report) and the 10-Qs since (the quarterly reports), and save each one to my computer as a file. EDGAR is the SEC's free filing system. If the list shows an NT 10-K (a late filing notice) or an 8-K with Item 4.01 (a change of auditor), save those too: the memo must see them.
4. Add the files with the "+" button in the project knowledge base, which sits on the right side of the Project's main page.
5. Privacy: filings are public. Anything of my own I add goes only to my own Claude account, never to the author of this pack. Before I add confidential notes, open Settings, then Privacy, and turn off Help Improve our AI models, or use a Team or Enterprise plan.
6. Open a new chat in the Project, paste prompt 01 from the page, and answer its questions one at a time. Then paste prompt 02, the calibration run, and check that it prints eight MATCH lines before my own company.

Do NOT tell me any of this is "not possible" in the app. One company and a few filings is exactly what the app handles. If I paste a file path or a folder name instead of a file, tell me that is a Claude Code job and switch to Path B.

## Path B, Claude Code on my computer. A Terminal install, one command at a time.
Claude Code is Anthropic's coding tool that works on files on my computer. It needs a Pro, Max, Team, Enterprise or Console account; the free plan does not include it. Terminal (Mac) and PowerShell (Windows) are the apps where I type commands.
1. Install Claude Code. Give me only the line for my system and wait.
   Mac, Linux or WSL, in Terminal: `curl -fsSL https://claude.ai/install.sh | bash`
   Windows, in PowerShell: `irm https://claude.ai/install.ps1 | iex`
   Success: a new window, then `claude --version` prints a version number. If Windows says `'irm' is not recognized`, I am in CMD, not PowerShell: open PowerShell and try again.
2. Check Python. Type `python3 --version` (Windows: `python --version`). I need 3.11 or newer. If it is older or missing, install it from https://www.python.org/downloads/ and open a new window.
3. Check git. Type `git --version`. If missing on a Mac, macOS offers to install the command line tools: accept. On Windows install Git for Windows from https://git-scm.com/downloads/win .
4. Make a project folder and open Claude Code inside it:
   `mkdir research-memo`
   `cd research-memo`
   `claude`
5. In Claude Code, type `/model opus` and press Return. On an Anthropic account that alias selects Claude Opus 5.5.
6. Paste prompt 12 from the page. It clones the repo with `git clone https://github.com/Schadenfreunde/fin-research-agent`, reads it, writes the tests first and builds the data pull. It installs nothing from the repo's requirements file: that file is for the Google Cloud version, which this pack does not use.
7. When prompt 12 asks for my SEC identity, give my name and email. The SEC asks every automated tool to identify itself, and allows at most 10 requests a second.
8. Success: the tests pass and `python3 run.py` writes out/MSFT/datapack.json and out/MSFT/checks.md. Then paste prompt 13, then run prompts 01 to 11 on my own company from the data pack.
Common error: every SEC request refused. The identity was set after the tools loaded. Prompt 13 covers the fix.

## First session drill, both paths
1. Input: the latest 10-K of a company I already know well.
2. Run prompt 01, then prompt 02 until eight lines read MATCH, including the line that reads OPEN.
3. Run prompt 03 and check its business description against what I know. If it describes the company wrongly, stop there.
4. Run prompts 04 and 05. Open the 10-K myself and check latest year revenue and operating cash flow against the face of the statements.
5. Good output: every paragraph labelled [Fact], [Analysis] or [Inference], every figure with its period end date and filing, flags tagged by materiality, and a "Checked, normal" line.
6. Run 06 to 11. Trust the memo only after prompt 10 prints FACT CHECK: PASS and I have checked the three figures prompt 11 lists.

Bonus path, never required: the repo's full pipeline, with its web page and web search, runs on my own Google Cloud account with Gemini models, following the repo's README. This pack does not need it.
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>Colleague who has written and edited buy side initiation memos for years. Neutral: you write the case and the case against with the same care, you show your working, and you say plainly when a filing the memo needs is not in front of you. You never issue a buy, hold or sell rating; the decision belongs to the human's committee.</role>

<objective>One memo on one company that a committee member can check line by line: every figure traced to a filing, every paragraph labelled, the bear case first, and a fact check that blocks the memo when the arithmetic does not tie.</objective>

<privacy>Nothing in this pack is hosted by its author. SEC filings are public. Anything of your own you add (notes, a model, a watchlist) goes only to your own Claude account, never to us. Before adding confidential material, use a Team or Enterprise plan, or a personal plan with model training turned off in Settings, Privacy.</privacy>

<surface>
First, in one short paragraph, say whether the human is in the right place.
- ONE company, the latest 10-K and 10-Qs saved from https://www.sec.gov/edgar/search/ : Claude app, a private Project, filings uploaded. Chat is correct here. No install.
- A WATCHLIST, the same memo refreshed each quarter, figures pulled by code, outputs written to files: Claude Code with the fin-research-agent repo's free SEC tools (prompts 12 and 13).
- The repo's full pipeline (its web page, web search and parallel agents) runs on the human's own Google Cloud account with Gemini models. This pack does not need it. Say so if asked.
MODEL: Claude Opus 5.5 for every step. Claude Sonnet 5 only for a first read of a very large filing set, never for valuation, scenarios or the fact check. Never switch model inside a prompt.
WHOLE-PACK STOPS: the human pastes a file path or folder listing instead of files (a Claude Code job: say so, stop); the job is the same memo over many companies by hand (Claude Code: say so, stop); the latest 10-K arrives cut off (name what is missing, do not write from the part you saw).
ITEM STOPS never end the run: a figure that lives in a filing not loaded. Name the filing by form and period, mark the figure OPEN, carry on with the rest.
Advise, do not apologise, and do not continue past a whole-pack stop.
</surface>

<evidence_tiers>
TIER 1: the filed document itself, or an XBRL fact carrying that filing's accession number (10-K, 10-Q, 8-K, proxy, Form 4).
TIER 2: a figure keyed or computed from TIER 1 (a ratio you computed, a tool's output, an exported table, an earnings release furnished on an 8-K, which is unaudited).
TIER 3: management commentary, sell side targets, consensus, news, company marketing. TIER 3 generates a question, never a number in the valuation.
Every load-bearing figure prints its tier and source: form, period, accession or section.
</evidence_tiers>

<rules>
LABELS: every paragraph of the memo carries [Fact] (sourced), [Analysis] (your reasoning on facts) or [Inference] (a judgement beyond the facts). This is the repo's convention and the CFA Institute's fact versus opinion line.
PERIODS: every figure states its period end date. A label like "2026" is not a period.
MATERIALITY: every flag is tagged CHANGES THE DECISION, WORTH A QUESTION, or EXPLAINED BY CONTEXT (name the context). Test each against the "looks wrong, is normal" list in prompt 05 before raising it. WORTH A QUESTION only if the answer could move a figure the memo uses by more than 5 percent or change the conclusion. Conventions, rounding and disclosed one offs go in one line: "Checked, normal".
RETIRING FLAGS: a flag the context or the human explains is closed and never colours a later prompt.
ARITHMETIC IS DIFFERENT: a number re-derived two ways that disagree is a FAIL until a named human resolves it. Do not argue it away. This rule covers arithmetic only, never judgement flags.
NO RATING: report gate results against the human's own thresholds. The words buy, sell, hold do not appear as a recommendation.
</rules>

<onboarding>
Ask one block at a time and wait.
1. THE COMPANY: {{TICKER}}. Confirm CIK, legal name and fiscal year end from the 10-K cover. A 20-F filer (foreign private issuer) files no 10-Q: say so.
2. THE THESIS in the human's own words, and what the memo is for: a watchlist add, a committee vote, a position review.
3. MODE: (A) CONVERSATION, the default: the human states the thesis, you ask for what you need and run only the prompts that bear on it. (B) FULL MEMO: prompts 03 to 11 in order.
4. DATA SOURCE: (A) filings uploaded to this Project, (B) text pasted, (C) Claude Code with the repo's SEC tools writing a data pack (prompt 12), (D) a mix. Every later prompt works from this choice.
5. THRESHOLDS: {{MOS_PCT}} margin of safety, {{SKEW_MIN}} minimum skew, {{HORIZON_MONTHS}} horizon. The repo's defaults are 25 percent, 1.7 times and 24 months; the human may keep or change them.
6. PRICE: {{PRICE}} and its date. No price, the valuation reads OPEN.
</onboarding>

<adapt>
How to adapt this pack: change the thresholds in onboarding step 5, not inside prompt 07. Add a section by adding a numbered prompt before 09 and naming it in the compiler list. For banks, insurers, REITs and utilities, prompt 03 marks the software sections not applicable; add the sector's own metrics (net interest margin, combined ratio, funds from operations, allowed return) to prompt 05. Tokens to fill: {{TICKER}}, {{PRICE}}, {{MOS_PCT}}, {{SKEW_MIN}}, {{HORIZON_MONTHS}}, {{PROJECT_DIR}}.
</adapt>

<review_gate>The human confirms company, thesis, mode, data source and thresholds. Then prompt 02 before any real memo.</review_gate>
Click to copy
<task>Run the fact check on this sample first. The figures are real, pulled from SEC EDGAR on 2026-09-25 from Microsoft's FY2026 10-K. The DRAFT lines are a synthetic memo excerpt with planted errors. Work every figure yourself from the sample, compare line by line with EXPECTED OUTPUT, and print MATCH or MISMATCH per line. Judge substance, not layout. A cleared normal pattern counts as MATCH. If any line mismatches, say which and STOP. Do not start the human's company until every line matches.</task>

<sample>
FILING: Microsoft Corp 10-K, CIK 0000789019, accession 0001193125-26-323660, filed 2026-07-29, fiscal year ended 2026-06-30. USD millions.
Revenue: FY2026 331,839 | FY2025 281,724
Gross profit: FY2026 225,465 | FY2025 193,893
Share based compensation: FY2026 12,405 | FY2025 11,974
Net income: FY2026 133,749 | FY2025 101,832
Operating cash flow: FY2026 182,935 | FY2025 136,162
Capital expenditure: FY2026 115,948 | FY2025 64,551
Total assets at 2026-06-30: 758,376

DRAFT (synthetic, written by an analyst agent):
D1 [Fact] Revenue grew 17.8 percent to $331.8 billion in FY2026 (10-K).
D2 [Fact] SBC is 5.5 percent of revenue; tool flag: Clean.
D3 [Analysis] Free cash flow of about $67 billion is half of net income, a quality concern.
D4 Earnings quality table rows: FY2026, FY2025, FY2025.
D5 Scenarios: bear 25 percent at minus 30 percent, base 50 percent at plus 12 percent, bull 30 percent at plus 40 percent. E[TR] plus 10.5 percent.
D6 [Fact] Consensus price target implies 22 percent upside, so mid fair value is set 22 percent above the price.
D7 [Fact] Capex guidance from the 10-Q for the quarter ending 2026-09-30.
</sample>

<expected_output>
E1 D1 MATCH: 331,839 / 281,724 minus 1 = 17.79 percent. TIER 1. PASS.
E2 D2 FAIL, arithmetic: 12,405 / 331,839 = 3.74 percent of revenue. 5.50 percent is 12,405 / 225,465, SBC over gross profit, mislabelled. The Clean flag is not evidence: the repo tool returns Clean by default when it cannot find revenue.
E3 D3 EXPLAINED BY CONTEXT, not a flag: free cash flow 182,935 minus 115,948 = 66,987; 66,987 / 133,749 = 0.50. Operating cash flow exceeds net income, accruals (133,749 minus 182,935) / 758,376 = minus 6.49 percent, and capex rose from 64,551 to 115,948 in a disclosed build. Printing "quality concern" is a MISMATCH. Line reads: Checked, normal.
E4 D4 FAIL: FY2025 appears twice. The FY2026 10-K carries FY2025 as a comparative and the FY2025 10-K carries it again. De-duplicate on period start and end.
E5 D5 FAIL, arithmetic: probabilities sum to 25 + 50 + 30 = 105 percent. The stated 10.5 percent is 0.25 x (minus 30) + 0.50 x 12 + 0.30 x 40 on invalid weights. Blocks the skew gate until fixed.
E6 D6 FAIL, tier: a consensus target is TIER 3. It may appear as "what the market expects" with a question, never as fair value.
E7 D7 OPEN: the quarter ending 2026-09-30 had not closed on 2026-09-25, so that 10-Q does not exist yet. Name it, mark OPEN, stop for that item. Printing a capex figure is a MISMATCH. This is the STOP path firing once, in safety.
E8 VERDICT: FACT CHECK FAIL, 4 issues (D2, D4, D5, D6), 1 OPEN (D7), 1 closed as normal (D3). The memo does not go to review.
</expected_output>

<review_gate>Eight MATCH lines, with E3 closed as normal and E7 reading OPEN, then go to 03.</review_gate>
Click to copy
<role>Research colleague setting up the memo.</role>
<task>
Using the data source from prompt 01, write one page, no flags yet:
1. What the company sells, to whom, and how it gets paid, from Item 1 of the 10-K.
2. Segments and their share of revenue and operating income, latest fiscal year, with period end dates.
3. The fiscal year end, the last three filing dates, the auditor and the audit opinion type from the 10-K.
4. The human's thesis in their words, split into two or three pillars, each with the one fact that would prove it wrong.
5. Which of the 21 sections apply. Mark each not applicable with a reason (a bank has no net revenue retention; a utility has no LTV to CAC).
6. The environment: rates, the cycle stage for this industry, anything that makes last year's numbers a poor guide.
</task>
<trap>Starting with the checks. A memo that hunts for problems before it understands the business raises flags that the business model explains, and they colour everything after. The picture and the thesis come first.</trap>
<stop>If the latest 10-K is not loaded, say so and stop: do not describe the business from a press release or from memory. If an 8-K Item 4.01 (auditor change), Item 4.02 (non reliance) or an NT 10-K appears in the filing list, put an integrity banner at the top and tell the human before continuing.</stop>
<output_format>Six short blocks. Every figure with period end, TIER and source.</output_format>
<review_gate>The human confirms the pillars and the falsifiers. They set what every later prompt tests.</review_gate>
Click to copy
<role>Research associate building the data pack.</role>
<task>
Using the data source from prompt 01:
1. Filing map for the last 36 months: every 10-K, 10-Q, 8-K, proxy (DEF 14A), Form 4 and any late filing notice, one row each: form, period, filed, accession.
2. Core series for three fiscal years, each tied to the income statement, balance sheet or cash flow face: revenue, gross profit, operating income, net income, SBC, operating cash flow, capex, cash, total debt, diluted shares. One row per period, keyed on period start and end, latest filing wins.
3. Coverage log in the repo's style: source, type, date, what it supports. Say how many are TIER 1.
4. Source discrepancy table: any figure where a tool, a release and the filing face differ. The face wins; show both.
5. Insider activity from the Form 4s in the map, totalled by transaction code: S open market sales, P purchases, F shares withheld for tax (not a sale), M option or RSU settlements. Note any sale made under a 10b5-1 plan, with its adoption date from the Form 4 footnote.
</task>
<trap>The same period twice. A 10-K reports two or three years, so every prior year appears in more than one filing, and XBRL's fiscal year field marks the comparative with the NEW filing's year. Key on period start and end dates, never on the year label.</trap>
<stop>If revenue for the latest fiscal year cannot be tied to the 10-K face, stop the data pack there. Do not fall back to gross profit or a press release, and do not continue to prompt 05.</stop>
<output_format>The filing map table, the three year series table with TIER and accession per row, the coverage log, the discrepancy table, the insider table by code.</output_format>
<review_gate>Open the 10-K yourself and check latest year revenue against the face before 05.</review_gate>
Click to copy
<role>Accounting minded analyst reading the numbers behind the story.</role>
<task>
From the data pack, in the practitioner's order:
1. Growth and margins, three years, with the drivers the MD&A itself gives.
2. Cash: operating cash flow against net income, accruals ratio (net income minus operating cash flow, over total assets), free cash flow after capex, and free cash flow after SBC.
3. SBC as a percent of revenue, and diluted share count change.
4. Non GAAP bridge from the latest earnings release: list each adjustment and how many years it has recurred.
5. Balance sheet: goodwill over equity, debt maturities by year, rate type.
6. Revenue quality: deferred revenue or remaining performance obligations if subscription; days sales outstanding otherwise.
Before raising any flag, test it against LOOKS WRONG, IS NORMAL:
FCF below net income with disclosed growth capex | negative accruals | adjusted EPS above GAAP for SBC and amortisation | goodwill jump after a disclosed deal | one quarter deferred revenue dip | falling share count with positive SBC | high leverage at a utility or REIT | low interest coverage at a bank | tax rate swing explained in the tax note | recast prior years for a segment change.
Precedence: recurrence beats the normal list. A "one time" charge in four straight years is a cost.
</task>
<trap>Reading free cash flow below net income as poor quality. In a capex build it is normal; the real warning is operating cash flow below net income for two years or more. Check that first.</trap>
<stop>If the cash flow statement for the latest year is not loaded, stop the cash block and mark it OPEN; do not infer cash from the income statement.</stop>
<output_format>A table per block, each figure with the working (numerator, denominator, result), TIER and source. Then flags with materiality tags, then one "Checked, normal" line.</output_format>
<review_gate>The human reads the flags tagged CHANGES THE DECISION. Nothing else goes forward as a flag.</review_gate>
Click to copy
<role>Sector analyst who covers this company's industry.</role>
<task>
Using the data source from prompt 01:
1. Competitors the company itself names in Item 1 or Item 1A of the 10-K, plus any the human adds. For each, one line on where they compete.
2. Share or relative size only from a sourced figure (a filing, an industry body); otherwise say "not sourced".
3. Moat evidence, one line each: switching costs, network effects, scale cost, data, regulation. For each, the observable metric that would show it weakening (gross margin, retention, pricing, share).
4. What would have to be true for the thesis pillars from prompt 03 to hold against these competitors.
</task>
<trap>A moat asserted from the company's own marketing. "Industry leading" in a 10-K business section is TIER 3. A moat needs a number that would move if it eroded: gross margin versus peers, price increases that held, retention.</trap>
<stop>If no competitor is named in the filings and the human names none, stop this section and ask; do not pick peers from memory.</stop>
<output_format>Competitor table, moat table with the weakening metric, one paragraph on the pillars. Labels on every paragraph.</output_format>
<review_gate>The human confirms the peer list. It feeds the comparables in prompt 07.</review_gate>
Click to copy
<role>Valuation analyst who builds the DCF and shows every input.</role>
<task>
Using the data pack and {{PRICE}} with its date:
1. Reverse DCF first: the revenue growth and margin the current enterprise value implies over ten years at a stated discount rate.
2. Your DCF: drivers stated, WACC built from cost of equity (risk free rate with date, beta with window, equity premium stated) and after tax cost of debt, weights summing to 100 percent. Terminal growth at or below long run nominal GDP.
3. Two way sensitivity on the two drivers that move value most.
4. Comparables from the prompt 06 peer list: EV to revenue, EV to EBIT, EV to free cash flow after SBC, each with the peer's period.
5. Fair value band: low, mid, high, and the margin of safety at {{PRICE}} against the mid.
6. Gate results against the human's thresholds: margin of safety versus {{MOS_PCT}}. The skew and why now gates run in prompt 08.
</task>
<trap>Using consensus price targets or a sell side fair value as an input. They are TIER 3. They show what the market expects, which the reverse DCF already measures; they never set your band.</trap>
<stop>If no price and date are given, the band is computed and the margin of safety reads OPEN. If WACC weights do not sum to 100 percent, stop and fix before any value is printed.</stop>
<output_format>Reverse DCF table, DCF table with every input and its source, sensitivity grid, comparables table, the band, the gate line with its arithmetic.</output_format>
<review_gate>The human checks the discount rate and terminal growth, the two inputs that move value most.</review_gate>
Click to copy
<role>Risk analyst whose job is the argument the pitch left out.</role>
<task>
1. Bear case first, then base, then bull, over {{HORIZON_MONTHS}} months. Each: the few assumptions that differ, a price, the return including dividends, the drawdown, and the time to recover.
2. Probabilities summing to exactly 100 percent. E[TR] = p_bear x R_bear + p_base x R_base + p_bull x R_bull, with the working.
3. Skew = E[TR] divided by the absolute bear drawdown, against {{SKEW_MIN}}.
4. Why now: a catalyst with a calendar date inside the horizon, or none.
5. The case against, written as a colleague would argue it at committee: the three strongest reasons not to own this, each tied to a pillar from prompt 03 and to evidence.
6. Change my mind: three observable triggers each way, with thresholds.
</task>
<trap>A bear case that is the base case minus 10 percent. A real bear case follows one of the prompt 03 falsifiers to its price, which is usually further away than feels comfortable.</trap>
<stop>If probabilities do not sum to 100 percent, stop and fix before computing E[TR] or skew. If a catalyst has no date, it is not a why now catalyst; do not count it.</stop>
<output_format>Scenario table with inputs and working, the E[TR] line, the skew line, the catalyst with date, the case against, the six triggers.</output_format>
<review_gate>The human reads the case against aloud. If it sounds weak, it is not finished.</review_gate>
Click to copy
<role>Editor assembling the memo. You add no analysis and change no finding.</role>
<task>
Assemble prompts 03 to 08 into the fin-research-agent structure: executive summary; gate results against the human's thresholds (no rating); the 21 sections (thesis, market, customers, product, competition, ecosystem, go to market, retention, monetization, pricing, unit economics, financial profile, capital structure, moat, data and AI economics, execution, supply chain, risk inventory, M and A, valuation, scenarios and monitoring); coverage log; source discrepancies; research methodology; bibliography.
Every paragraph keeps its [Fact], [Analysis] or [Inference] label. Sections marked not applicable in prompt 03 print the reason in one line. The bear case appears before the bull case wherever both appear. Every date is a calendar date, never "recently" or "last quarter".
Where two sections disagree, insert [COMPILER NOTE] at the spot and list it under methodology.
</task>
<trap>Filling a not applicable section to look complete. A two paragraph "retention" section on a bank invents a metric; one line with the reason is the correct entry.</trap>
<stop>If any section from 03 to 08 is missing, do not compile around it: name the prompt that has not run and stop.</stop>
<output_format>The memo in markdown, then a list of every [COMPILER NOTE].</output_format>
<review_gate>Do not share the memo. Prompt 10 runs next.</review_gate>
Click to copy
<role>Quality analyst. You do not rewrite; you find, locate and return. This is the repo's fact checker with its checks kept and a hard block added.</role>
<task>
Run each check on the compiled memo and recompute independently from the data pack:
1. Labels: every paragraph labelled; every [Fact] cited to a form, period and section; no speculation under [Fact].
2. Tiers: no TIER 3 figure inside the valuation or scenario math.
3. Arithmetic: revenue growth; margins; SBC over revenue; accruals ratio; free cash flow; WACC weights sum to 100 percent; probabilities sum to 100 percent; E[TR]; skew; margin of safety against the mid band.
4. Periods: no duplicated period, every figure with a period end date.
5. Gates: each gate line matches its arithmetic and the human's thresholds.
6. Discrepancies: no disputed figure used as if undisputed.
7. Language: no relative dates, no rating words used as a recommendation.
Return FACT CHECK: PASS, or FACT CHECK: FAIL with issues numbered: location, type, what the correct figure is, which prompt fixes it.
Loop: send each FAIL back to the named prompt, recompile, re-check. At most three passes, the repo's default.
</task>
<trap>Explaining a FAIL away. A re-derived number that disagrees with the memo is wrong until a named human resolves it; a convincing reason why it does not matter is the failure mode. This applies to arithmetic only; a judgement flag closed as EXPLAINED BY CONTEXT stays closed.</trap>
<stop>After three passes with any arithmetic FAIL open, do not produce a clean memo. Deliver it with FACT CHECK: FAIL on the first line, the open issues listed, and the name of the person who must resolve them. The memo does not go to prompt 11.</stop>
<output_format>The verdict line, the numbered issue list, the pass count.</output_format>
<review_gate>Only a PASS goes to prompt 11.</review_gate>
Click to copy
<role>Senior editor and the internal review committee, the repo's review agent.</role>
<task>
1. Executive summary against the body: gate results, fair value band, E[TR], catalysts with dates, change my mind triggers. Any mismatch is a FAIL.
2. Thesis against risks: does the risk inventory challenge each pillar, and does the bear case follow the top risk?
3. Valuation against financial profile: are the DCF growth and margins consistent with prompt 05?
4. Tone against gates: a warm body with failed gates, or a cold body with passed gates, needs one line of explanation.
5. Completeness: every section present or marked not applicable with a reason.
Then write the committee page: company and date, the thesis in three lines, the case against in three lines, the gate lines with numbers, the three figures the committee should check themselves with their filing references, and the open items.
</task>
<trap>A committee page that reads as a recommendation. It states what the evidence shows and where it is weak; the vote is the committee's.</trap>
<stop>If the review finds a mismatch between summary and body, stop and send it back to prompt 09. Do not write the committee page over a mismatch.</stop>
<output_format>REVIEW: PASS or FAIL with numbered issues, then the one page.</output_format>
<review_gate>The human opens the 10-K and checks the three listed figures before the page goes to anyone.</review_gate>
Click to copy
<role>Engineer setting up a repeatable memo desk on the human's machine.</role>
<task>
In Claude Code, in {{PROJECT_DIR}}:
1. Clone the repo and read it before writing anything:
   git clone https://github.com/Schadenfreunde/fin-research-agent
   The repo README says git clone https://github.com/YOUR_USERNAME/fin-research-agent.git because it assumes you forked it first; clone the original as above instead. Read prompts/fact_checker.md, prompts/review_agent.md, prompts/report_compiler.md, tools/sec_filings.py and tools/earnings_quality_tools.py. Do not run deploy.sh and do not install requirements.txt: those are for the Google Cloud pipeline. The three tool modules used here need Python 3.11 or newer and nothing else.
2. Create this tree next to the clone. Write every file. Do not summarise the plan back to me. Print ls -R when done.
   memo_desk/config.json     identity for the SEC (name and email), tickers, output folder
   memo_desk/pull.py         sets SEC_USER_AGENT from config.json BEFORE importing the repo's tools, then writes out/<ticker>/datapack.json: filing map, series keyed on period start and end, latest filing wins, accession per figure
   memo_desk/checks.py       the arithmetic of prompt 10: growth, SBC over revenue, accruals, free cash flow, weights, probabilities, E[TR], skew, margin of safety
   tests/test_calibration.py unittest, from prompt 02
   run.py                    one command: pull, then write out/<ticker>/checks.md
3. Tests first. tests/test_calibration.py asserts, for Microsoft (CIK 0000789019, accession 0001193125-26-323660): FY2026 revenue 331,839,000,000 from RevenueFromContractWithCustomerExcludingAssessedTax; no period appears twice; SBC over revenue 3.74 percent; accruals ratio minus 6.49 percent; checks.py fails probabilities of 25, 50 and 30. Run python3 -m unittest discover -s tests -v and watch them fail.
4. Then write pull.py and checks.py until they pass. The repo's get_sbc_analysis returns revenue as null for Microsoft and a Clean flag; keep a test that documents that, and do not use its flag.
First run pass condition: all tests green, then python3 run.py writes out/MSFT/datapack.json and out/MSFT/checks.md with the figures above.
</task>
<trap>Setting the SEC identity after the import. tools/sec_filings.py reads SEC_USER_AGENT once, when the module loads; set it later and every request goes out with the placeholder email and can be refused.</trap>
<stop>If the calibration test fails on the revenue figure, stop and report the value returned and the XBRL tag used. Do not loosen the test.</stop>
<output_format>The tree, the failing then passing test output, the first run output.</output_format>
<review_gate>Done when a new ticker in config.json and one python3 run.py call writes its data pack and checks. Model: Claude Opus 5.5 for design and debugging, Claude Sonnet 5 acceptable for writing many similar files.</review_gate>
Click to copy
<role>Engineer who has run EDGAR pulls in production.</role>
<task>
In the project from prompt 12, add each guard with a test, then rerun:
1. Refused requests (403): identity missing or set after import. Fail fast if config.json has no email.
2. Rate: the SEC allows 10 requests a second. Keep calls sequential, cache each response to out/cache, never parallel threads.
3. Revenue tag: companies move between Revenues and RevenueFromContractWithCustomerExcludingAssessedTax. Try both, keep the one whose latest period matches the latest 10-K, log which.
4. Year labels: XBRL's fy field marks a comparative with the new filing's year. Use start and end dates only.
5. Foreign filers: a 20-F company reports under the ifrs-full taxonomy and files no 10-Q. Detect and stop with a message.
6. Integrity: flag any NT 10-K, NT 10-Q, 8-K Item 4.01 or 4.02 in the filing map at the top of checks.md.
Then the memo loop: for each ticker, Claude Code reads datapack.json and runs prompts 03 to 11 of this pack, writing out/<ticker>/sections/NN.md, memo.md and factcheck.md, with checks.py as the arithmetic gate, three passes at most.
Research path: https://www.sec.gov/about/developer-resources for identity and rate rules; https://www.sec.gov/search-filings/edgar-application-programming-interfaces for the companyconcept and submissions APIs; the repo's prompts folder for each role's full instructions; the 10-K's own statements when a tag disagrees.
</task>
<trap>A green run that silently skipped a company. Log every ticker with filings found, revenue tied, and OPEN items; a ticker with no 10-K found is an error, not a quiet success.</trap>
<stop>If a fix needs the calibration test loosened, stop and report why instead.</stop>
<output_format>The new tests, the rerun output, the run log.</output_format>
<review_gate>Definition of done: the watchlist runs in one command, every memo ties latest revenue to TIER 1, and every open item is named. Next: schedule the run after each 10-Q; add the repo's macro report prompts; or run the repo's full Google Cloud pipeline for its web search and web page, on your own account.</review_gate>
Source repo
https://github.com/Schadenfreunde/fin-research-agent ↗

The code is public and free. The setup instruction above installs and wires it for you. You never need to open this link.

Got the prompts. Want them wired into your actual stack? We map that on a free AI audit.

Book the free audit

Rent it forever, or own it once.

For family office and RIA investment teams: a structured review of one listed stock in Claude, with a cited 21 section memo, the case against, and a fact check that fails any number that doesn't tie.

Path A · free

You just did it

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

We wire it into your business

We would set it up with you: your watchlist, your house memo format, your thresholds, the refresh after every 10-Q scheduled on your machine, and the output landing where your committee already reads. Reply wire it for a 30-minute slot.

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.
  • • Wiring the open-source piece to real systems? Keep keys out of public code and add access control first — or have us do that part.
the fine print

Credit the original author

Prompt set authored by consultance.ai, built on the method of fin-research-agent (MIT, used under its own license). Nothing is hosted by us: SEC filings are public, and anything of your own you add goes only to your own Claude account, never to us. Use a Team or Enterprise plan, or turn off model training, before adding confidential notes. Research for your own committee, not investment advice and not a rating.

Want this running in your business, not just your laptop? We build it and hand you the keys.

Book a build callBack to the library

Want this wired into your stack instead of running it yourself? That is our AI deal desk and finance automation service.

the newsletter

AI news worth opening.

The AI tools, launches, and shifts that actually matter, in plain English. New library drops the moment they land.

100% freeNo paywall, everUnsubscribe anytime

More like this

Other builds worth a weekend

All repos →
Finance and data

Free Portfolio Quant Research Desk

For family offices and serious individual investors: backtest an idea on your own portfolio history with free market data, a scheduled tax loss harvest, and a deflated Sharpe model risk gate, in your own Claude.

Setup guide →
Finance and data

Private Equity Deal Sourcing Playbook

For lower and mid market private equity origination teams: turn one mandate into a ranked, owner verified proprietary deal flow pipeline. Six Claude agents with Exa and Scrapling replace a rented deal sourcing subscription.

Setup guide →
Finance and data

Free Jira Alternative for Deal Teams

For PE deal teams and IC members still tracking a live process on a sprint board: a self hosted deal tracker your Claude can write to, plus 10 prompts that move a workstream only when the document actually lands.

Setup guide →
Get the free kitBook a call

Forward this to whoever owns the workflow.

The person drowning in this every week is the one who'll actually want it.

Forward by email
in one line

What is Stock Research Structured Review With Fact Check?

Stock Research Structured Review With Fact Check is a finance and data build in the consultance.ai AI Build Library. For family office and RIA investment teams: a structured review of one listed stock in Claude, with a cited 21 section memo, the case against, and a fact check that fails any number that doesn't tie. It fits family office CIOs, small RIA CIOs and solo allocators who run a public equity sleeve and want every watchlist name written up with sources, a bear case and a checked set of numbers before it reaches the committee. Setup difficulty is Medium, with 5 plain-English steps.

What does Stock Research Structured Review With Fact Check do?

For family office and RIA investment teams: a structured review of one listed stock in Claude, with a cited 21 section memo, the case against, and a fact check that fails any number that doesn't tie.

Who is Stock Research Structured Review With Fact Check for?

It fits family office CIOs, small RIA CIOs and solo allocators who run a public equity sleeve and want every watchlist name written up with sources, a bear case and a checked set of numbers before it reaches the committee.

How hard is Stock Research Structured Review With Fact Check to set up?

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

How would consultance.ai build this out?

We would set it up with you: your watchlist, your house memo format, your thresholds, the refresh after every 10-Q scheduled on your machine, and the output landing where your committee already reads. Reply wire it for a 30-minute slot.

What are the licensing terms?

Prompt set authored by consultance.ai, built on the method of fin-research-agent (MIT, used under its own license). Nothing is hosted by us: SEC filings are public, and anything of your own you add goes only to your own Claude account, never to us. Use a Team or Enterprise plan, or turn off model training, before adding confidential notes. Research for your own committee, not investment advice and not a rating.

Want this built into your workflow?

Stock Research Structured Review With Fact Check is the starting point. On a free AI audit we map where it fits your stack and what consultance.ai would build around it.

This build comes from our AI consulting and AI implementation practice — see the full AI in finance guide and how we work with CFO teams.

Book your free AI audit