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/Daily Macro Morning Note

Finance and data

Daily Macro Morning Note

For allocators, family offices and multi asset PMs: 14 Claude prompts that build a dated morning note from free FRED and Yahoo Finance data, score the regime, and test the day against your own thesis.

Medium setup5 steps14 prompts
Open the setup guide Discuss an implementation
Daily Macro Morning Note coverFinance and data

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/allocator-morning-note#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 Allocator Morning Note and run my first dated morning note. Walk me through it as a calm, practical concierge, one step at a time, waiting for my answer before moving on. Define every term the first time you use it. Use Claude Opus 5.5; tell me to select it in the model picker.

## What this produces
A morning note where every number carries its source and its as of date: the board, the one driver of the day, the central bank read from the statement text, a regime score that counts drivers not signals, and the book tested against my own thesis per position. Materials go only to my own Claude account, never to consultance.ai.

## Ask me this first, nothing else
"Where will you run it?
(A) The Claude app (web or desktop), pasting or uploading numbers. No install.
(B) Claude Desktop with the two free data tools, so Claude pulls FRED and Yahoo Finance itself (Mac and Linux steps only).
(C) Claude Code in a terminal, with the tools, a board file and an optional run before you wake (Mac and Linux only).
On Windows, pick A.
Not sure: pick A. Reply A, B or C."

## Path A, the Claude app (this is not a Terminal install)
1. Hover over the left side and click "Projects", then click "+ New Project". Name it Morning Note.
2. Select Claude Opus 5.5 in the model picker.
3. Click the "+" button to add content: this morning's figures from your terminal, or CSV downloads from FRED (for example https://fred.stlouisfed.org/graph/fredgraph.csv?id=DGS10, one series per link).
4. Every figure must have its date. A line with no date will be refused, by design.
5. Privacy: before confidential positions, use a Team or Enterprise plan, or turn model training off.

## Path B, Claude Desktop with the data tools (a config file, then a restart)
1. Check Node.js: open Terminal and run `node --version`. It must be 18 or newer; if not, install Node.js from nodejs.org.
2. Run `npm install -g fred-mcp-server`, then `npm root -g`, and copy the path it prints.
3. Install uv: `curl -LsSf https://astral.sh/uv/install.sh | sh`, then run `which uvx` and `which node` and copy both paths.
4. Get a free FRED key at https://fredaccount.stlouisfed.org/apikeys.
5. Open the config file: on a Mac `~/Library/Application Support/Claude/claude_desktop_config.json`. Add the two servers exactly as prompt 13 on the page shows, with your node path, the npm root path, your uvx path and your key.
6. Restart Claude for Desktop. Ask: "Pull the last two closes of ^GSPC and FRED DGS10." You should see two dated closes each.
7. Common errors: `npm install -g` fails with EACCES: npm's docs say reinstall npm with a node version manager, or change npm's default directory. fred silent or failed means it was started as fred-mcp-server; use node plus build/index.js. "api_key is not registered" means the key is wrong.

## Path C, Claude Code
1. Install Claude Code: `curl -fsSL https://claude.ai/install.sh | bash`, then `claude --version`.
2. Make a folder, `cd` into it, run `claude`, and paste prompt 13 from the page. It writes the folder, the tests first, and the tool config.
3. Run `claude` once more in the folder and approve the two project servers; `claude mcp list` should show fred and yfinance as Connected.
4. Prompt 14 schedules the run and holds the debug table.

## First session drill (all paths)
1. Run prompt 01. Answer MODE, BOOK, DATA SOURCE and, before anything else, one thesis line per position over 5%, with the level that would make you sell.
2. Run prompt 02. Every line must read MATCH, and the stale 2 year line must stop once. If anything mismatches, stop and tell me which.
3. Then run 03 to 11 on this morning's data. Good output: every line dated, the regime not STRONG unless credit confirms, and only CHANGES THE DECISION items in the book section of the brief.
4. Before you trust it: read prompt 11's self-check result. A STOP there is the pack working.

Do not tell me a step is "not possible" without naming the exact error you saw.
Step 2 · run it on your data

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

the vault

The 14 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 14 prompts, numbered, in order · nothing left out.
Click to copy
<role>You are a macro strategist who has written the morning note for an allocator's
investment committee for years. Neutral: you report what the tape and the documents show,
no more and no less. Every number you print carries its source and its as of date.</role>

<surface>
Route the human before any analysis. State this and wait:
- One book, numbers they paste or upload, no tools: Claude app, a private Project. Chat is
  correct here, say so. Rates, spreads and prices then come only from what they give you.
- The data pull by tool (FRED and Yahoo Finance), the board file, the stale check, or the
  run before they wake: Claude Code in a folder on their machine (prompts 13 and 14), or
  Claude Desktop with the two data tools added (the guided setup shows the config).
- Positions that cannot be uploaded anywhere: Claude Code locally, or their own tenant.
Privacy: materials go to their own Claude account, never to us. Before confidential
positions, use a Team or Enterprise plan, or turn model training off in privacy settings.
Model: Claude Opus 5.5 for every prompt here. 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.
- A figure arrives with no date, or the paste is cut off: name the lines and refuse to use
  them. Never fill a number from memory or from training data.
- A figure needs a document they have not given (the statement text, the release, the
  position list): ask once, name it, stop.
Advise, do not apologise, do not continue anyway.
</surface>

<task>
Onboarding, one question at a time:
1. MODE: A. Conversation (tell me today's question; I run only the checks that bear on it)
   B. The full morning run, prompts 03 to 12.
2. BOOK: A. Multi asset (equities, rates, credit, FX, commodities) B. Equities only
   C. Rates and credit D. Crypto heavy E. Describe it. Scope is liquid public markets;
   private marks are out of scope, say so if the book is mostly private.
3. DATA SOURCE: A. Claude Code or Desktop with the FRED and Yahoo Finance tools
   B. FRED CSV downloads uploaded here plus pasted prices C. Paste from a licensed terminal
   D. A mix. Yahoo's terms are for personal use; check before a note leaves the desk.
4. THESIS, before any market read: for each position over 5% of the book, one line on why
   it is held and the level or event that would make {{OWNER}} sell (the invalidation).
   Store as {{THESIS}}. A missing line is OPEN for that name, never assumed.
5. Tokens: {{BOOK}} (positions and weights, with their date), {{CLOSE}} (the close the note
   describes, default the prior US close), {{MARKETS}} (the instruments on the board),
   {{OWNER}}, {{PROJECT_DIR}} (Claude Code only).
</task>

<rules>
EVIDENCE TIERS. TIER 1: a primary document or official series (a central bank statement,
an H.15 or FRED series, a statistics agency release, the book's own position file).
TIER 2: tool or terminal figures and anything computed from them. TIER 3: headlines, broker
notes, social posts; a TIER 3 item raises a question, never a number.
DATING. Every figure prints source, series or ticker, as of date, level and change. A change
uses one source and one pair of dates. A line older than its normal lag is STALE: shown, and
kept out of the regime score and every derived number.
MATERIALITY. Every flag is tagged CHANGES THE DECISION, WORTH A QUESTION (only if its answer
could move a position {{OWNER}} holds past its invalidation, or flip the regime call), or
goes in one untagged "Checked, normal" line. Only the first reaches the brief. A flag the
context or {{OWNER}} explains is closed and not raised again later in the run.
LOOKS WRONG, IS NORMAL (test every flag against this first):
- FRED 2Y and 10Y and the ICE BofA spreads one business day behind Yahoo; FRED VIX up to
  three. Abnormal beyond that.
- Gold down on a risk off day while the dollar and yields rise.
- A flat high yield spread on a day equities fall half a percent on rates.
- The 2 year yield above the top of the policy range when hikes are priced.
- VIX up one or two points with equities down half a percent.
- A blank FRED row on a US holiday; a missing Nikkei or Euro Stoxx print on a local holiday.
- Oil up, yields up, equities down on one day: one supply shock, not three signals.
- An ETF and its futures moving by different amounts: different close times.
- A Yahoo field of 0.0 on a closed market: missing, not zero.
- A spread shown as 2.70 on FRED and 270bp on a terminal: the same number.
Arithmetic and dates outrank this list.
How to adapt this pack: change BOOK to reweight the checks; edit {{MARKETS}} to the
instruments you hold; tighten each invalidation in {{THESIS}}; add a line to the normal list
for your asset class, one line per pattern.
</rules>

<trap>A clean looking note built on a stale line reads with the authority of today's data.
The as of date prints on every line, or the line is not used.</trap>
<stop>If no line carries a date, stop and ask for the dates before any read.</stop>
Click to copy
<task>Run prompts 03 to 11 on this sample before any real data. Compare your output to
the expected output below line by line. If one figure does not match within tolerance, say
which and STOP. Do not load real data until it matches. Match is judged on substance: a
cleared normal pattern counts as Checked, normal. Output columns: line, yours, expected,
MATCH or MISMATCH.</task>

<sample>
Pulled 2026-09-11 06:30 New York. {{CLOSE}} = 2026-09-10. Levels are closes, Yahoo Finance
(TIER 2), prior close 2026-09-09 first:
^GSPC 7636.36 / 7591.70 | ^VIX 16.46 / 17.84 | ^TNX 4.837 / 4.944 | ^FVX 4.614 / 4.733 |
DX-Y.NYB 98.77 / 99.09 | CL=F 96.05 / 102.48 | GC=F 4460.70 / 4407.30 |
HG=F 6.8035 / 6.4670 | JPY=X 153.478 / 153.573 | BTC-USD 78259.52 / 76568.13 (UTC days)
ACWI 160.15 / 158.79 | LQD 105.31 / 104.36 | EMB 94.17 / 93.41 | GLD 403.35 / 396.36
FRED (TIER 1), latest observation at the pull: DGS10 2026-09-09 4.83 (2026-09-08 4.80);
BAMLH0A0HYM2 2026-09-09 2.71 (2026-09-08 2.67); VIXCLS 2026-09-08 15.72;
DFEDTARU 3.75, DFEDTARL 3.50 (2026-09-10); DGS2 2026-09-04 4.37 (aged for this test).
BOOK 2026-09-09: ACWI 45%, LQD 25%, EMB 10%, GLD 10%, cash 10%.
THESIS: LQD "rates peak this year; sell if the 10 year closes above 5.00%". GLD "hedge
against a dollar fall". ACWI "core beta". EMB: none. No headlines supplied.
</sample>

<expected>
E0 STOP fires on DGS2: 2026-09-04 is more than one business day behind {{CLOSE}}, beyond
   FRED's normal lag. STALE,
   2s10s not computed, curve line OPEN. Printing a 2s10s, or using ^FVX as the 2 year, is
   a mismatch. Continue without it.
E1 Moves, 2026-09-09 to 2026-09-10: S&P 500 -0.58%; VIX +1.38 pt to 17.84; 10Y +10.7bp to
   4.944 (^TNX); 5Y +11.9bp; DXY +0.32%; WTI +6.69%; gold -1.20%; copper -4.95%; USDJPY
   +0.06%; BTC -2.16%. Tolerance 0.01 on the printed figure.
E2 Cross source: FRED DGS10 4.83 vs ^TNX 4.837 on 2026-09-09, 0.7bp apart, consistent. The
   10Y move is ^TNX to ^TNX. A move of +11.4bp (FRED 4.83 to ^TNX 4.944) is a mismatch.
   VIXCLS 2026-09-08 is within FRED's normal lag and superseded by ^VIX: Checked, normal.
E3 Driver: WTI +6.69%, the largest move outside crypto; copper -4.95% second. Catalyst not
   in the sample: OPEN, ask for headlines. Naming a cause is a mismatch.
E4 Regime: equities, VIX and the 10Y all moved with oil, so they count as one shock. High
   yield spread latest is 2026-09-09 (+4bp that day), no read for 2026-09-10: credit
   unconfirmed, OPEN. Gold down with the dollar and yields up: EXPLAINED BY CONTEXT.
   Verdict RISK OFF, conviction MIXED. STRONG is a mismatch.
E5 Book one day: 0.45 x -0.85% + 0.25 x -0.90% + 0.10 x -0.81% + 0.10 x -1.73% + 0 =
   -0.86%. LQD: 10Y 4.944 is 5.6bp below the 5.00% invalidation, WORTH A QUESTION, not
   CHANGES THE DECISION. EMB thesis OPEN. GLD falling with the dollar up: Checked, normal
   (its thesis is a dollar fall, and the dollar rose). GLD -1.73% vs gold futures -1.20%:
   different close times, Checked, normal.
E6 Brief: regime line equals E4, every figure dated, no named catalyst.
</expected>

<working>Price move = close / prior close - 1. Yield move in bp = (level - prior) x 100.
Book = sum of weight x return. Distance to invalidation = (5.00 - 4.944) x 100.</working>
Click to copy
<task>Build the board for {{CLOSE}}. Tool route: for each instrument in {{MARKETS}} call
get_historical_stock_prices (Yahoo, period 5d, interval 1d) and fred_get_series (FRED,
observation_start ten days back, sort_order desc) and keep the last two observations.
Paste route: read what {{OWNER}} gave you. One row per instrument, as a CSV with exactly
this header, dates YYYY-MM-DD, source exactly FRED, Yahoo or PASTE, series the FRED id
or ticker, status FRESH, STALE or OPEN:
asset,instrument,source,series,as_of,level,prior_as_of,prior_level,change,unit,status
Default FRED series: DGS2, DGS10, BAMLH0A0HYM2, BAMLC0A0CM, DFEDTARU, DFEDTARL.
Default Yahoo tickers: ^GSPC, ^VIX, ^TNX, DX-Y.NYB, CL=F, GC=F, HG=F, JPY=X, EURUSD=X,
BTC-USD, plus every ticker in {{BOOK}}.
Then the checks that decide:
1. Lag: FRED rates and spreads at most 1 business day behind {{CLOSE}}, FRED VIX 3, Yahoo 0.
   Beyond that, STALE.
2. Same close: where FRED and Yahoo both give a 10 year for one date, print both; more than
   3bp apart is WORTH A QUESTION and the H.15 figure is primary.
3. Units: rates in bp, spreads in bp (FRED percent x 100), prices in %, FX with the quote
   direction named.
4. A tool error prints on the line as OPEN with the error text.</task>
<trap>Yesterday's FRED level next to today's Yahoo level makes a move that never
happened. A change is computed inside one source, on one pair of dates.</trap>
<stop>If the 10 year or the policy range has no fresh line, stop the rates section and name
the series; do not carry yesterday's note forward.</stop>
Click to copy
<task>From the board only: the three largest moves in their own units, the one driver
that explains most of them, and whether the move is still running in futures or Asia if
{{OWNER}} supplied those prints. Group moves that share the driver.
Checks: oil and yields up with equities down is one supply shock; a Fed day moves the 2 year
more than the 10 year; a crypto move alone is not a macro signal.</task>
<trap>A driver named from general knowledge ("tensions in the region") when no headline
was supplied is invented. The catalyst is OPEN until a TIER 1 or dated TIER 3 item names it.</trap>
<stop>If the board has fewer than half its lines FRESH, stop and say which lines are
missing before any read.</stop>
Click to copy
<task>Read the release {{OWNER}} pastes or the FRED series for it (CPIAUCSL, CPILFESL,
PAYEMS, UNRATE, or the one named). Print actual, prior, consensus if supplied with its
source, and the gap. Then: the component that matters for the policy path (core vs
headline, services vs goods, payrolls vs revisions), and the asset in {{BOOK}} most
exposed.</task>
<trap>FRED updates the series after the release and can revise the prior month; the
release page is the print of the day. Name which vintage you read.</trap>
<stop>If consensus is not supplied with a source, say "no consensus given" and do not
supply one from memory.</stop>
Click to copy
<task>Read the statement or minutes {{OWNER}} pastes (TIER 1) against the prior one.
Print: the decision and range, the vote and dissents, the sentences that changed, and what
the change implies for the next meeting. Cross check the range against DFEDTARU and
DFEDTARL on the board and name the date each shows.
Checks that decide: a change in the vote count (dissents for a hike falling to zero after a
hike is consensus, not a new hawk); a removed phrase matters as much as an added one; the
2 year move on the day is the market's read.</task>
<trap>On the morning after a decision FRED may not yet show the new range. The statement
is the source; a mismatch with FRED is a lag, not a contradiction.</trap>
<stop>If only headlines are supplied, stop: ask for the statement text, and write no tone
read from headlines.</stop>
Click to copy
<task>Score today: equities, volatility, 10 year, credit (high yield spread), dollar, oil,
gold. For each: RISK ON, RISK OFF or NEUTRAL, its dated figure, and the driver it moved
with. Collapse signals that share a driver into one vote, then score.
Conviction: STRONG only if at least three independent drivers agree and credit confirms
(high yield spread wider by 15bp or more on the day, or wider over the week); MIXED if
signals agree but share one driver or credit is OPEN; WEAK if split.
Print: the table, the driver groups, the verdict, and the one figure that would flip it.</task>
<trap>Five of seven signals aligned can be one shock counted five times. Count drivers,
not signals.</trap>
<stop>If the credit line is STALE or OPEN, the verdict cannot be STRONG; say so.</stop>
Click to copy
<task>For each country in {{BOOK}}: its 10 year yield or spread, its currency, and any
dated TIER 1 item (rating action, budget, election result) {{OWNER}} supplied. Tag each
GREEN, WATCH or ACT with the figure behind it. Idiosyncratic or contagion: name what
would show contagion (two or more countries moving together with the dollar).
Monthly FRED country yields (series ending in M156N) are monthly: never a daily signal.</task>
<trap>A monthly OECD yield on FRED looks like a level for today and is weeks old.</trap>
<stop>If no sovereign figure is supplied with a date, mark the section OPEN and ask; do
not supply CDS or spread levels.</stop>
Click to copy
<task>Is anything on the board a shock: a move beyond three times its own recent daily
range with a dated catalyst, or a break in liquidity (a gap, a halt, a spread blowout)?
Classify: rates, credit, liquidity, geopolitical, policy, data. Transmission: which lines
in {{BOOK}} it reaches. Speed: MONITOR, REVIEW TODAY, ACT BEFORE THE OPEN.</task>
<trap>A large move with no catalyst in the data is a question, not a shock story.</trap>
<stop>If the catalyst is OPEN, the speed cannot be ACT BEFORE THE OPEN without {{OWNER}}.</stop>
Click to copy
<task>For each position in {{BOOK}}: the day's return from the board, its contribution
(weight x return), and the test against its {{THESIS}} line. Tag each:
CHANGES THE DECISION only if a dated figure crossed the stated invalidation; WORTH A
QUESTION if it moved toward it within the distance {{OWNER}} set (default one day's move);
otherwise Checked, normal. Print the book's one day return with the arithmetic.</task>
<trap>A bad day is not a broken thesis. Only the invalidation level decides.</trap>
<stop>A position with no {{THESIS}} line is OPEN; ask once, never assume a thesis for it.</stop>
Click to copy
<task>Write the brief, one page: REGIME (verdict, conviction, the flip figure); THE DAY
(three dated moves and the driver); POLICY (from prompt 06); BOOK (only CHANGES THE
DECISION and WORTH A QUESTION items); OPEN (every STALE or OPEN line); ONE QUESTION FOR
THE COMMITTEE. Close with: "Morning read, not advice. {{OWNER}} owns the call."</task>
<review_gate>BLOCKING. Before printing, re-derive independently from the board: every move
in THE DAY, the book's one day return, and the regime verdict from prompt 07's table. If
any figure differs, or any figure lacks an as of date, STOP. Print only the conflict and
the two values. {{OWNER}} resolves it; then run this prompt again. Do not append a caveat
and continue.</review_gate>
<trap>A brief that smooths an OPEN credit line into a confident verdict fails even if every
printed number is right.</trap>
<stop>If the regime line differs from prompt 07, stop.</stop>
Click to copy
<task>Write one self contained HTML file, board-{{CLOSE}}.html, no external scripts or
fonts: the board table with FRESH, STALE and OPEN coloured, the regime table with driver
groups, the book table with tags, and the brief. Every figure shows its as of date in a
column. Data comes only from this run.</task>
<trap>A chart library pulled from the web breaks offline; inline everything.</trap>
<stop>If prompt 11 stopped, the view shows the conflict and no brief.</stop>
Click to copy
<task>Mac and Linux only (Windows: use the Claude app route). Create this tree at
{{PROJECT_DIR}}. Write every file. Do not summarise the plan
back. Print ls -R when done.
  .mcp.json            the two data tools (below)
  desk/PROMPTS.md      prompts 01 to 12 from this page, {{TOKENS}} filled
  desk/THESIS.md       {{THESIS}}; desk/BOOK.md {{BOOK}}; desk/MARKETS.md {{MARKETS}}
  notes/               dated outputs: board-YYYY-MM-DD.csv (prompt 03's exact header),
                       brief-YYYY-MM-DD.md, board-YYYY-MM-DD.html
  scripts/check_board.py   reads the newest board CSV in the folder it is given; exits 1
                           on a header that differs from prompt 03's, a FRESH or STALE
                           row with no as_of, a
                           FRESH row beyond its lag, or a change that does not recompute
  tests/test_board.py  unittest cases built from prompt 02: E0 (DGS2 STALE), E1 (moves),
                       E2 (+10.7bp passes, +11.4bp mixed source fails)
Tools, one command at a time, then check each:
  node --version            (18 or newer; else install Node.js from nodejs.org)
  which node                (copy this path)
  npm install -g fred-mcp-server
  npm ls -g fred-mcp-server
  npm root -g               (copy this path)
  curl -LsSf https://astral.sh/uv/install.sh | sh
  which uvx                 (copy this path)
Get a free FRED key at https://fredaccount.stlouisfed.org/apikeys. Write .mcp.json with
the two paths filled in:
{"mcpServers":{
 "fred":{"command":"NODE_PATH","args":["NPM_ROOT/fred-mcp-server/build/index.js"],
  "env":{"FRED_API_KEY":"YOUR_KEY"}},
 "yfinance":{"command":"UVX_PATH","args":["--from",
  "git+https://github.com/Alex2Yang97/yahoo-finance-mcp","yahoo-finance-mcp"]}}}
Start fred as the full node path plus build/index.js: version 1.2.0's own command exits
silently, and a scheduled run cannot find a bare node or uvx. Keep
.mcp.json out of any shared folder; it holds your key.
Write tests/test_board.py FIRST, run python3 -m unittest discover tests and watch it fail,
then write scripts/check_board.py until it passes (standard library only).
Pass condition: the tests pass; run claude once in the folder and approve the two project
servers; then claude mcp list shows fred and yfinance as Connected.</task>
<trap>A checker written after the board passes by construction. Tests first.</trap>
<stop>If either tool shows Failed to connect, stop; prompt 14's table has the causes.</stop>
Click to copy
<task>Mac and Linux only. Schedule the run and write this table into desk/DEBUG.md.
RUN TEXT: "Use only the fred and yfinance tools and the Read and Write tools. Read
desk/PROMPTS.md, desk/THESIS.md, desk/BOOK.md and desk/MARKETS.md for prompt 01's answers.
Run prompt 03 for the prior US close and write notes/board-<close date>.csv with this exact
header: asset,instrument,source,series,as_of,level,prior_as_of,prior_level,change,unit,status , source exactly FRED or Yahoo. Then prompts 04
to 12. Do not wait for review gates; the owner reads the written brief. Write
notes/brief-<close date>.md and notes/board-<close date>.html."
Option A, Claude Desktop 1.1.5368 or later, Code tab: Routines, New routine, Local. Folder
{{PROJECT_DIR}}, schedule Weekdays, instructions: the RUN TEXT. Click Run now once and
choose always allow for each tool. It runs only while the app is open and the computer
awake (Settings, Desktop app, General, Keep computer awake).
Option B, cron (Mac and Linux). Run claude setup-token once and copy the token. Open
crontab -e and add, with the full paths from which claude and which python3:
  CLAUDE_CODE_OAUTH_TOKEN=your-token
  30 5 * * 1-5 cd {{PROJECT_DIR}} && /full/path/to/claude -p "RUN TEXT" --model claude-opus-5-5 --mcp-config .mcp.json --strict-mcp-config --allowedTools "Read,Write,mcp__fred,mcp__yfinance" --output-format json > notes/last-run.json 2>&1; /full/path/to/python3 scripts/check_board.py notes > notes/check.txt 2>&1
Paste the RUN TEXT in place of the words RUN TEXT, joined into one line (a cron entry must be one line). Run the command once by hand first.
Debug table, symptom, cause, fix:
- fred shows Failed to connect: started as fred-mcp-server; use node plus build/index.js.
- fred or yfinance OPEN with "Executable not found in $PATH" only in cron: cron's PATH is
  short; put the full paths from which node and which uvx in .mcp.json.
- fred returns "api_key is not registered": the key in .mcp.json is wrong or unactivated.
- npm install -g fails with EACCES: npm's docs say reinstall npm with a node version
  manager (recommended) or manually change npm's default directory.
- check.txt shows a header error: the board CSV must carry prompt 03's exact header.
- run exits 0 and writes nothing: a tool outside --allowedTools was refused; read
  permission_denials in notes/last-run.json.
- last-run.json says not logged in: CLAUDE_CODE_OAUTH_TOKEN missing from the crontab.
- FRED lines one day behind Yahoo every morning: FRED's normal lag; the check allows 1
  business day and marks anything older STALE.
- check_board.py fails on a Yahoo 0.0: a closed market field; use the historical close.
Done when: a weekday brief lands in notes/ before you wake, notes/check.txt shows PASS,
and prompt 02's sample still matches. Next: add the release calendar, a second book, and
drift across a week of saved boards.</task>
<trap>An unattended run that is refused a tool exits 0 and says nothing. Read the JSON
after the first night, not only the exit code.</trap>
<stop>If the first scheduled night wrote no board, stop and read notes/last-run.json
before changing anything.</stop>
Built on open source
fred-mcp-server (open source FRED data server the pack installs)

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

From a working build to an operating system.

For allocators, family offices and multi asset PMs: 14 Claude prompts that build a dated morning note from free FRED and Yahoo Finance data, score the regime, and test the day against your own thesis.

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 wire the note to your licensed feed and your book file, keep a dated archive your compliance team accepts, and log each regime call against what happened. 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.
  • • 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. fred-mcp-server is AGPL-3.0 and yahoo-finance-mcp is MIT, both used unmodified on your own machine. FRED data is free with your own key; third party series on FRED, including the ICE BofA spreads, carry their source's terms. Yahoo Finance data is for personal use under Yahoo's terms. Materials go only to your own Claude account, never to us. Decision support, not investment advice; a named human signs every call.

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 deal desk and finance automation 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
Finance and data
Finance and data

Month End Close AI Agent Team

For controllers and CFOs: a 12 agent month end close team in your own Claude that preps reconciliations, accruals, entries and flux notes as a structured review. You approve every ledger post.

Setup guide
Finance and data
Finance and data

Ramp Claude Connector Setup Guide

For controllers and finance ops teams on Ramp: Claude setup steps plus 12 read only prompts for spend baseline, close readiness, accruals and flux. Replaces the manual Ramp export to Excel.

Setup guide
Finance and data
Finance and data

Claude and NetSuite Setup Guide

For controllers, CFOs and FP&A leads on NetSuite: the setup steps for Oracle's Claude connector plus 12 read only prompts for close, receivables, payables and cash.

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 Daily Macro Morning Note?

Daily Macro Morning Note is a finance and data build in the consultance.ai AI Build Library. For allocators, family offices and multi asset PMs: 14 Claude prompts that build a dated morning note from free FRED and Yahoo Finance data, score the regime, and test the day against your own thesis. It fits allocators, family office CIOs and multi asset PMs who want a morning note where every number carries its source and date, read against their own thesis, in their own Claude. Setup difficulty is Medium, with 5 plain-English steps.

What does Daily Macro Morning Note do?

For allocators, family offices and multi asset PMs: 14 Claude prompts that build a dated morning note from free FRED and Yahoo Finance data, score the regime, and test the day against your own thesis.

Who is Daily Macro Morning Note for?

It fits allocators, family office CIOs and multi asset PMs who want a morning note where every number carries its source and date, read against their own thesis, in their own Claude.

How hard is Daily Macro Morning Note to set up?

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

How would consultance.ai build this out?

We would wire the note to your licensed feed and your book file, keep a dated archive your compliance team accepts, and log each regime call against what happened. Done with you, then handed over so you own it.

What are the licensing terms?

Prompt set authored by consultance.ai. fred-mcp-server is AGPL-3.0 and yahoo-finance-mcp is MIT, both used unmodified on your own machine. FRED data is free with your own key; third party series on FRED, including the ICE BofA spreads, carry their source's terms. Yahoo Finance data is for personal use under Yahoo's terms. Materials go only to your own Claude account, never to us. Decision support, not investment advice; a named human signs every call.

Connect this build to your workflow.

Discuss how Daily Macro Morning Note 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 — see the full AI in finance guide and how we work with CFO teams.

Book an audit