---
url: /docs/portfolio-03-advanced-and-customization.md
---
# Portfolio — Advanced & Customization

## Import and export behavior

Import and export both run in your browser rather than as a background
server job:

* **Import** submits each row one at a time. On a large file, this takes
  longer than a single bulk upload would, and if a row fails, you'll see a
  generic failure message for that row rather than a specific reason — try
  correcting the most likely issue (a missing required field, or a value
  in the wrong format) and re-importing just that row.
* **Export** downloads up to 200 companies at a time. If your portfolio has
  more than 200 companies, export in batches using the status, sector, or
  stage filters to split the list.
* **HQ country isn't imported or exported yet.** Set it on each company,
  or from the Unassigned notice on the Geography page.

## Cap table rules

Two rules govern what you can record on a company's cap table:

* A funding round's participants must belong to the **same company** as the
  round itself — you can't record a shareholder's participation in another
  company's round.
* Option grants can only be made against a shareholder whose type is
  **option pool** — you can't grant options directly against a founder,
  investor, or employee shareholder record.

## How tear sheets work

* **Read as of the date:** the valuation is the latest dated valuation on
  or before it, financials are the latest confirmed month up to it, and
  health is assessed as of that day. Anything recorded for later dates is
  left out.
* **The quarter** is the three calendar months ending with the date's
  month: a tear sheet as of 30 September covers 1 July to 30 September,
  and the valuation change compares the start of July with 30 September.
* **Fixed once made:** a tear sheet is a record of what was shared, so its
  figures never change, even if valuations or financials are corrected
  later. Only the commentary can be edited. To show corrected figures,
  create a new tear sheet.
* **Currencies:** the position and valuation are shown in your firm's base
  currency; financials are shown in the company's own currency.
* **Multiples:** MOIC, TVPI, and DPI use your stake at the valuation as of
  the date (that valuation × your ownership %), with the company's
  invested and realized capital as they are today.
* **Tear sheets made before stake values** (October 2026) used the whole
  company's valuation in their multiples. They keep those figures; create a
  new tear sheet to get the corrected ones.

## How valuation history works

* **The current valuation is always the latest one.** Adding a valuation
  dated after every other one makes it current; deleting the latest makes
  the previous one current. Your stake value, and so MOIC, TVPI, RVPI, and
  the Command Center, use the current valuation, so they move with it.
* **One valuation per date.** Adding a valuation on a date that already has
  one replaces it. Editing the current valuation twice on the same day
  leaves one point for that day, at the second amount.
* **Recorded for you:** when a company is added, its entry valuation is
  recorded on its entry date, and its current valuation on that day.
  Changing the entry date or entry valuation moves that record. These show
  as **Entry valuation** and **Company update**.
* **No future dates.** Valuations record what a company was worth, so they
  can be dated up to today.

## How figures are read and checked

**What gets read.** Cairn reads three statements and five KPIs:

| Statement | What's read | How amounts are stored |
|---|---|---|
| Profit and loss | Revenue, cost of revenue, operating expenses, depreciation, interest, other income, and taxes | Costs as positive amounts; other income or expense with its sign |
| Balance sheet | Cash, receivables, other current assets, property and equipment, other assets, payables, deferred revenue, other current liabilities, debt, other liabilities, and equity | Month-end balances: assets and liabilities positive, equity with its sign (negative for an accumulated deficit) |
| Cash flow | Operating, investing, and financing activities | The month's flows: money in positive, money out negative |
| KPIs | Cash balance, monthly burn, runway, ARR, and headcount | As reported |

Cairn works out total assets, total liabilities, and net cash flow from
these, alongside gross profit, EBITDA, and net income.

**Cash and burn.** Wherever Cairn uses cash or burn (runway, health, alerts,
the Command Center, tear sheets, and LP letters):

* **Cash** is the cash balance the company reported, else the cash on its
  balance sheet.
* **Monthly burn** is the burn the company reported, else the cash used by
  its operating and investing activities that month (zero if they brought
  cash in).
* **Runway** is the runway the company reported, else cash ÷ burn.

**Units apply to money only.** When a document is in thousands or
millions, Cairn scales its money amounts. Headcount and runway (in months)
are kept as written: a headcount of 91 in a "$000s" pack stays 91. A line
without a category is treated as money until you pick one; picking
**Headcount** or **Runway** for it puts it back to the number in the
document, unless you've typed your own amount.

**Quarters, year-to-date, and full years.** Only single-month figures are
stored. Quarterly, year-to-date, and annual columns are listed separately on
the review page as "not counted", so nothing in the document goes unseen.

**Checks before confirming.** Every reading is checked, and the results
show under **Before you confirm**:

| Check | Severity |
|---|---|
| Lines without a category | Must fix |
| Revenue far from the company's usual level, which usually means the wrong units (thousands vs. millions) | Must fix |
| Lines that don't add up to the monthly totals stated in the document, including total assets and total liabilities | Check |
| Negative revenue or costs | Check |
| The balance sheet doesn't balance: assets differ from liabilities plus equity by more than 1% | Check |
| Negative assets or liabilities (equity can be negative) | Check |
| Months missing within the period covered | Check |
| Quarterly, year-to-date, or annual values that won't be counted | Note |
| Months that already have confirmed figures | Note |

The totals check and the balance sheet check wait until every line in a
month has a category, so they don't flag gaps that are only lines you
haven't categorized yet. Quarterly and year-to-date totals aren't compared
with the months.

**Remembered categories.** When you pick a category for a line, Cairn
remembers it for that company. Next time a document uses the same line
label, it's categorized automatically with **High** confidence.

**Replacing earlier figures.** Confirming figures for a month that already
has confirmed figures replaces them, and the earlier reading is marked
**Superseded**. Each confirmation is recorded in the audit log.

**Deleting a document.** Deleting a document also deletes any unconfirmed
reading of it. Figures already confirmed from it stay.

**Currency.** Each company's figures stay in the currency of its documents;
Cairn doesn't convert them to your base currency.

## How data requests work

* **One link per request.** Each request has its own long, random link. It
  only lets someone see that request and send files or figures to it; it
  shows nothing else about your firm or the company.
* **When a link stops working:** when you close the request, when you
  replace its link (the old one stops at once), or 60 days after the due
  date.
* **Statuses:** **Waiting** (nothing received, not yet due), **Overdue**
  (past the due date with nothing received), **Received** (something has
  arrived), and **Closed** (the link no longer works). **Needs review** is
  added while a reading from the request is still a draft.
* **One open request per company and period.** You can't ask a company for
  "Q3 2026" twice while the first request is open. Close it first.
* **Files are read on arrival.** Each file becomes one of the company's
  documents and is read straight away, the same way **Read figures** reads
  it, so it uses your firm's AI credits. A read that hasn't finished after
  10 minutes is shown as failed.
* **Typed-in figures** become a small document named, for example,
  "Submitted figures - Sep 2026.csv", with a reading whose categories are
  already set: recurring revenue to **Revenue › Recurring**, other revenue
  to **Revenue › Non-recurring**, and cash balance, monthly burn, ARR, and
  headcount to their KPIs. No AI is used.
* **Nothing counts until confirmed.** Whatever a company sends is a draft
  until someone on your team confirms it, like any other reading.
* **Limits:** the usual upload rules (PDF, .xlsx, or .csv, up to 25MB each),
  and up to 20 files and 20 sets of typed-in figures per request.
* **Recorded in the audit log:** creating, closing, and replacing the link
  of a request, and everything a company sends, with the sender's name and
  email.

## How health is worked out

Health comes from fixed rules applied to a company's confirmed monthly
figures. Trends compare the average of the last three months with the
average of the three months before.

| Reason | Watch | At risk |
|---|---|---|
| Runway | Under 12 months | Under 6 months |
| Revenue trend | Down more than 10% | Down more than 25% |
| Monthly burn trend | Up more than 25% | — |

* **Runway** is the runway the company reported. Otherwise Cairn uses
  cash ÷ burn, where cash and burn may come from the balance sheet and cash
  flow (see [How figures are read and
  checked](#how-figures-are-read-and-checked)).
* **Revenue up more than 10%** is shown as a good sign. It explains a
  Healthy status but never changes the status.
* **The worst reason wins.** One At risk reason makes the company At risk,
  even if everything else looks fine.
* **Trends need enough months.** Each three-month window needs at least
  two months of figures. A company without enough figures for any reason
  shows **Too early**.
* **Old figures.** When the latest figures are more than three months old,
  the status is **Not recent**. The reasons are still listed, but they
  describe the past.

Health is shown as a status with reasons rather than a score out of 100: a
few months of figures can't support that kind of precision, and every
status explains itself.

## How stake value and multiples work

* **Stake value = current valuation × ownership %.** A company valued at
  $31M where you own 12% gives a stake worth $3.72M.
* **MOIC and TVPI = (realized + stake value) ÷ invested; RVPI = stake value
  ÷ invested; DPI = realized ÷ invested.**
* **The whole valuation is never your value.** Before October 2026, Cairn
  divided the company's whole valuation by what you invested: the company
  above, with $4M invested, showed 7.75x when the stake was worth 0.93x.
  Multiples are now always based on the stake.
* **No ownership %, no stake value.** MOIC, TVPI, and RVPI show **—** and the
  company page asks for the ownership %. DPI still shows. Portfolio totals
  leave such companies out and say how many.
* **Ownership is a percentage** (12 means 12%), from 0 to 100.
* **Checked against the cap table.** Your ownership on the cap table is
  that of the shareholders marked as one of the company's funds (**Your
  fund**). If it differs from the ownership % by more than one percentage
  point, the company page says so. Multiples use the ownership %. On a cap
  table with no shareholder marked, Cairn falls back to investors named
  after one of the company's funds.

## How company IRR is worked out

* **From the investment ledger:** each investment is money out on its
  date, each realization money back on its date, and today's stake value is
  what's left. Once a company is exited or written off, nothing is left.
  IRR is the annual rate that makes those add up (XIRR), the same
  calculation as a fund's IRR.
* **When there's no IRR yet,** the company page says why: there are no
  entries, an entry has no date, or there's no stake value (no ownership
  %).
* **A hand-typed IRR** from before the ledger is still shown, marked
  **Entered by hand**, until the ledger can calculate one.
* **Invested and realized** are the totals of the ledger's entries. They
  can't be typed in; record, change, or delete entries instead.

## A company held by more than one fund

Each entry can belong to a fund. When a company's entries span funds, the
**Investments** card shows each fund's invested, realized, stake value, and
IRR. The stake is split between funds by what each put in, net of what it
got back. That's an approximation: funds that invested at different prices
own different shares per dollar.

## Investments converted from earlier totals

When the investment ledger arrived, each company's existing totals became
entries: invested as one investment on the company's entry date, and
realized as one realization with no date. The fund is set when the company
is linked to exactly one. Converted entries are noted as converted, and
you can change, split, or replace them.

## How geographic exposure is worked out

* **By HQ country.** Each company counts in one country: where it's
  headquartered. Where it operates or sells isn't used yet.
* **NAV is the stake value** (current valuation × ownership %). A country's
  share of NAV is its NAV ÷ the NAV of everything shown.
* **Ratios come from totals, never averages.** A country's TVPI is
  (realized + NAV) ÷ invested, and DPI is realized ÷ invested, over all its
  companies. TVPI only counts companies that have a stake value; if none
  do, it shows **—**. DPI counts every company.
* **At risk** is the share of a country's NAV in companies whose health is
  At risk.
* **With a fund filter,** each company's figures are that fund's share,
  worked out the same way as on the company's **Investments** card (see [A
  company held by more than one fund](#a-company-held-by-more-than-one-fund)).
  Entries with no fund count for a fund only when it's the company's only
  fund. A **vintage** filter does the same for every fund of that vintage.
* **Amounts are in your firm's base currency.**

## How countries are recognised

* An HQ country you type is accepted as a country name (including common
  forms such as "USA" or "United Kingdom") or as a two- or three-letter ISO
  code. Anything else is refused with a message, rather than guessed.
* When HQ country arrived, Cairn filled it in for existing companies only
  where the HQ location names a country outright, such as "London, UK" or
  "Munich, Germany". It never guesses from a city or a state: "Toronto" and
  "San Francisco, CA" stay Unassigned, since "CA" could be California or
  Canada.
* **Nothing is sent outside Cairn.** Countries are matched against a list
  built into Cairn, and the map is drawn in your browser, with no map
  service involved.
