# Draft the quarterly LP letter

You have access to email, a spreadsheet, and a documentation tool. Run
this at **[quarter end]**.

## 0. Set up (skip if you're already connected)

If you don't already have live tool access for this, connect it
first. This prompt is only as real as the tools behind it:

1. Get a Tulina account: book a demo at https://tulina.ai/book.
2. Add Tulina's MCP server to your assistant: https://mcp.tulina.ai/mcp
3. In Tulina, connect your own API keys for the tools this
   prompt uses: your email, a spreadsheet, and your documentation tool.

Once connected, your assistant has real tool access and the rest of
this prompt runs as written.

## 0b. Already on Tulina? Three things around the run

An account and the MCP server are not the whole setup. Two of these come
before the run below and one after it, and together they turn this from a
one-off answer into a process your workspace keeps:

1. **Activate this process's connectors first.** Call
   `oto_connector(op="list")`, match it against the tools named in step 3
   above, and `oto_connector(op="select", name="...")` every one that
   isn't active yet. Selecting a connector does not mount its tools in the
   conversation you're already in — reach them through `oto_call` for this
   run, or open a fresh conversation once they're all on.
2. **Attach the work to an existing project.** `oto_project(op="list")`
   shows your active org's projects: pick the one this work belongs to
   rather than opening another, and keep its id. The project is where this
   process, the tables it writes to and the connectors it uses hang
   together.
3. **When the run is done, save it as a process — with its graph.** Write
   the body with `oto_procedure(op="set", ...)`, then attach it with
   `oto_project(op="link", project_id=..., target_type="procedure",
   target_ref="<your slug>")`. The body has to carry a drawing: read
   `oto_guide(op="read", slug="procedure-flowchart")` and follow it
   exactly — ONE untagged fenced block in that grammar, opening with the
   trigger and a quoted example of what you'd type to start a run. Tulina
   parses that drawing back into the graph it renders as the process's
   default view, which is what makes it come out in the same style as
   every other process in the app; a drawing the grammar can't read falls
   back to raw characters instead. Saving a process needs org-admin
   rights — without them, hand the finished body to someone who has them.

This document goes to limited partners. A number without a date and a
source on it does not belong in the draft.

## 1. Gather each company's dated figures for the quarter

Search the mailbox for updates from each portfolio company covering
the quarter. Match on the company's domain rather than on a founder's
name, since founders change and forwarded updates arrive from
whichever partner received them.

For each company, extract what was reported and the date it was
reported: revenue, growth, runway in months, headcount, and any
financing event.

Record the reporting date alongside every figure. A revenue number
from an update sent six weeks into the quarter is not a quarter-end
number, and presenting it as one is the most common way these letters
become quietly wrong.

## 2. Name companies that did not report

List every portfolio company with no update this quarter, with the
date of their last one.

Do not fill the gap from the previous quarter's figures, and do not
drop them from the letter. Silently carrying a stale number forward is
how a company that stopped reporting six months ago keeps appearing at
a valuation nobody has checked. Non-reporting is itself information
and LPs are entitled to it.

## 3. Reconcile figures, flag disagreements

Pull the fund's holdings from the spreadsheet: ownership, cost basis,
current carrying value, and any valuation change in the quarter.

Cross-check every company's self-reported figures against what the
fund has recorded. Where they disagree, flag it rather than choosing
one. A founder reporting growth against a carrying value that has not
moved is a discrepancy a partner should resolve, not something a draft
should quietly average.

Compute the fund-level numbers: total value, unrealised gains,
realisations in the quarter, and remaining capital. Check they
reconcile with the previous quarter plus this quarter's movements. If
they do not, report the difference rather than the total.

## 4. Draft a letter with dated figures

Structure it: fund-level position, material changes this quarter,
company-by-company notes, then realisations and outlook.

Rules:

- Every figure carries its source and its reporting date.
- Companies with no update appear with their last reporting date, not
  with old figures.
- Discrepancies between founder-reported and fund-recorded numbers are
  listed for a partner, not resolved in the draft.
- No forward-looking claims about a company beyond what the founder
  themselves stated, attributed to them.

Write it into the documentation tool as a draft. Partners add the
judgement, which is the part LPs are actually paying for.

## 5. Queue the exceptions for a partner

Produce a short list before the letter: companies that did not report,
figures that disagree with fund records, and any fund-level total that
failed to reconcile. That list is the partner's work queue and should
be dealt with before the letter goes out.

## Output

Report: companies with updates found, companies that did not report
and their last reporting date, figures whose reporting date falls
outside the quarter, discrepancies against fund records, whether the
fund-level numbers reconciled, and the draft's location.
