Jonathan Bayo
All case studies
OperationsBuilt1 min read

Investor report automation

A monthly job for a fund that reports to its LPs. It reads the portfolio sheet and each investor's allocation, drafts the month's narrative, assembles a personal report per investor and sends it from Gmail, logging every send.

~20 hsaved a month
1stdelivered every month
0copy paste
Trigger
1st of the month
Saved
about 20 hours a month
Source
Google Sheets
Send
Gmail, one per investor

Why it exists

Monthly LP updates take 10 to 20 hours by hand: pulling numbers from several sheets, formatting, personalising each one by allocation and sending them one at a time. Tedious, and easy to get a number wrong.

How it runs

Monthly run
Trigger
1st of month
schedule
Fetch
Portfolio sheet
performance, events
Fetch
Allocations
per investor
AI
Claude
month's narrative
Transform
Assemble
one report each
Send
Gmail
personal email
Store
Log
who got what
  1. Trigger

    Runs on the first of the month. Nobody has to remember.

  2. Portfolio

    Reads performance, company updates, valuations and notable events from the master sheet.

  3. Allocations

    Reads each investor's ownership and holdings from a separate tab.

  4. Narrative

    Claude turns the numbers and events into a short plain summary: what happened, what it means, what's next.

  5. Assemble

    Each investor gets a report with their own allocation and figures plus the narrative.

  6. Send

    Emails go out from Gmail with a personal greeting and subject.

  7. Log

    Every send is recorded: who, when, which version.

What came out of it

The report goes out on the first, every month, with each investor's own numbers and no copy paste in between.

Notes

Built to prove the pattern, not running for a fund yet. For a real fund I'd put a review step in front of the send so a person reads the narrative before investors do. It's one node.

Stack

Want something like this built?

Tell me what you're trying to automate. Most things can be built in a week or two.