Skip to content
← Processes

Draft the quarterly LP letter

Portfolio metrics gathered from founder updates and dashboards, drafted into your quarterly letter, with every figure carrying the date it was reported.

The quarterly LP letter is three days of gathering and an afternoon of writing. Someone searches the mailbox for every founder update, copies figures into a sheet, notices that four companies have not reported, chases them, reconciles what came back against the fund's own records, and only then starts drafting. The gathering is where the time goes and where the errors enter.

The updates are all in one mailbox and the fund's records are in one sheet. The join between them is mechanical, and so is the check that the quarter's totals still add up. What any of it means is not, and that is where a partner's afternoon should go.

What you get

A quarterly draft where every portfolio figure carries the date and source it came from, companies that reported nothing are named rather than omitted, and the fund-level numbers reconcile.

The part worth getting right

Every figure carries the date it was reported, not the date of the quarter it appears under. Founder updates arrive on their own schedules, and an update sent in the sixth week of a quarter contains numbers from the fifth. Presented under a quarter-end heading with no date attached, those become quarter-end numbers, and the letter drifts away from accuracy without anyone having decided anything. The date is a single extra field that keeps the whole document defensible.

Companies that did not report stay in the letter by name. The instinct is to carry last quarter's figures forward, because a gap looks like an omission and a number looks complete. But a company that stopped reporting is the one an LP most needs to hear about, and carrying its figures means it keeps appearing at a valuation nobody has revisited for a year.

Discrepancies are handed to a partner rather than resolved. A founder reporting strong growth against a carrying value the fund has not moved is either a stale valuation or an optimistic founder, and which one it is has consequences. A draft that averages the two, or silently prefers the fund's number, removes the question from view at the exact moment somebody should be asking it.

The prompt

The real prompt behind the steps above — detailed enough that an agent with a people-search tool, email/phone enrichment, and CRM access can run it as written.

# 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. Create a free account at app.tulina.ai.
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. Collect the founder updates 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 the 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 against the fund's own records

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 the letter

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. Hand over the exceptions

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.

Questions about this process

It appears in the letter by name with the date of its last update, and no figures. Carrying the previous quarter's numbers forward is how a company that stopped reporting keeps appearing at a valuation nobody has revisited, and non-reporting is information LPs are entitled to.

The discrepancy is flagged for a partner rather than resolved in the draft. Growth reported against a carrying value that has not moved is a real question, and averaging or picking one quietly removes it from view.

Because a revenue figure from an update sent six weeks into the quarter is not a quarter-end figure. Presenting it as one is the most common way these letters drift from accurate without anybody making a decision to mislead.

No. It assembles the figures, the reconciliation and the exception list, then stops. The judgement about what any of it means is what LPs are paying a partner for, and it is left to them.

Related processes

  • Draft the monthly investor update

    Revenue, pipeline, the plan's own targets, and last month's commitments are pulled together into a draft with the numbers already in it.

  • Keep your knowledge base current

    Every morning, the previous day's activity gets read across your team's tools and synthesized into what changed, automatically and unattended.

  • Publish the Monday brief

    Product usage, pipeline, and customer feedback joined into one executive report, published before the team sits down.

Experience Tulina for 14 days.

By continuing, you agree to our Terms of Use and Privacy policy.