Data model
Companies are global, portfolio companies are fund-specific, and custom fields let every team model what they need on top.
Two ideas carry most of the data model: the split between a company and a position in it, and custom fields for everything a particular team needs to track.
Companies vs. portfolio companies
A company is a global entity in your workspace. It exists once, no matter how many of your funds have invested in it, and most of its data is shared:
- Name, legal name, domain, description, logo
- Country, city, founding date, segment
- Cap table, funding rounds and share classes
- Contacts, investor updates, board notes, files
- KPIs and financials
A portfolio company is one fund's investment in that company – the company–fund pair. It holds everything specific to that position:
- Invested capital, acquisition cost, proceeds
- Shares acquired, owned and exited
- Fair market value, valuation method, investment status
- Ownership percentage, IRR, MOIC
- Investment manager, deputy and board representation for that fund
So a company held by two of your funds appears once as a company and twice as a portfolio company. The reported ARR is the same number in both places – it's a property of the business. The MOIC is not, because the funds bought at different prices.
This is the distinction that matters most when working with the API: company_id identifies the business, portfolio_company_id identifies one fund's position in it. Reach for portfolio companies for anything about performance, and companies for anything about the business itself.
Sharing at the company level is what makes context compound. An investor update sent once is visible to every fund holding the company; a board deck extracted once produces KPIs everyone sees. Nobody files the same document twice.
Several funds in the same company
This is what makes multi-fund structures manageable. Update a valuation once and every fund holding the company picks it up – correctly, against its own cost basis and share count. There's no reconciliation step and no way for two funds to end up carrying the same company at different values by accident.
It holds for the structures that usually break portfolio spreadsheets: several vehicles co-investing in the same set of companies, sub-funds investing pro rata alongside a main fund, or a continuation vehicle holding part of an existing position. Each is a separate portfolio company over one shared company record.
Custom fields
Firms track different things, and different teams within a firm track different things again. Rather than guess, Fundra lets you add custom fields to the records you work with, so the investment team, finance, legal and marketing can each model what they need without asking for a feature.
Fields are managed in Settings → Fields. They can be added on companies, portfolio companies, funds, people and other core records, and they behave like built-in fields – filterable, groupable in views, available in reports and templates, and readable through the API.
Available field types:
| Type | Use for |
|---|---|
text | Short free text |
richtext | Formatted notes with headings, lists and links |
number | Plain numbers |
currency | An amount plus its currency, converted where needed |
percent | Percentages |
date | Dates |
boolean | Yes/no toggles |
select | One option from a list |
multi_select | Several options from a list; new options can be added inline |
list | An ordered list of free-text items |
user | One or more people in your workspace |
relation | A link to another record |
location | A country |
image | A logo or picture |
Typical uses look like this – legal tracking board seat rights and information rights, finance tracking audit classifications and valuation policy notes, investment teams tracking thesis, conviction or sourcing channel, marketing tracking whether a company has agreed to be named publicly.
Fields defined as currency carry their currency with the value rather than assuming one, so they aggregate correctly in mixed-currency portfolios. Prefer currency over number for any money amount.
Roles and access
Fundra is meant to be used by the whole firm, which only works if people see what's relevant to them and not what isn't. Access is role-based:
| Role | For |
|---|---|
| Admin | Workspace owners – full access, plus settings, users, fields and templates |
| Investment team | Deal and portfolio work – companies, updates, board material, KPIs, performance |
| Finance team | The ledger – transactions, valuations, capital accounts, fees, carry, LP reporting |
| Legal team | Terms and documents – agreements, side letters, cap table detail |
| Fund admin | External fund administrators – the numbers they need to do the books, and nothing more |
| Viewer | Read-only access |
There is no per-user charge, so there's no reason to ration seats. Invite the whole firm and let roles decide what each person sees – that's the setup the product is designed around.
Fund admin is the role worth understanding. External administrators need the ledger to produce accounts and LP statements, but they have no business reading a founder's confidential update or a board deck. So the role is explicitly walled off from files, investor updates, contacts and audit history, and cannot modify companies, fundraisings or report submissions. They see the numbers, not the story behind them.
Why this matters for data accuracy
Roles aren't only about confidentiality – they're how the data stays right. Finance owns the ledger, so transactions and valuations have a single accountable owner rather than five people editing the same figures. Everyone else reads those numbers rather than maintaining a parallel copy in a spreadsheet, which is where portfolio data normally goes wrong.
Collaboration happens on top of that shared record instead of around it. Comments attach to the company, valuation or report they're about, so the question "why did we write this down?" is answered in the place you'd look for it. With the Slack integration, those conversations reach the people who live in Slack and their replies come back to the record – so the investment team can raise something without editing the ledger, and finance can resolve it without leaving an audit gap.