Data Dictionary
Detailed definitions for every table and column in the data warehouse
This data dictionary provides detailed definitions for every table and column in the data warehouse. Tables are grouped by domain below — use the table of contents to jump to the one you need.
Tables
Fund & Portfolio Performance
- Aggregate Fund Metrics
- Aggregate Investments
- Aggregate Investments History
- Fund Cohort Deployment Velocity
- Fund Ops Benchmarks V2
- Funds
- Statement Of Ops
- Temporal Deal Irr
- Temporal Fund Cohort Benchmarks
Valuations
- Fund Holdings Value
- Holdings Value
- Portfolio Valuations
- Portfolio Valuations History
- Waterfall Modeling
- Waterfall Modeling History
Capital Activity & Cash Flows
Loan Operations
- Advance
- Amendment
- Benchmark Rate
- Cash Transaction
- Company
- Custom Field
- Default Event
- Document
- Fee
- Instrument
- Interest Rate Period
- Interest Rate Term
- Lender Payment Obligation
- Lender Position
- Loan
- Memo
- Payment Application
- Payment Obligation
- Prepayment Premium
- Simulation
- Simulation Payment Obligation
- Structure
- Task
- Tranche
- Tranche Contribution
- Transfer
- Transfer Allocation
Accounting & General Ledger
LP & Partner Data
- Lp Closing Contact Statuses
- Partner Address Changes Audit
- Partner Data
- Partner Monthly Nav Calculations
Portfolio Companies & Ownership
- Company Financials
- Corporation Basic Info
- Corporation Basic Info V2
- Corporation Entity Links
- Corporation Entity Links V2
- Financing History
- Fund Corporation Ownership
- Irc409a Value
- Portfolio Events
- Portfolio Notes
- Summary Cap Table
Document Intelligence
- Document Ai Document
- Document Ai Extraction
- Document Ai Spa
- Document Ai Spa Issuer
- Document Ai Spa Purchaser
- Document Ai Spa Series
Aggregate Fund Metrics
Primary table containing fund-level metrics and characteristics. One row per fund with comprehensive performance, capital structure, and operational metrics. Pagination sort: fund_name, month_end_date DESC
| Column | Type | Description |
|---|---|---|
fund_name | VARCHAR | Name of the fund. |
vintage_date | DATE | Date of first capital call. Used to determine vintage year and age-based metrics |
vintage_year | NUMBER | Calendar year of first capital call, used for cohort analysis and benchmarking |
month_end_date | DATE | The last day of the month when NAV, Value, RVPI, and TVPI were calculated |
entity_type_name | VARCHAR | Legal structure classification of the fund entity (e.g., Fund, SPV, ...). |
firm_name | VARCHAR | Name of the investment firm. |
fund_size | NUMBER | Total committed capital across all LPs and GPs. Used for fund size cohort classification and as denominator for various metrics. |
fund_aum_bucket | VARCHAR | Size category for peer comparison based on fund_size (e.g., '100M-250M') |
fund_reporting_currency | VARCHAR | Currency denomination of the fund |
partner_transaction_source | VARCHAR | System of record identifier for partner transaction data (e.g., carta_gl, cats, partner_records) |
total_cost_of_investments | NUMBER | Aggregate cost basis of all investments made by the fund, including both active and exited positions |
total_investments_at_fair_value | NUMBER | Current fair market value of all remaining investments held by the fund, based on latest valuation marks |
total_unrealized_gain_loss | NUMBER | Aggregate unrealized gains or losses on current investment holdings (total_investments_at_fair_value - total_cost_of_investments) |
total_opx | NUMBER | Total operating expenses excluding management fees (legal, fund administration, etc.) |
total_mgmt_fees | NUMBER | Total management fees paid by all partners (total_gp_mgmt_fees + total_lp_mgmt_fees) |
cost_tax_prep_fees | NUMBER | Total tax preparation fees paid by the fund |
cash | NUMBER | Cash balance including (1000 - Bank, 1001 - outstanding checks, 1002 - Stablecoins, 1003 - Overnight Swap, 1004 - Money Market Funds, 1005 - Money Market Funds unrealized/gain loss, 1006 - Cash Margin, 1099 - Bank 1099able) |
cost_fa_fees | NUMBER | Total fees paid to the fund administrator |
cost_legal_fees | NUMBER | Total legal fees paid by the fund |
cost_filing_fees | NUMBER | Total filing fees paid by the fund |
cost_other_professional_fees | NUMBER | All other professional fees not associated with audit, tax prep, and legal. |
cost_organization_costs | NUMBER | All fees associated with organizing and creating the fund |
cost_insurance_expense | NUMBER | Costs associated with Directors and Officers (D&O) insurance |
cost_travel | NUMBER | Costs associated with travel expenses |
cost_syndication_costs | NUMBER | Syndications costs related to fundraising and placement agent |
cost_software_and_technology | NUMBER | Costs related to software, technology, and IT |
cost_dues_and_subscriptions | NUMBER | Costs associated with membership dues or subscriptions |
cost_meal | NUMBER | Costs associated with meal and entertainment expenses |
cost_market_expenses | NUMBER | Costs associated with marketing expenses |
cost_accounting_expense | NUMBER | Costs associated with accounting expenses |
cost_payroll_salary | NUMBER | Costs associated with payroll and salary expenses |
cost_events | NUMBER | Costs associated with events |
ending_total_nav | NUMBER | Ending Net Asset Value (NAV) for both GPs and LPs |
ending_lp_nav | NUMBER | Ending Net Asset Value (NAV) for LPs |
ending_gp_nav | NUMBER | Ending Net Asset Value (NAV) for GPs |
total_value | NUMBER | Total value of the fund including GPs and LPs |
lp_value | NUMBER | Total value attributable to limited partners (LP NAV plus cumulative distributions to LPs). |
gp_value | NUMBER | Total value attributable to general partners (GP NAV plus cumulative distributions to GPs). |
total_rvpi | NUMBER | Residual Value to Paid-In Capital for both LPs and GPs |
lp_rvpi | NUMBER | Residual Value to Paid-In Capital for LPs |
total_tvpi | NUMBER | Total Value to Paid-In Capital for both LPs and GPs |
lp_tvpi | NUMBER | Total Value to Paid-In Capital for LPs |
total_moic | NUMBER | Multiple of Invested Capital for both LPs and GPs |
lp_moic | NUMBER | Multiple of Invested Capital for LPs |
lp_dpi | NUMBER | LP-only distributions to paid-in capital ratio (most recent month-end value) |
deal_irr | FLOAT | Gross deal-level IRR for the fund expressed as a percentage, sourced from the most recent as_of_date. NULL when IRR cannot be computed. |
net_lp_irr | FLOAT | Net LP internal rate of return expressed as a percentage, sourced from the most recent as_of_date. NULL when IRR cannot be computed. |
count_gps | NUMBER | Total number of general partners in the fund |
count_lps | NUMBER | Total number of limited partners in the fund |
total_gp_cap_contribution | NUMBER | Aggregate capital contributions from general partners to date |
total_lp_cap_contribution | NUMBER | Aggregate capital contributions from limited partners to date |
total_cap_contribution | NUMBER | Total capital contributed to fund from all partners (total_gp_cap_contribution + total_lp_cap_contribution) |
total_gp_mgmt_fees | NUMBER | Cumulative management fees paid by general partners |
total_lp_mgmt_fees | NUMBER | Cumulative management fees paid by limited partners |
total_gp_capital_call_receivable | NUMBER | Total capital call receivable from general partners |
total_lp_capital_call_receivable | NUMBER | Total capital call receivable from limited partners |
total_capital_call_receivable | NUMBER | Total capital call receivable from all partners |
total_gp_distribution | NUMBER | Cumulative distributions paid to general partners, including return of capital and profits |
total_lp_distribution | NUMBER | Cumulative distributions paid to limited partners, including return of capital and profits |
total_distribution | NUMBER | Total distributions paid to all partners (total_gp_distribution + total_lp_distribution) |
total_net_realized | NUMBER | Net realized gains or losses from exited investments (total proceeds - cost basis of exited investments) |
total_net_unrealized | NUMBER | Net unrealized gains or losses on current holdings (current fair value - cost basis of current holdings) |
total_distribution_payable | NUMBER | Distributions approved but not yet paid to partners |
total_deferred_cap_call | NUMBER | Capital calls that have been deferred or scheduled for future dates |
total_carried_interest_accrued | NUMBER | Carried interest earned but not yet distributed, based on waterfall calculations |
total_contributions_outside_commitment | NUMBER | Capital contributions exceeding original commitment amounts (e.g., for follow-on investments) |
dry_powder | NUMBER | Remaining capital available for investments and expenses (fund_size - total_cost_of_investments - total_opx - total_mgmt_fees) |
perc_capital_remaining | NUMBER | Percentage of fund size not yet deployed (dry_powder / fund_size * 100) |
perc_mgmt_fees_to_fundsize | NUMBER | Management fees as percentage of fund size (total_mgmt_fees / fund_size * 100) |
perc_mgmt_fees_to_contributions | NUMBER | Management fees as percentage of total contributions (total_mgmt_fees / total_cap_contribution * 100) |
perc_cost_tax_prep_fees_to_contributions | NUMBER | Tax preparation fees as percentage of total contributions (cost_tax_prep_fees / total_cap_contribution * 100) |
perc_cost_travel_to_contributions | NUMBER | Travel expenses as percentage of total contributions (cost_travel / total_cap_contribution * 100) |
perc_cost_software_and_technology_to_contributions | NUMBER | Software and technology expenses as percentage of total contributions (cost_software_and_technology / total_cap_contribution * 100) |
perc_cost_dues_and_subscriptions_to_contributions | NUMBER | Dues and subscriptions as percentage of total contributions (cost_dues_and_subscriptions / total_cap_contribution * 100) |
perc_cost_payroll_salary_to_contributions | NUMBER | Payroll and salary expenses as percentage of total contributions (cost_payroll_salary / total_cap_contribution * 100) |
perc_cost_accounting_expenses_to_contributions | NUMBER | Accounting expenses as percentage of total contributions (cost_accounting_expense / total_cap_contribution * 100) |
perc_cost_events_to_contributions | NUMBER | Events expenses as percentage of total contributions (cost_events / total_cap_contribution * 100) |
perc_cost_legal_fees_to_contributions | NUMBER | Legal fees as percentage of total contributions (cost_legal_fees / total_cap_contribution * 100) |
perc_opx_to_fundsize | NUMBER | Operating expenses as percentage of fund size (total_opx / fund_size * 100) |
perc_opx_to_contributions | NUMBER | Operating expenses as percentage of total contributions (total_opx / total_cap_contribution * 100) |
is_eligible_fund | BOOLEAN | Flag indicating if fund meets criteria for inclusion in benchmark calculations (e.g., has a "go live date", isn't onboarding, etc.) |
is_administered_by_carta | BOOLEAN | True if the fund has full or investment only access |
fund_uuid | VARCHAR | Unique identifier for the fund. Used as both a primary key and a foreign key. |
firm_id | VARCHAR | Unique identifier for the management firm. Used as both a primary key and a foreign key. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
Aggregate Investments
Investment-level details for all investments made by funds, tracking cost basis, current value, and investment characteristics Pagination sort: fund_name, issuer_name, asset_name
| Column | Type | Description |
|---|---|---|
fund_name | VARCHAR | Name of the fund. |
issuer_name | VARCHAR | Name of the issuer from the general ledger (GL). |
asset_name | VARCHAR | Specific name or description of the investment asset (e.g., SAFE, Series Seed, Series A Preferred, etc.). Potential aliases include share class(es), holdings, investments (i.e. "my preferred series A investments"), etc. |
investment_date | DATE | Date when the initial investment was made |
latest_update_effective_date | DATE | Date of most recent update to investment information |
latest_fmv_effective_date | DATE | Date of most recent fair market value assessment |
fund_entity_type_name | VARCHAR | Legal structure classification of the fund entity (e.g., Fund, SPV, ...). |
firm_name | VARCHAR | Name of the investment firm. |
asset_class_type | VARCHAR | Classification of the investment (e.g., PREFERRED_EQUITY, CONVERTIBLE_DEBT, COMMON_EQUITY, FUND_INVESTMENT, WARRANTS, OTHER, TOKEN, ALTERNATIVE_ASSETS/OTHER, etc...) |
currency_code | VARCHAR | Currency denomination of the investment |
most_recent_journal_entry_type | VARCHAR | Type of the most recent transaction affecting the investment (e.g., NEW_INVESTMENT, MIGRATION, CONVERSION, VALUATION, ...) |
issuer_entity_type | VARCHAR | Legal structure of the issuing entity in the (somewhat uncommon) case that the issuer is a Fund / SPV / GP / Mgt Company entity |
issuer_domicile_country | VARCHAR | Country where the issuing entity is domiciled |
tags | VARCHAR | Comma delimited list of tags assigned to the issuer by the firm |
tags_json | OBJECT | JSON object of category and tag key-value pairs assigned to the issuer |
count_remaining_shares | NUMBER | Current number of shares or units held |
total_cost_basis | NUMBER | Remaining cost basis of the investment |
total_unrealized_gain_loss | NUMBER | Current unrealized gain/loss (remaining_value - total_cost_basis) |
total_proceeds | NUMBER | Total cash or equivalent received from partial or full exits |
remaining_value | NUMBER | Current fair market value of remaining holdings |
remaining_value_per_share | NUMBER | Current fair market value per share (remaining_value / count_remaining_shares) |
total_value | NUMBER | Total value including both realized and unrealized components |
total_cost | NUMBER | The total cost basis of the investment in the portfolio company. This is the aggregate amount of capital invested. |
total_interest_capitalized | NUMBER | Total amount of capitalized interest on the investment. This represents interest that has been added to the principal balance rather than paid out as cash. |
residual_gain_loss | NUMBER | Adjustment for reconciling cost basis with actual gains/losses |
is_investment_in_fund | BOOLEAN | Flag indicating if investment is in another fund / SPV / ... (fund-of-funds structure) |
is_crypto_asset | BOOLEAN | Flag indicating if investment is in cryptocurrency or digital assets |
is_option_or_warrant_asset | BOOLEAN | Flag indicating if investment is an option or warrant |
is_public_asset | BOOLEAN | Flag indicating if investment is in a publicly traded security |
is_ownership_interest_asset | BOOLEAN | Flag indicating if investment represents an ownership stake |
is_alternative_or_other_asset | BOOLEAN | Flag indicating if investment is classified as alternative investment |
is_investment_in_carta_fund_entity | BOOLEAN | Flag indicating if investment is in a Carta-administered fund |
is_international_issuer | BOOLEAN | Flag indicating if issuer is based outside the fund's domicile |
is_carta_customer | BOOLEAN | Indicates if the corporation is a Carta customer. Non-Carta companies are sometimes referred to as "paper companies" and are used to manually track investments for fund accounting purposes. |
is_foreign_currency_investment | BOOLEAN | Flag indicating if investment is denominated in foreign currency |
has_realization | BOOLEAN | Flag indicating if investment has had any realizations |
is_active_investment | BOOLEAN | Flag indicating if investment is currently held |
fund_investment_key | VARCHAR | Unique identifier for each fund-investment combination |
fund_uuid | VARCHAR | Unique identifier for the fund. Used as both a primary key and a foreign key. |
general_ledger_issuer_id | VARCHAR | Unique identifier of the issuer from the general ledger (GL). Used as both a primary key and a foreign key. |
general_ledger_asset_id | VARCHAR | Unique identifier for the asset in the general ledger. Used as both a primary key and a foreign key. |
general_ledger_asset_class_id | VARCHAR | Classification identifier for the investment asset type |
most_recent_general_ledger_fund_journal_entry_id | VARCHAR | Identifier for the most recent journal entry affecting this investment |
most_recent_journal_entry_uuid | VARCHAR | UUID of the most recent journal entry for tracking updates |
most_recent_event_key | VARCHAR | Identifier for the most recent event affecting the investment |
entity_link_id | VARCHAR | Reference ID linking to related entity information |
firm_id | VARCHAR | Unique identifier for the management firm. Used as both a primary key and a foreign key. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
Aggregate Investments History
Time series table with several rows per investments made by funds. It has an effective_date and next_effective_date dictating the range of dates the status was effective. Useful for tracking cost basis, current value, and investment characteristics over time. Pagination sort: fund_name, issuer_name, asset_name, effective_date DESC
| Column | Type | Description |
|---|---|---|
fund_name | VARCHAR | Name of the fund. |
issuer_name | VARCHAR | Name of the investment issuer in the general ledger |
asset_name | VARCHAR | Specific name or description of the investment asset |
effective_date | DATE | Effective date of the investment's status. Used in conjunction with next_effective_date to get the investment's status at a given point in time. For example, effective_date <= <some_date> and (next_effective_date is NULL or next_effective_date > <some_date>) |
next_effective_date | DATE | Next effective date of the investment's status. Used in conjunction with effective_date to get the investment's status at a given point in time. For example, effective_date <= <some_date> and (next_effective_date is NULL or next_effective_date > <some_date>) |
is_current_state | BOOLEAN | Flag indicating if the investment's status is the last in the time series. Used to quickly get the current status of an investment. |
fund_entity_type_name | VARCHAR | Legal structure classification of the fund entity (e.g., Fund, SPV, ...). |
firm_name | VARCHAR | Name of the investment firm. |
asset_class_type | VARCHAR | Classification of the investment (e.g., PREFERRED_EQUITY, CONVERTIBLE_DEBT, COMMON_EQUITY, FUND_INVESTMENT, WARRANTS, OTHER, TOKEN, ALTERNATIVE_ASSETS/OTHER, etc...) |
currency_code | VARCHAR | Currency denomination of the investment |
issuer_entity_type | VARCHAR | Legal structure of the issuing entity in the (somewhat uncommon) case that the issuer is a Fund / SPV / GP / Mgt Company entity |
issuer_domicile_country | VARCHAR | Country of domicile for the issuer |
event_types | VARCHAR | A comma-separated list of accounting event types that changed the asset on the effective date. e.g., "VALUATION", "NEW_INVESTMENT", "MIGRATION", "CONVERSION", ... |
count_remaining_shares | NUMBER | Number of remaining shares of the investment |
total_cost_basis | NUMBER | Remaining cost basis of the investment |
total_unrealized_gain_loss | NUMBER | (remaining_value - total_cost_basis) |
total_proceeds | NUMBER | Total cash or equivalent received from partial or full exits |
total_value | NUMBER | Total value including both realized and unrealized components |
total_cost | NUMBER | The total cost basis of the investment in the portfolio company. This is the aggregate amount of capital invested. |
total_interest_capitalized | NUMBER | Cumulative amount of capitalized interest on the investment as of the effective_date. This represents interest that has been added to the principal balance rather than paid out as cash. |
residual_gain_loss | NUMBER | Adjustment for reconciling cost basis with actual gains/losses |
count_records_on_date | NUMBER | Number of accounting records on the effective date |
remaining_value | NUMBER | Current fair market value of remaining holdings (equivalent to remaining cost basis + unrealized gain/loss). |
remaining_value_per_share | NUMBER | (remaining_value / count_remaining_shares) |
is_investment_in_fund | BOOLEAN | Flag indicating if investment is in another fund, SPV, etc. in a fund-of-funds structure |
is_crypto_asset | BOOLEAN | Flag indicating if investment is in cryptocurrency or digital assets |
is_option_or_warrant_asset | BOOLEAN | Flag indicating if investment is an option or warrant |
is_public_asset | BOOLEAN | Flag indicating if investment is in a publicly traded security |
is_ownership_interest_asset | BOOLEAN | Flag indicating if investment represents an ownership stake |
is_alternative_or_other_asset | BOOLEAN | Flag indicating if investment is classified as alternative investment |
is_investment_in_carta_fund_entity | BOOLEAN | Flag indicating if investment is in a Carta-administered fund |
is_international_issuer | BOOLEAN | Flag indicating if issuer is domiciled in a different country |
is_carta_customer | BOOLEAN | Indicates if the corporation is a Carta customer. Non-Carta companies are sometimes referred to as "paper companies" and are used to manually track investments for fund accounting purposes. |
_pk | VARCHAR | Primary key for investment history table |
fund_investment_key | VARCHAR | Unique identifier for each fund-investment combination |
fund_uuid | VARCHAR | Unique identifier for the fund. Used as both a primary key and a foreign key. |
general_ledger_issuer_id | VARCHAR | Unique identifier of the issuer from the general ledger (GL). Used as both a primary key and a foreign key. |
general_ledger_asset_id | VARCHAR | Unique identifier for the asset in the general ledger. Used as both a primary key and a foreign key. |
general_ledger_asset_class_id | VARCHAR | Classification identifier for the investment asset type |
entity_link_id | VARCHAR | Reference identifier linking to related entity information |
firm_id | VARCHAR | Unique identifier for the management firm. Used as both a primary key and a foreign key. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
Advance
One row per advance (a disbursement of capital under a loan). Tracks committed and disbursed amounts, outstanding principal, repayment totals, and the borrower, lenders, and agent involved. An advance disburses its full committed amount on its effective date — there are no partial draws. Pagination sort: loan_name, effective_date DESC, _pk
| Column | Type | Description |
|---|---|---|
advance_name | VARCHAR | Advance name. |
loan_name | VARCHAR | Parent loan name. |
borrower_name | VARCHAR | Cached borrower company name. |
effective_date | DATE | Date the advance becomes effective (full disbursement happens on this date). |
maturity_date | DATE | Scheduled maturity date for the advance. NULL for open-ended advances. |
committed_amount | NUMBER | Sum of tranche contribution amounts across all tranches in the advance. Reflects the total amount lenders have committed, even before effective_date. |
disbursed_amount | NUMBER | committed_amount once effective_date <= today, otherwise 0. Advances are all-or-nothing — no partial draws. |
outstanding_principal | NUMBER | Outstanding principal from the latest parent payment obligation for this advance. NULL when no period-bearing obligation has been generated yet. |
principal_repaid | NUMBER | Cumulative principal repaid. |
interest_repaid | NUMBER | Cumulative interest repaid. |
pik_compounded | NUMBER | Cumulative PIK that has compounded into principal. |
pik_repaid | NUMBER | Cumulative PIK repaid. |
default_repaid | NUMBER | Cumulative default amount repaid. |
currency_code | VARCHAR | Unified currency code across the advance's tranche contributions. NULL when contributions span multiple currencies or the advance has no tranche contributions yet. |
tranche_count | NUMBER | Number of tranches in the advance. |
lender_count | NUMBER | Number of unique lenders contributing to the advance. |
lending_firm_name | VARCHAR | Cached lending firm name from the parent loan. |
lead_lender_name | VARCHAR | Cached lead lender name from the parent loan. |
agent_name | VARCHAR | Cached agent name from the parent loan. |
created_at | TIMESTAMP_NTZ | Timestamp when the advance was created. |
updated_at | TIMESTAMP_NTZ | Timestamp of the most recent update to the advance. |
is_active | BOOLEAN | Whether the parent loan is currently active. |
_pk | VARCHAR | Surrogate primary key generated from advance_id. |
lending_firm_id | VARCHAR | Lending firm UUID. Used to enforce row access policy. |
advance_id | VARCHAR | Unique identifier for the advance. |
loan_id | VARCHAR | Parent loan UUID. |
structure_id | VARCHAR | Parent loan structure UUID. |
borrower_id | VARCHAR | Borrower company UUID. |
lead_lender_id | VARCHAR | Lead lender company UUID. |
agent_id | VARCHAR | Agent company UUID. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
Allocations
This model aggregates allocations data, including fund and partner details, allocation amounts, and related metadata. Pagination sort: fund_name, partner_name, effective_date DESC
| Column | Type | Description |
|---|---|---|
fund_name | VARCHAR | Name of the fund. |
partner_name | VARCHAR | Legal or registered name of the partner entity |
allocation_bucket_name | VARCHAR | The name of the bucket to which the allocation belongs. Also known as an allocation category or allocation type, each allocation bucket represents a line item on a partner's capital account statement. When a general ledger journal line's amount is allocated to a list of partners, it is funneled into an allocation bucket. |
effective_date | DATE | The date upon which the allocation is effective. |
entity_type_name | VARCHAR | Legal structure classification of the fund entity (e.g., Fund, SPV, ...). |
firm_name | VARCHAR | Name of the management firm. |
partner_class_name | VARCHAR | Name of the partner class this partner belongs to (e.g., Class A, Class B), representing different tiers or categories of investment terms |
firm_partner_group_name | VARCHAR | Name of the partner group, coalesced with partner name if no group is assigned |
actual_amount | NUMBER | The actual amount allocated for this allocation bucket. |
partner_type | VARCHAR | Type of partner relationship to the fund. Possible values include: "general_partner", "limited_partner", "managing_member", "member". |
gp_entity_name | VARCHAR | Name of the general partner entity associated with the allocation. |
allocation_notes | VARCHAR | Notes about the allocation providing additional context. |
general_ledger_account_name | VARCHAR | Name of the general ledger account associated with the allocation |
general_ledger_account_type | VARCHAR | Four-digit account type classification code for the general ledger account |
general_ledger_account_normal_balance | VARCHAR | Whether the general ledger account has a normal balance of either CREDIT or DEBIT |
is_limited_partner | BOOLEAN | True if the partner is a limited partner; otherwise, false. This will be true if partner_type = 'limited_partner' |
is_general_partner | BOOLEAN | True if the partner is a general partner; otherwise, false. This will be true if partner_type = 'general_partner' |
general_ledger_partner_record_id | VARCHAR | Unique identifier pk for general ledger partner records |
fund_uuid | VARCHAR | Unique identifier for the fund. Used as both a primary key and a foreign key. |
fund_id | NUMBER | Unique identifier for the fund. Used as both a primary key and a foreign key. |
partner_id | NUMBER | Unique identifier for the partner. Used as both a primary key and a foreign key. |
external_partner_id | VARCHAR | External identifier for the partner, used for integrations with external systems and cross-referencing partner records |
firm_partner_group_id | NUMBER | Identifier of the partner group this partner belongs to within the firm |
partner_entity_id | VARCHAR | Unique identifier for the partner's legal entity. |
asset_id | VARCHAR | the asset_id associated with the allocation if any |
journal_entry_line_id | VARCHAR | The journal entry line id associated with the allocation |
firm_id | VARCHAR | Unique identifier for the management firm. Used as both a primary key and a foreign key. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
Amendment
One row per amendment: a negotiated change to a loan's terms after closing. The per-section detail lives in per-section change records, whose before/after values are stored as compressed blobs that cannot be read in SQL. This model therefore summarises what was touched — changed_item_count and changed_sections — rather than the values. changed_sections names the areas moved, e.g. "Commitment, Fees, PrincipalSchedule", which is usually enough to judge relevance without opening the document. Pagination sort: loan_name, effective_date DESC, _pk
| Column | Type | Description |
|---|---|---|
amendment_name | VARCHAR | Name of the amendment. |
loan_name | VARCHAR | Loan this record belongs to. |
borrower_name | VARCHAR | Borrower on the loan. |
effective_date | DATE | Date the amendment takes effect. |
changed_item_count | NUMBER | Number of individual changed items recorded against the amendment. Several items can touch the same section, so this is greater than or equal to changed_section_count. 0 when no changed items were recorded. |
changed_section_count | NUMBER | Number of distinct sections the amendment touched — the distinct count behind changed_sections. 0 when no changed items were recorded. |
changed_sections | VARCHAR | Comma-separated distinct section names the amendment touched, e.g. "Commitment, Fees, PrincipalSchedule". Null when no changed items were recorded. |
lending_firm_name | VARCHAR | Lending firm that services the loan. |
created_at | TIMESTAMP_NTZ | Timestamp the amendment record was created. |
updated_at | TIMESTAMP_NTZ | Timestamp the amendment record was last updated. |
is_effective | BOOLEAN | Convenience boolean — true when effective_date has been reached. Evaluated when the data is refreshed, so compute effective_date <= CURRENT_DATE() at query time if you need it exact. |
_pk | VARCHAR | Surrogate primary key for the row. |
lending_firm_id | VARCHAR | Lending firm UUID. Used to enforce row access policy. |
amendment_id | VARCHAR | Amendment UUID. |
loan_id | VARCHAR | Loan this amendment belongs to. |
box_folder_id | VARCHAR | Box folder id holding the amendment's documents. Null when no folder exists. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed. |
Benchmark Rate
One row per benchmark observation — the published historical rate for each interest-rate benchmark (e.g. SOFR Overnight, WSJ Prime, CME Term SOFR). This is shared reference data: it is firm-agnostic and readable by all firms, so no row access policy is applied. The full rate history is exposed. Read the series as a step function, holding the latest observation forward for dates beyond it. Use the latest observation per benchmark for a flat reference-rate projection, or the full series to value accrued interest on existing floating-rate loans.
| Column | Type | Description |
|---|---|---|
benchmark_name | VARCHAR | Human-readable benchmark name (e.g. "SOFR Overnight", "WSJ Prime"). |
observation_date | DATE | Date the rate was observed or published. |
rate | NUMBER | Published rate for the benchmark on the observation date, as a decimal fraction. |
_pk | VARCHAR | Surrogate primary key derived from (benchmark_id, benchmark_date_id). |
fred_id | VARCHAR | FRED series ID for the benchmark (e.g. SOFR, DPRIME). NULL for benchmarks not sourced from FRED. |
benchmark_id | VARCHAR | Unique identifier for the benchmark. |
benchmark_date_id | VARCHAR | Unique identifier for the benchmark observation. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
Capital Activities
One row per capital activity (capital call, distribution, or return of excess) per fund. Mirrors the Fund Capital Activity list view in the Carta investor portal. Includes pre-aggregated dollar totals by bucket activity type, partner row counts by payment status, and lifecycle metadata. The firm_id and fund_uuid columns are foreign keys to funds and are used for row-level access policies. Pagination sort: fund_name, due_date DESC, _pk
| Column | Type | Description |
|---|---|---|
fund_name | VARCHAR | Name of the fund that issued this capital activity. |
activity_type | VARCHAR | Type of capital activity: capital_call, distribution, return_of_excess, mixed (when multiple bucket types contribute non-zero amounts), or NULL when no amounts have been recorded yet. |
due_date | DATE | Date the capital activity is due (or to be paid out, for distributions). |
notice_date | DATE | Date the notice for this capital activity was issued. |
issue_at | TIMESTAMP_NTZ | Timestamp when this capital activity was issued. |
status | VARCHAR | Lifecycle status of the capital activity (e.g., active, completed, draft). |
source | VARCHAR | Source system or workflow that originated the capital activity. |
gross_call_amount | NUMBER | Sum of all amounts associated with capital_call buckets on this activity. |
gross_distribution_amount | NUMBER | Sum of all amounts associated with distribution buckets on this activity. |
gross_return_of_excess_amount | NUMBER | Sum of all amounts associated with return_of_excess buckets on this activity. |
net_activity_amount | NUMBER | Net dollar value of the activity, signed by each bucket's impact_on_activity (increase = +, decrease = -, none = 0). This is the headline number shown in the UI. |
total_amount_owed | NUMBER | Net dollar value owed across all partner rows on this activity, signed by each bucket's impact_on_owed. |
partner_row_count | NUMBER | Number of partner line items on this capital activity. |
paid_partner_row_count | NUMBER | Number of partner line items with payment_status = 'paid'. |
partially_paid_partner_row_count | NUMBER | Number of partner line items with payment_status = 'partially_paid'. |
unpaid_partner_row_count | NUMBER | Number of partner line items with payment_status = 'unpaid'. |
created_at | TIMESTAMP_NTZ | Timestamp when the capital activity record was created. |
updated_at | TIMESTAMP_NTZ | Timestamp when the capital activity record was last updated. |
is_stale | BOOLEAN | Whether the capital activity is stale (downstream data has changed since issuance). |
is_unlocked | BOOLEAN | Whether the capital activity is unlocked for editing. |
is_fully_paid | BOOLEAN | True when all partner line items are paid (no unpaid or partially-paid rows). |
is_partially_paid | BOOLEAN | True when at least one partner row is paid and at least one is unpaid or partial. |
_pk | VARCHAR | Generated surrogate primary key derived from capital_activity_id. |
firm_id | VARCHAR | Foreign key to the management firm (used for row-level access policies). |
fund_uuid | VARCHAR | Foreign key to the fund (used for row-level access policies). |
capital_activity_id | VARCHAR | Unique identifier for the capital activity. |
supersedes_capital_activity_id | NUMBER | When this activity replaces a prior one, the id of the prior capital activity. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
Capital Activity Partner Rows
One row per (capital_activity, partner) — the per-partner line items for every capital call, distribution, or return of excess. Mirrors the per-activity detail view in the Carta investor portal. Includes paid_date, days_late, and bucket-typed dollar amounts. This is the table that consumers should use to monitor capital call payment timeliness. The firm_id and fund_uuid columns are foreign keys to funds and are used for row-level access policies. Pagination sort: fund_name, due_date DESC, partner_name, _pk
| Column | Type | Description |
|---|---|---|
fund_name | VARCHAR | Name of the fund that issued this capital activity. |
activity_type | VARCHAR | Type of capital activity: capital_call, distribution, return_of_excess, mixed, or NULL when no amounts have been recorded yet. Inherited from the parent capital activity. |
due_date | DATE | Date the capital activity is due (or to be paid out, for distributions). |
partner_name | VARCHAR | Legal or registered name of the partner this line item belongs to. |
notice_date | DATE | Date the notice for this capital activity was issued. |
issue_at | TIMESTAMP_NTZ | Timestamp when this capital activity was issued. |
activity_status | VARCHAR | Lifecycle status of the parent capital activity (e.g., active, completed). |
amount_owed | NUMBER | Net dollar amount owed by this partner for this activity, signed by each bucket's impact_on_owed. Positive for capital calls, negative for distributions. |
capital_call_amount | NUMBER | Sum of amounts on this partner row tied to capital_call buckets (always non-negative). |
distribution_amount | NUMBER | Sum of amounts on this partner row tied to distribution buckets (always non-negative). |
return_of_excess_amount | NUMBER | Sum of amounts on this partner row tied to return_of_excess buckets. |
net_activity_amount | NUMBER | Net dollar value of this partner's line item, signed by each bucket's impact_on_activity. |
paid_date | DATE | Date the partner's wire was received (capital calls) or distribution paid out. GP-entered. Null when unpaid. |
in_kind_paid_date | DATE | Date the in-kind portion of the activity was settled, when applicable. |
days_late | NUMBER | Days between due_date and paid_date. Computed as DATEDIFF('day', due_date, COALESCE(paid_date, CURRENT_DATE)). Negative values mean paid before due date. For unpaid rows, this is days elapsed since due date. |
payment_status | VARCHAR | Cash payment status (paid, partially_paid, unpaid). |
in_kind_payment_status | VARCHAR | In-kind payment status. |
notes | VARCHAR | GP-entered notes on this partner's line item. |
created_at | TIMESTAMP_NTZ | Timestamp when this row was created. |
updated_at | TIMESTAMP_NTZ | Timestamp when this row was last updated. |
is_email_notice_enabled | BOOLEAN | Whether the partner is configured to receive the notice via email. |
is_pdf_notice_enabled | BOOLEAN | Whether the partner is configured to receive the notice as a PDF document. |
is_paid | BOOLEAN | True when payment_status = 'paid'. |
is_partially_paid | BOOLEAN | True when payment_status = 'partially_paid'. |
is_unpaid | BOOLEAN | True when payment_status = 'unpaid'. |
_pk | VARCHAR | Generated surrogate primary key derived from capital_activity_row_id. |
firm_id | VARCHAR | Foreign key to the management firm (used for row-level access policies). |
fund_uuid | VARCHAR | Foreign key to the fund (used for row-level access policies). |
capital_activity_id | VARCHAR | Foreign key to the parent capital activity. |
capital_activity_row_id | VARCHAR | Unique identifier for this partner line item. |
partner_id | NUMBER | Foreign key to the partner. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
Capital Activity Row Journal Entries
Many-to-many junction between capital activity partner rows and journal entries. One row per (capital_activity_row_id, journal_entry_id) link. Use to navigate between capital_activity_partner_rows and journal_entries. Approximately 98% of rows link to exactly one journal entry on each side; the remaining ~2% genuinely link to multiple, so this is exposed as a junction rather than a scalar FK on either parent table. The firm_id and fund_uuid columns are used for row-level access policies. Pagination sort: fund_name, _pk
| Column | Type | Description |
|---|---|---|
fund_name | VARCHAR | Name of the fund both records belong to. |
link_id | NUMBER | Surrogate identifier of the link record from the source junction table. |
_pk | VARCHAR | Generated surrogate primary key from [capital_activity_row_id, journal_entry_id]. |
firm_id | VARCHAR | Foreign key to the management firm (used for row-level access policies). |
fund_uuid | VARCHAR | Foreign key to the fund (used for row-level access policies). |
capital_activity_row_id | VARCHAR | Foreign key to capital_activity_partner_rows.capital_activity_row_id. |
journal_entry_id | VARCHAR | Foreign key to journal_entries.journal_entry_id. |
capital_activity_id | VARCHAR | Convenience FK to the parent capital activity (inherited from the partner row). |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
Cash Transaction
Bank movements recorded against a loan — the actual cash, as opposed to the obligations that cash settles. One row per bank transaction. Payment Application links these to the obligations they pay; one payment routinely settles several obligations, so applied_amount is the total allocated across them and applied_obligation_count is how many it covers. unapplied_amount is what remains unallocated. Transactions are scoped through the loan rather than through the bank account, because many bank accounts belong to borrowers or standalone lenders that sit under no lending firm. Bank credentials, account number, routing number, and beneficiary details are deliberately excluded and are not available here. Pagination sort: loan_name, transaction_date DESC, _pk
| Column | Type | Description |
|---|---|---|
loan_name | VARCHAR | Loan the transaction was recorded against. |
borrower_name | VARCHAR | Borrower company name. |
transaction_date | DATE | Date the money moved. |
transaction_name | VARCHAR | Free-text label entered in the app (e.g. "Payment Received"). |
amount | NUMBER | Amount of the movement. |
amount_currency | VARCHAR | ISO currency code of amount. |
applied_amount | NUMBER | Net amount allocated to payment obligations. Net rather than gross: a recalled payment is recorded as a negative allocation, so this can be negative or zero even where allocations exist. |
unapplied_amount | NUMBER | amount less applied_amount. Where allocations have been reversed this can exceed amount, which is correct — the cash arrived and is no longer allocated anywhere. |
applied_obligation_count | NUMBER | Number of allocation records against this transaction, including reversals. Use this rather than applied_amount <> 0 to tell whether a transaction has ever been allocated. |
status | VARCHAR | Transaction status. NULL on older rows that predate the field. |
payment_strategy | VARCHAR | How the payment was made (e.g. Manual). NULL on older rows. |
lending_firm_name | VARCHAR | Lending firm that services the loan. |
created_at | TIMESTAMP_NTZ | Timestamp the transaction was recorded. |
updated_at | TIMESTAMP_NTZ | Timestamp the transaction was last updated. |
is_applied | BOOLEAN | True when any amount has been allocated to an obligation. |
_pk | VARCHAR | Surrogate primary key derived from the bank transaction ID. |
lending_firm_id | VARCHAR | Lending firm UUID. Used to enforce row access policy. |
cash_transaction_id | VARCHAR | Unique identifier for the bank transaction. |
loan_id | VARCHAR | Loan UUID the transaction belongs to. |
memo_id | VARCHAR | Memo the transaction settles, if linked. |
omad | VARCHAR | Fedwire output message accountability data, when present. |
imad | VARCHAR | Fedwire input message accountability data, when present. |
fpi_transaction_reference_id | VARCHAR | Reference ID from the payments provider. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
Company
Every party to a loan — lending firms, borrowers, lenders, agents, and service providers. The grain is (company, lending firm), not one row per company. A company can belong to several lending firms, and each firm should see its own relationship, so count companies with COUNT(DISTINCT company_id) rather than COUNT(*). firm_link_source records how the relationship was established: Self is a lending firm's own row, Declared means the company carries the firm pointer, and Participation means the relationship was derived from the loans the company takes part in — the normal path for most borrowers, since a borrower belongs to a loan rather than to a firm. Companies that reach no lending firm by any path produce no rows, as there is nothing to scope them by. Pagination sort: lending_firm_name, company_name, _pk
| Column | Type | Description |
|---|---|---|
company_name | VARCHAR | Company display name. |
lending_firm_name | VARCHAR | Name of the lending firm this row scopes the company to. |
company_type | VARCHAR | Party type. |
firm_link_source | VARCHAR | How the company reached this firm. Possible values: Self (the firm's own row), Declared (the company carries the pointer), Participation (derived from loans it takes part in). |
slug | VARCHAR | URL-safe form of the company name. |
address | VARCHAR | Company address as entered in the app. |
website | VARCHAR | Company website. |
timezone | VARCHAR | Company timezone. |
service_level | VARCHAR | Service level (e.g. FullyManaged). NULL for most companies. |
onboarding_step | VARCHAR | Where the company sits in onboarding. |
created_at | TIMESTAMP_NTZ | Timestamp the company was created. |
updated_at | TIMESTAMP_NTZ | Timestamp the company was last updated. |
is_staff | BOOLEAN | Whether this is a Carta staff company rather than a customer party. |
is_ai_enabled | BOOLEAN | Whether AI features are enabled for the company. |
is_lending_firm | BOOLEAN | True when the company is the lending firm on this row — its own Self relationship. |
_pk | VARCHAR | Surrogate primary key derived from (company_id, lending_firm_id), matching the grain. |
lending_firm_id | VARCHAR | Lending firm UUID this row is scoped to. Used to enforce row access policy. |
company_id | VARCHAR | Unique identifier for the company. Not unique within this table — see the grain note above. |
carta_managed_sso_uuid | VARCHAR | Carta firm UUID where SSO is managed by Carta. Sparsely populated. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
Company Financials
Contains portfolio company financial and KPI data Pagination sort: legal_name, as_of_date DESC, mnemonic
| Column | Type | Description |
|---|---|---|
legal_name | VARCHAR | The legal name of the portfolio company |
as_of_date | DATE | The date the data was collected |
period_start | DATE | The start date of the period the data point was collected for |
period_end | DATE | The end date of the period the data point was collected for |
mnemonic | VARCHAR | A short code for the metric name |
entity_type | VARCHAR | The type of entity the financial data belongs to (CORP for corporations, LLC for LLCs) |
is_latest | BOOLEAN | A flag indicating if this is the latest (by as_of_date) data point for a given metric during a given period |
instance_type | VARCHAR | Whether the data point is an Estimate or Actual |
report_type | VARCHAR | Indicates if the data point is a Profit and Loss, Cash Flow, Balance Sheet, or KPI |
name | VARCHAR | The name of the metric |
frequency | VARCHAR | The frequency of the period the data point was collected for, e.g. ANN, MON, QTR, SA |
float_value | FLOAT | The float value of the metric |
string_value | VARCHAR | The string value of the metric if the metric could not be represented as a float |
currency | VARCHAR | The currency of the metric |
unit_type | VARCHAR | The unit type of the metric e.g. Dollar, Percentage, Ratio, Number |
source_type | VARCHAR | The source type of the metric e.g. Direct Import, Xero, Excel Import, Codat Import |
agg_method | VARCHAR | The aggregation method of the metric e.g. Sum, Average, Max, Min |
data_type_description | VARCHAR | The description of the metric |
firm_name | VARCHAR | Name of the management firm |
corporation_id | VARCHAR | The Carta Corporation UUID of the portfolio company. NULL for LLC rows. |
llc_entity_id | VARCHAR | The LLC entity UUID. NULL for CORP rows. |
_pk | VARCHAR | Primary key for the company financials |
instance_id | NUMBER | An instance represents a collection of data representing a given period data can be collected for the same period multiple times. |
firm_id | VARCHAR | Unique identifier for the management firm |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
Corporation Basic Info
Corporation basic information including legal name, description, complete address details, website, logo, and CEO name. Consolidates data from legal entity, legal entity profile, and organization tables with fallback logic for logo and website. Firm-level overrides take precedence over Carta values when present for: corporation name, description, address, website, CEO, and foundation year. Grain: one row per corporation. CEO information matches the Carta application but may be overridden by firm-level overrides. Filters applied: pro forma corporations are excluded; corporations hidden from portfolio are excluded; voided corporations are excluded. Pagination sort: corporation_name, _pk
| Column | Type | Description |
|---|---|---|
corporation_name | VARCHAR | Official legal name of the corporation. Uses firm issuer override name when available, otherwise falls back to legal entity record. |
corporation_description | VARCHAR | Business description or summary of the corporation's activities and purpose. Uses firm issuer override description when available, otherwise falls back to legal entity record. |
street_address | VARCHAR | Street address of the corporation's primary business location. When a firm issuer override address is present, this contains the full address string (e.g. "100 Webster, Oakland, California 94607, United States") and city, state, postal_code, country will be NULL. |
city | VARCHAR | City where the corporation is located. NULL when a override address is present (see street_address). |
state | VARCHAR | State or province where the corporation is located. NULL when a override address is present (see street_address). |
postal_code | VARCHAR | Postal/ZIP code of the corporation's address. NULL when a override address is present (see street_address). |
country | VARCHAR | Country code in ISO 3166-1 alpha-3 format (e.g., USA, CAN, GBR). Converted from full country names in the base model. NULL when a override address is present (see street_address). |
website_url | VARCHAR | Corporation website URL. Uses firm issuer override website when available, then LegalEntityProfile website, then falls back to Organization website. |
logo_id | VARCHAR | Logo image identifier reference. Uses LegalEntityProfile logo_id first, falls back to Organization logo_id if LegalEntityProfile is null. This ID can be used to construct full logo URLs in application layer. |
ceo_name | VARCHAR | Full name of the corporation's CEO. Uses firm-level override when available, otherwise derived from the most recent active user with a CEO-level title (titles matching 'chief executive' or 'ceo', case-insensitive). May be null if no CEO data exists. |
foundation_year | NUMBER | Year the corporation was incorporated. Uses firm issuer override date of incorporation when available, otherwise extracted from the Carta Web incorporation_date. May be null if no incorporation date is available from either source. |
is_carta_customer | BOOLEAN | Boolean flag indicating whether the corporation is currently a Carta customer actively managing their cap table. TRUE when the corporation is on the Carta platform and has not churned. FALSE when the corporation has never been a Carta customer or has stopped using Carta services. Churn status is determined from the most recent churn record. |
_pk | VARCHAR | Surrogate primary key generated from corporation_id |
corporation_id | NUMBER | Unique identifier for the corporation |
corporation_uuid | VARCHAR | Universal unique identifier for the corporation in UUID format |
_loaded_at | TIMESTAMP_NTZ | Timestamp indicating when the most recent source data was loaded into Snowflake. Calculated as the maximum _loaded_at from all source tables used in this model, including the firm issuer override table. Useful for tracking data freshness and identifying stale records. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
Corporation Basic Info V2
Entity basic information including legal name, description, complete address details, website, logo, and CEO name. Grain is one row per (firm_id, entity_link_id), covering both Carta corporations and paper companies (non-Carta entities) that exist only as entity links within a firm. Consolidates data from legal entity, legal entity profile, and organization tables with fallback logic for logo, website, and corporation name. For paper companies, corporation_id and corporation_uuid may be NULL and all corporation fields are sourced exclusively from firm-level overrides. Firm-level overrides take precedence over Carta values when present for: corporation name, description, address, website, CEO, and foundation year. CEO information matches the Carta application but may be overridden by firm-level overrides. Filters applied: pro forma corporations are excluded; corporations hidden from portfolio are excluded; voided corporations are excluded. Pagination sort: corporation_name, _pk
| Column | Type | Description |
|---|---|---|
corporation_name | VARCHAR | Official legal name of the corporation. Priority: (1) firm issuer override name, (2) Carta Web legal entity record, (3) legal_name from the corporation links view (covers paper companies that have no Carta Web profile). |
corporation_description | VARCHAR | Business description or summary of the corporation's activities and purpose. Uses firm issuer override description when available, otherwise falls back to legal entity record. |
street_address | VARCHAR | Street address of the corporation's primary business location. When a firm issuer override address is present, this contains the full address string (e.g. "100 Webster, Oakland, California 94607, United States") and city, state, postal_code, country will be NULL. |
city | VARCHAR | City where the corporation is located. NULL when a override address is present (see street_address). |
state | VARCHAR | State or province where the corporation is located. NULL when a override address is present (see street_address). |
postal_code | VARCHAR | Postal/ZIP code of the corporation's address. NULL when a override address is present (see street_address). |
country | VARCHAR | Country code in ISO 3166-1 alpha-3 format (e.g., USA, CAN, GBR). Converted from full country names in the base model. NULL when a override address is present (see street_address). |
website_url | VARCHAR | Corporation website URL. Uses firm issuer override website when available, then LegalEntityProfile website, then falls back to Organization website. |
logo_id | VARCHAR | Logo image identifier reference. Uses LegalEntityProfile logo_id first, falls back to Organization logo_id if LegalEntityProfile is null. This ID can be used to construct full logo URLs in application layer. |
ceo_name | VARCHAR | Full name of the corporation's CEO. Uses firm-level override when available, otherwise derived from the most recent active user with a CEO-level title (titles matching 'chief executive' or 'ceo', case-insensitive). May be null if no CEO data exists. |
foundation_year | NUMBER | Year the corporation was incorporated. Uses firm issuer override date of incorporation when available, otherwise extracted from the Carta Web incorporation_date. May be null if no incorporation date is available from either source. |
is_carta_customer | BOOLEAN | Boolean flag indicating whether the corporation is currently a Carta customer actively managing their cap table. TRUE when the corporation is on the Carta platform and has not churned. FALSE when the corporation has never been a Carta customer or has stopped using Carta services. Churn status is determined from the most recent churn record. |
_pk | VARCHAR | Surrogate primary key generated from firm_id and entity_link_id |
firm_id | VARCHAR | UUID of the firm that holds this portco via an entity link. |
entity_link_id | VARCHAR | Entity link identifier that uniquely identifies the portco relationship within a firm. Together with firm_id, forms the grain of this table. Used as the join key for firm-level override data. |
corporation_id | NUMBER | Integer identifier for the Carta Web corporation. NULL for paper companies that have no Carta Web corporation record. |
corporation_uuid | VARCHAR | UUID of the Carta Web corporation. NULL for paper companies that have no Carta Web corporation record. |
_loaded_at | TIMESTAMP_NTZ | Timestamp indicating when the most recent source data was loaded into Snowflake. Calculated as the maximum _loaded_at from all source tables used in this model, including the firm issuer override table and the corporation links view. Useful for tracking data freshness and identifying stale records. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
Corporation Entity Links
Links between general ledger issuers and their corresponding corporation entities, indicating whether the corporation is a Carta customer and providing key identifiers for cross-referencing between and corporation data systems. Pagination sort: firm_id, corporation_id
| Column | Type | Description |
|---|---|---|
general_ledger_issuer_id | VARCHAR | Unique identifier for the issuer found in the general ledger. Used for issuer-level aggregations and hierarchies. |
corporation_id | VARCHAR | Unique identifier for the corporation. Used as both a primary key and a foreign key. |
is_carta_customer | BOOLEAN | Indicates if the corporation is a Carta customer. Non-Carta companies are sometimes referred to as "paper companies" and are used to manually track investments for fund accounting purposes. |
_pk | VARCHAR | Surrogate primary key generated from firm_id, general_ledger_issuer_id, and corporation_id |
firm_id | VARCHAR | Unique identifier for the management firm. Used as both a primary key and a foreign key. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
Corporation Entity Links V2
Simplified version of corporation entity links using the data_warehouse_corporation_links_view base model. This model provides mappings between Carta corporations and external entities including general ledger issuers and firm identifiers. This v2 version sources directly from the CartaWeb data warehouse materialized view for improved performance and data consistency. For each unique combination of (user_id, entity_link_id, firm_id, general_ledger_issuer_id, corporation_id), only the most recent as_of_date record is included. Pagination sort: firm_id, corporation_id, as_of_date DESC
| Column | Type | Description |
|---|---|---|
general_ledger_issuer_id | VARCHAR | Unique identifier for the issuer found in the general ledger. Used for issuer-level aggregations and hierarchies. |
corporation_id | VARCHAR | Unique identifier for the corporation (UUID format). Used as both a primary key and a foreign key. May be null for firm-level entity links that are not associated with a specific corporation. |
as_of_date | DATE | The date this link record is effective as of. For each unique key combination, only the record with the most recent as_of_date is included. |
is_carta_customer | BOOLEAN | Indicates if the corporation is a Carta customer. Non-Carta companies are sometimes referred to as "paper companies" and are used to manually track investments for fund accounting purposes. |
legal_name | VARCHAR | Legal name of the corporation as registered in official records. This is the formal, registered name of the entity. |
pro_forma_of_corporation_id | NUMBER | Pro forma corporation ID referencing the original corporation that this record is a copy of. Pro forma corporations are copies of real corporations on the platform used for financial modeling and scenario planning. When present, this indicates the source corporation that was copied. Null for actual corporations (not pro forma copies). |
user_id | NUMBER | User ID associated with this corporation entity link. May be null if no user is associated. |
entity_link_id | VARCHAR | External entity link identifier that connects the corporation to systems. May be null if no external entity link exists. |
corporation_entity_link_key | VARCHAR | Surrogate key generated from user_id, entity_link_id, firm_id, general_ledger_issuer_id, and corporation_id. Provides a stable, unique identifier for each corporation entity link. |
firm_id | VARCHAR | Unique identifier for the management firm. Used as both a primary key and a foreign key. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
Custom Field
One row per user-defined (custom) field value, in long key-value form: the value of a custom field on a specific entity (lender, loan, borrower, structure, advance, instrument, or fee). Kept long rather than pivoted into columns so it serves every firm with no schema change when fields are added or renamed — pivot to columns at query time on entity_id and field_name. Each firm sees only the fields it defined. Pagination sort: entity_type, entity_name, field_name, _pk
| Column | Type | Description |
|---|---|---|
entity_type | VARCHAR | The entity type the field is defined for (e.g. Lender, Loan, Borrower, Structure, Advance, Instrument). |
entity_name | VARCHAR | Name of the entity the value is attached to, resolved from the matching entity by entity_id. NULL only when the referenced entity has since been deleted, leaving an orphaned value. |
field_name | VARCHAR | Custom field name (e.g. "Portfolio Name", "Functional Currency"). |
field_type | VARCHAR | Field data type (e.g. Text, Select, Number). |
field_value | VARCHAR | The field value as a string. Non-text values are rendered in their string form. |
_pk | VARCHAR | Surrogate primary key derived from (entity_id, user_defined_field_id) — one value per entity per field. |
lending_firm_id | VARCHAR | Lending firm UUID that owns the field. Used to enforce row access policy. |
entity_id | VARCHAR | UUID of the entity the value is attached to, per entity_type. |
user_defined_field_id | VARCHAR | Unique identifier for the custom field. |
user_defined_field_value_id | VARCHAR | Unique identifier for the custom field value. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
Default Event
One row per default event: a period during which a structure was in default. Effective-dated. A null end_date means the default is still open, not that data is missing, which is what is_open reports — there is no status column at source. While a default is open the loan typically accrues at the default rate, which is why obligations of type Default appear in the payment tables for the same period. Pagination sort: loan_name, start_date DESC, _pk
| Column | Type | Description |
|---|---|---|
loan_name | VARCHAR | Loan this record belongs to. |
borrower_name | VARCHAR | Borrower on the loan. |
structure_name | VARCHAR | Structure that went into default. |
start_date | DATE | Date the default period opened. |
end_date | DATE | Date the default period closed. Null means the default is still open, not that the date is missing — see is_open. |
duration_days | NUMBER | Days the default has run: end_date less start_date, or today less start_date while the default is still open. Grows daily on open defaults, and is recomputed at refresh rather than at query time. |
comment | VARCHAR | Free-text note recorded against the default event. |
structure_type | VARCHAR | Facility type of the structure in default. |
lending_firm_name | VARCHAR | Lending firm that services the loan. |
created_at | TIMESTAMP_NTZ | Timestamp the default event record was created. |
updated_at | TIMESTAMP_NTZ | Timestamp the default event record was last updated. |
is_open | BOOLEAN | Convenience boolean — true when end_date is null, meaning the default has not been resolved. There is no status column at source; this is the signal. |
has_started | BOOLEAN | Convenience boolean — true when start_date has been reached. Evaluated when the data is refreshed, so compute start_date <= CURRENT_DATE() at query time if you need it exact. |
_pk | VARCHAR | Surrogate primary key for the row. |
lending_firm_id | VARCHAR | Lending firm UUID. Used to enforce row access policy. |
default_event_id | VARCHAR | Default event UUID. |
structure_id | VARCHAR | Structure this default event belongs to. |
loan_id | VARCHAR | Loan this default event belongs to. |
box_folder_id | VARCHAR | Box folder id holding the default event's documents. Null when no folder exists. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed. |
Document
One row per loan document, with what it is attached to. A document links to the thing it evidences through a polymorphic link: primary_target_type names the entity kind and primary_target_id its id, with no foreign key behind it, so interpret the id against the type. A document can be linked more than once, so link_count reports how many, primary_target_* describes the earliest link, and target_types lists the full set. extraction_status and review_status describe the AI extraction pipeline rather than the document itself, and are null on almost every row because extraction has run on only a handful — null there means not processed, not missing. Pagination sort: loan_name, file_name, _pk
| Column | Type | Description |
|---|---|---|
file_name | VARCHAR | Document file name as uploaded. |
loan_name | VARCHAR | Loan the document belongs to. Null when the document is not loan-scoped. |
borrower_name | VARCHAR | Borrower on the loan. |
document_type | VARCHAR | Document type as classified at source. |
source | VARCHAR | How the document arrived — Inbox, Widget, or OnboardingBulk. |
link_count | NUMBER | Number of entities this document is linked to. Zero when unlinked. |
primary_target_type | VARCHAR | Entity kind of the primary link. Null when the document is unlinked. Interpret alongside primary_target_id, which comes from the same link. |
primary_target_name | VARCHAR | Display name of the primary link target. Null when the target no longer exists, meaning the entity was deleted after the link was made. |
target_types | VARCHAR | Comma-separated distinct entity kinds this document links to. |
extraction_status | VARCHAR | State of the AI extraction pipeline for this document. Null means not processed. |
review_status | VARCHAR | State of human review of the extraction. Null means not reviewed. |
error_message | VARCHAR | Extraction failure message, when extraction ran and failed. |
lending_firm_name | VARCHAR | Lending firm that owns the document. |
reviewed_at | TIMESTAMP_NTZ | Timestamp the extraction was reviewed. Null until reviewed. |
created_at | TIMESTAMP_NTZ | Timestamp the document record was created. |
updated_at | TIMESTAMP_NTZ | Timestamp the document record was last updated. |
is_reviewed | BOOLEAN | Convenience boolean — true when reviewed_at is populated. |
is_extracted | BOOLEAN | Whether the AI extraction pipeline has completed for this document. |
is_linked | BOOLEAN | Convenience boolean — true when link_count is greater than zero. |
_pk | VARCHAR | Surrogate primary key for the row. |
lending_firm_id | VARCHAR | Lending firm UUID. Used to enforce row access policy. |
loan_document_id | VARCHAR | Document UUID. |
loan_id | VARCHAR | Loan UUID. Null when the document is not loan-scoped. |
primary_target_id | VARCHAR | UUID of the primary link target. Polymorphic — interpret it against primary_target_type, as there is no foreign key behind it. |
box_file_id | VARCHAR | Box file id backing the stored document. |
uploaded_by_user_id | VARCHAR | UUID of the user who uploaded the document. |
reviewed_by_user_id | VARCHAR | UUID of the user who reviewed the extraction. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed. |
Document Ai Document
Universal document registry across all document types. One row per extraction per document, filtered to current extraction. This model bridges the document domain and document_ai domain: join from document models on document_id, then use extraction_id to reach type-specific tables (e.g., document_ai_spa). Pagination sort: firm_id, document_id
| Column | Type | Description |
|---|---|---|
document_type | VARCHAR | Type of the document. Current values: 'Stock Purchase Agreement (SPA)'. New document types will be added as extraction support expands. |
page_count | NUMBER | Number of pages in the document |
extraction_id | VARCHAR | Unique identifier for the current extraction of this document |
_pk | VARCHAR | Surrogate primary key generated from document_id and extraction_id |
document_id | VARCHAR | Unique identifier for the document |
firm_id | VARCHAR | Unique identifier of the management firm that owns the document |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
Document Ai Extraction
Raw extraction payload for each document. One row per current extraction, keyed by extraction_id. Contains the full extracted JSON for debugging and audit. Prefer the type-specific tables (e.g., document_ai_spa_*) for structured queries. Pagination sort: firm_id, extracted_at DESC, document_id
| Column | Type | Description |
|---|---|---|
extracted_at | TIMESTAMP_NTZ | Timestamp when the document was extracted |
enriched_at | TIMESTAMP_NTZ | Timestamp when the document was enriched |
raw_json | VARIANT | VARIANT containing the full extracted JSON payload. Top-level keys include parties (company, purchasers), deal_terms (closing_dates, price_per_share_by_series), and capitalization (preferred_designations). Structure varies by document_type. |
_pk | VARCHAR | Surrogate primary key generated from extraction_id |
extraction_id | VARCHAR | Unique identifier for the extraction |
document_id | VARCHAR | Unique identifier for the document |
firm_id | VARCHAR | Unique identifier of the management firm that owns the document |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
Document Ai Spa
One row per SPA extraction. Contains scalar deal-level attributes for Stock Purchase Agreements. Related tables: document_ai_spa_issuer (company party), document_ai_spa_purchaser (investor parties), document_ai_spa_series (preferred stock designations). All joinable on extraction_id. Pagination sort: firm_id, closing_date DESC, document_id
| Column | Type | Description |
|---|---|---|
extraction_id | VARCHAR | Unique identifier for the SPA extraction |
closing_date | DATE | First closing date from the deal terms |
_pk | VARCHAR | Surrogate primary key generated from extraction_id |
document_id | VARCHAR | Unique identifier for the SPA document |
firm_id | VARCHAR | Unique identifier of the management firm that owns the document |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
Document Ai Spa Issuer
One row per SPA extraction. The company/issuer party extracted from the Stock Purchase Agreement. Join to document_ai_spa on extraction_id for deal terms. Pagination sort: issuer_name, firm_id, document_id
| Column | Type | Description |
|---|---|---|
issuer_name | VARCHAR | Name of the issuing company |
address | VARCHAR | Address of the issuing company |
jurisdiction | VARCHAR | Jurisdiction of incorporation of the issuing company |
ceo_or_key_officer | VARCHAR | CEO or key officer named in the SPA |
executed_by_issuer | BOOLEAN | Whether the SPA was executed by the issuer |
_pk | VARCHAR | Surrogate primary key generated from extraction_id |
extraction_id | VARCHAR | Unique identifier for the SPA extraction |
document_id | VARCHAR | Unique identifier for the SPA document |
firm_id | VARCHAR | Unique identifier of the management firm that owns the document |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
Document Ai Spa Purchaser
One row per purchaser per SPA extraction. Flattened from the purchasers array in the Stock Purchase Agreement extraction. Multiple rows per extraction_id. Join to document_ai_spa on extraction_id for deal terms. Pagination sort: purchaser_name, firm_id, document_id
| Column | Type | Description |
|---|---|---|
purchaser_name | VARCHAR | Name of the purchasing entity |
entity_type | VARCHAR | Legal entity type of the purchaser (e.g., L.P., LLC) |
share_class_name | VARCHAR | Name of the share class purchased |
shares_purchased | NUMBER | Number of shares purchased by cash |
total_amount_paid | NUMBER | Total amount paid for the shares |
price_per_share | NUMBER | Price per share paid by the purchaser |
_pk | VARCHAR | Surrogate primary key generated from extraction_id and purchaser index |
extraction_id | VARCHAR | Unique identifier for the SPA extraction |
document_id | VARCHAR | Unique identifier for the SPA document |
firm_id | VARCHAR | Unique identifier of the management firm that owns the document |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
Document Ai Spa Series
One row per preferred series per SPA extraction. Flattened from the capitalization preferred designations array in the Stock Purchase Agreement extraction. Multiple rows per extraction_id. Join to document_ai_spa on extraction_id for deal terms. Pagination sort: series_name, firm_id, document_id
| Column | Type | Description |
|---|---|---|
series_name | VARCHAR | Name of the preferred stock series |
designated_shares | NUMBER | Number of shares designated for this series |
outstanding_pre_closing | NUMBER | Number of shares outstanding before closing |
price_per_share | NUMBER | Price per share for this series from deal terms. May be null for older records. |
shares_issued | NUMBER | Shares issued by series after all closings from deal terms. May be null for older records. |
_pk | VARCHAR | Surrogate primary key generated from extraction_id and series index |
extraction_id | VARCHAR | Unique identifier for the SPA extraction |
document_id | VARCHAR | Unique identifier for the SPA document |
firm_id | VARCHAR | Unique identifier of the management firm that owns the document |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
Fee
One row per fee, with how it is calculated, when it accrues and what has been charged against it. A fee attaches at whichever level it was agreed: loan, structure or advance. All three ids are nullable and most fees carry only the loan, so treat a null structure_id as "not structure-scoped" rather than missing data. amount_type says how the amount is derived — Flat is a fixed sum, the *Fraction types are a rate applied to a base, and MOIC is a multiple. The matching amount_* column carries the rate, and all rates are decimal fractions (0.02 = 2%). Only one of them is populated for a given fee. Accrual and payment schedules are RFC-5545 recurrence strings at source. The raw rule is kept alongside parsed frequency and interval columns, since the rule can carry qualifiers the parsed columns do not cover. accrued_amount and paid_amount come from the obligations raised against the fee, not from the fee definition. A fee with a schedule but no obligations yet reports zero for both. accrued_amount can be negative, and so therefore can unpaid_amount — some historical fees carry credits recorded during a data migration rather than charges. Anyone summing fee income should decide deliberately whether to include them. Pagination sort: loan_name, fee_name, _pk
| Column | Type | Description |
|---|---|---|
fee_name | VARCHAR | Fee name as entered, e.g. "Closing Fee", "Commitment Fee". |
loan_name | VARCHAR | Loan the fee belongs to. |
borrower_name | VARCHAR | Borrower on the loan — the party charged the fee. |
structure_name | VARCHAR | Structure the fee is scoped to. Null for loan-level fees. |
advance_name | VARCHAR | Advance the fee is scoped to. Null unless advance-level. |
amount_type | VARCHAR | How the amount is derived. |
amount | NUMBER | Fixed or materialised amount of the fee. |
amount_currency | VARCHAR | Currency of amount, accrued_amount and paid_amount. |
amount_commitment_fraction | NUMBER | Fee rate applied to the total commitment, as a decimal fraction (0.02 = 2%). Populated only when amount_type is the matching commitment-fraction type. |
amount_undrawn_commitment_fraction | NUMBER | Fee rate applied to the undrawn portion of the commitment, as a decimal fraction — the usual shape of a commitment fee. Populated only when amount_type matches. |
amount_advance_fraction | NUMBER | Fee rate applied to the advance amount, as a decimal fraction. Populated only when amount_type matches. |
amount_outstanding_fraction | NUMBER | Fee rate applied to the outstanding balance, as a decimal fraction. Populated only when amount_type matches. See amount_outstanding_fraction_include_pik for whether capitalised PIK counts toward that balance. |
accrued_amount | NUMBER | Total charged via obligations raised against this fee. Can be negative — see the model description on historical credits. |
paid_amount | NUMBER | Portion of accrued_amount on a confirmed memo. |
unpaid_amount | NUMBER | accrued_amount less paid_amount. Negative where the accrual is a credit. |
obligation_count | NUMBER | Number of borrower-level obligations raised against this fee. |
lender_allocation_type | VARCHAR | ProRata or Custom. Custom fees have per-lender shares. |
custom_lender_count | NUMBER | Number of explicit per-lender allocations. Zero when ProRata. |
day_count_convention | VARCHAR | Day count convention used when the fee accrues over a period (e.g. ACT/360). |
general_ledger_purpose | VARCHAR | General-ledger classification the fee posts under, used to map it to the right account. Free text at source rather than an enum. |
accrual_recurrence | VARCHAR | Raw RFC-5545 recurrence rule governing accrual. |
accrual_frequency | VARCHAR | FREQ parsed from accrual_recurrence, e.g. MONTHLY. Null if absent. |
accrual_interval | NUMBER | INTERVAL parsed from accrual_recurrence. Null means the default of 1. |
payment_recurrence | VARCHAR | Raw RFC-5545 recurrence rule governing payment. |
payment_frequency | VARCHAR | FREQ parsed from payment_recurrence. |
payment_interval | NUMBER | INTERVAL parsed from payment_recurrence. Null means the default of 1. |
accrual_business_day_adjustment | VARCHAR | How an accrual date falling on a non-business day is moved. |
accrual_business_day_calendar | VARCHAR | Holiday calendar used for accrual dates, e.g. USBank. Null when none is set. |
payment_business_day_adjustment | VARCHAR | How a payment date falling on a non-business day is moved. |
payment_business_day_calendar | VARCHAR | Holiday calendar used for payment dates, e.g. USBank. Null when none is set. |
outstanding_balance_days_before | NUMBER | Number of days before the accrual date at which the outstanding balance is read, for fees priced off that balance. Null when the balance is taken on the accrual date itself. |
lending_firm_name | VARCHAR | Lending firm that services the loan. |
notes | VARCHAR | Free-text notes entered against the fee. |
due_date | DATE | Due date carried on the fee definition, for one-off fees. Scheduled fees raise their own obligations instead — see earliest_obligation_due_date. |
accrual_start_date | DATE | Date the fee begins accruing. Null when the fee does not accrue over time. |
earliest_obligation_due_date | DATE | Earliest due date across the obligations raised against this fee. Null when none have been raised. |
latest_obligation_due_date | DATE | Latest due date across the obligations raised against this fee, including projected ones. Null when none have been raised. |
created_at | TIMESTAMP_NTZ | Timestamp the fee record was created. |
updated_at | TIMESTAMP_NTZ | Timestamp the fee record was last updated. |
due_at_maturity | BOOLEAN | Whether the fee falls due at the advance's maturity rather than on a schedule. |
from_disbursement | BOOLEAN | Whether the fee is netted out of the disbursement proceeds rather than billed separately, so the borrower receives the advance less the fee. |
original_issue_discount | BOOLEAN | Whether the fee is treated as original issue discount — amortised over the life of the loan for accounting rather than recognised when charged. |
amount_outstanding_fraction_include_pik | BOOLEAN | Whether capitalised PIK counts toward the outstanding balance that amount_outstanding_fraction is applied to. |
should_apply_minimum_interest_fee_to_undrawn | BOOLEAN | Whether a minimum-interest fee extends to the undrawn portion of the commitment, rather than applying only to drawn principal. |
has_custom_lender_allocation | BOOLEAN | Whether explicit per-lender allocations exist for this fee. |
_pk | VARCHAR | Surrogate primary key for the row. |
lending_firm_id | VARCHAR | Lending firm UUID. Used to enforce row access policy. |
fee_id | VARCHAR | Fee UUID. |
loan_id | VARCHAR | Loan this fee belongs to. |
structure_id | VARCHAR | Structure the fee is scoped to. Null for loan-level fees. |
advance_id | VARCHAR | Advance the fee is scoped to. Null unless advance-level. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed. |
Financing History
Provides information on various financing rounds for different companies/corporations ("portcos") in a fund/firm's portfolio, including specifics about share classes, amounts raised, and company valuations. Each row represents a unique investment event, outlining key terms such as issue prices, types of shares issued, and investor rights. Pagination sort: raised_date DESC, investment_name, shareclass_name
| Column | Type | Description |
|---|---|---|
investment_name | VARCHAR | The legal name of the portfolio company. |
shareclass_name | VARCHAR | Shareclass name. No strict format for the values in this column. Examples include: "Series D-1 Preferred", "Preferred", "Seed-1", "SERIES A-2", "Non-Voting Series A Preferred (PANV) Stock", "Investment", ... |
raised_date | DATE | The date the first certificate was issued from a share class. |
closing_date | DATE | The date the last original issuance was issued from a share class. |
round | VARCHAR | The series/round name from the shareclass_name. Contains the string "seed" or one of: "a", "b", ..., "h" |
calculated_cash_raised | NUMBER(38,5) | shares_issued (aka "total_quantity") times original_issue_price (OIP). Can use this when (estimated) cash raised has not been entered in the Carta platform |
estimated_cash_raised | NUMBER(38,12) | The total funds raised during this funding round. This figure is independent of share prices or valuations. |
shares_issued | NUMBER | The total outstanding quantity of shares in this share class. AKA: "the share class's total quantity" |
original_issue_price | NUMBER | The price per share set at the time of issuance for this funding round. Note: This calculation does not account for post-conversion prices and uses the original issue price for consistency. |
fully_diluted_shares | NUMBER(38,12) | The total number of shares outstanding as of the closing date, including shares that could exist in the future if all options, warrants, and convertible securities are exercised. Conversion ratios are already reflected in this number. |
post_money_valuation | NUMBER(38,12) | Calculated using the original_issue_price and fully_diluted_shares. Does not account for post-conversion prices, which may lead to variations from adjusted valuations based on specific conversion scenarios. |
pre_money_valuation | NUMBER(28,12) | Calculated as post_money_valuation - cash_raised for the round. Does not account for post-conversion prices, which may lead to variations from adjusted valuations based on specific conversion scenarios. |
conversion_price | NUMBER | Conversion Price. OIP (original issue price) / conversion price = number of common shares the shareholder would receive if the stock converted to common. For example if OIP = 1 and conversion_price = .5, the shareholder would receive 2 shares of common. This calculation also affects the fully diluted shares of a company. This is overridden by conversion ratio if it is present. |
calculated_conversion_ratio | FLOAT | Conversion ratio for the security, calculated from the round terms. Used to convert preferred shares to common-equivalent shares. |
multiplier | VARCHAR | Shareclass Multiplier. This is a waterfall input and only used on preferred stock_types. In the event of a liquidation, the holder of the stock will receive OIP * Multiplier based on the seniority before common starts to participate. If the shareholder would receive more money converting preferred into common stock, then it will. A larger multiplier is better for investors but worse for the company. |
dividend_coupon | NUMBER(10,6) | Annual dividend percentage of the dividend rights (7.00 = 7%). The percentage is multiplied with the OIP to arrive at a dollar value. |
dividend_type | VARCHAR | Dividend Type. Can either be "Cumulative" or "Non-Cumulative". If a dividend is cumulative it means that dividends accrue over time. In the event of a liquidation, the unpaid dividends are added to the investor's liquidation preference before paying out common. Non-cumulative dividends don't accrue and just protect the investors from the company trying to declare a dividend on just the common shareclass. Cumulative dividends are good for investors and bad for companies. Non-cumulative dividends have little to no effect. |
preference_cap | NUMBER(10,6) | Shareclass Preference Cap. Waterfall input. OIP * preference_cap is the amount of liquidation preference the shareholder will participate along side common after the OIP * Multiplier has been paid out and before converting into common. Good for investors, bad for companies. |
is_carta_customer | BOOLEAN | Indicates if the corporation is a Carta customer. Non-Carta companies are sometimes referred to as "paper companies" and are used to manually track investments for fund accounting purposes. |
participating_preferred | BOOLEAN | Shareclass Participating Preferred. Waterfall input. If true, the shareholder will receive the OIP * Multiplier and participating_preferred along side common after the preferences have been paid. The participation is limited by preference_cap. Good for investors, bad for companies. |
_pk | VARCHAR | Surrogate primary key generated from corporation_id and share_class_id |
corporation_id | VARCHAR | Unique identifier for the corporation. Used as both a primary key and a foreign key. |
share_class_id | NUMBER | Unique identifier for the share class. The set of share classes differs for each corporation. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
Fund Cohort Deployment Velocity
Tracks fund deployment speed relative to peer funds, providing percentile benchmarks for capital deployment over time Pagination sort: fund_uuid, months_since_vintage
| Column | Type | Description |
|---|---|---|
vintage_year | NUMBER | Fund's vintage year for cohort grouping |
fund_aum_bucket | VARCHAR | Fund size category for peer comparison. Possible values are: "<1m", "1m-10m", "10m-25m", "25m-100m", "100m-250m", "250m+" |
months_since_vintage | NUMBER | Number of months elapsed since first capital call |
cumulative_invested_through_month | FLOAT | Total amount invested as of each month since vintage |
percentage_invested_through_month | FLOAT | Percentage of fund size deployed as of each month (cumulative_invested_through_month / fund_size) |
ct_companies_in_bucket | NUMBER | Number of funds in the same cohort for comparison |
p1 | FLOAT | 1st percentile of deployment rate in cohort at this time point |
p5 | FLOAT | 5th percentile of deployment rate in cohort at this time point |
p10 | FLOAT | 10th percentile of deployment rate in cohort at this time point |
p25 | FLOAT | 25th percentile of deployment rate in cohort at this time point |
p50 | FLOAT | Median deployment rate in cohort at this time point |
p75 | FLOAT | 75th percentile of deployment rate in cohort at this time point |
p90 | FLOAT | 90th percentile of deployment rate in cohort at this time point |
p99 | FLOAT | 99th percentile of deployment rate in cohort at this time point |
_pk | VARCHAR | Surrogate primary key generated from fund_uuid and months_since_vintage |
fund_uuid | VARCHAR | Unique identifier for the fund. Used as both a primary key and a foreign key. |
firm_id | VARCHAR | Unique identifier for the management firm. Used as both a primary key and a foreign key. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
Fund Corporation Ownership
Fund corporation ownership data showing the percentage and quantity of ownership that funds have in portfolio companies (corporations). Uses UUID identifiers for corporation and fund. Pagination sort: corporation_id, fund_id, as_of_date DESC
| Column | Type | Description |
|---|---|---|
as_of_date | TIMESTAMP_NTZ | The date for which the ownership snapshot is calculated |
corporation_id | VARCHAR | UUID of the portfolio company (corporation) |
fund_id | VARCHAR | UUID of the fund |
firm_id | VARCHAR | ID of the firm that owns the fund |
percentage | NUMBER | Ownership percentage (0-100) |
fully_diluted | NUMBER | Fully diluted ownership percentage |
ownership_quantity | NUMBER | Number of shares or units owned |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
_pk | VARCHAR | Surrogate primary key derived from source table id |
Fund Holdings Value
Per-fund holdings value (normalized layer). One row per (valuation/waterfall × fund), sourced from two places: (1) PORTFOLIO_VALUATION — finalized Portfolio Valuations; (2) SCENARIO_MODELING — saved Waterfall Modeling marks (including LLC_ACCOUNT multi-entity waterfalls). Four target_type variants are handled (CORPORATION, CORPORATION_ENTITY_GROUP, LLC_ISSUER, LLC_ACCOUNT). Pagination sort: fund_name, target_name, valuation_date DESC
| Column | Type | Description |
|---|---|---|
valuation_date | DATE | Valuation date for PORTFOLIO_VALUATION rows; effective date of the waterfall mark for SCENARIO_MODELING rows. |
target_type | VARCHAR | Carta cap table platform used by the portfolio company. One of CORPORATION, CORPORATION_ENTITY_GROUP, LLC_ISSUER, or LLC_ACCOUNT (the latter for multi-entity LLC waterfalls). |
target_name | VARCHAR | Legal name of the portfolio company being valued. Resolved by target_type — CORPORATION from corporation legal name; CORPORATION_ENTITY_GROUP from entity group name; LLC_ISSUER from LLC entity legal name; LLC_ACCOUNT from LLC account name (may include a firm-specific suffix). NULL only when no matching record exists. |
fund_name | VARCHAR | Fund name. Holder name for PORTFOLIO_VALUATION; corporation legal name for SCENARIO_MODELING. |
source | VARCHAR | PORTFOLIO_VALUATION (finalized portfolio valuation) or SCENARIO_MODELING (saved waterfall mark, including LLC_ACCOUNT multi-entity waterfalls). |
allocation_methodology | VARCHAR | Allocation method used to calculate holdings value. From the underlying Allocation for PORTFOLIO_VALUATION; literal NIAGARA_WATERFALL for SCENARIO_MODELING. Accepted values: WATERFALL, OPTION_PRICING_MODEL, NIAGARA_WATERFALL, COMMON_STOCK_EQUIVALENT, NIAGARA_OPM. |
target_value | NUMBER | Total portfolio company value after discounts, or exit value from waterfall modeling. |
fund_holdings_value | NUMBER | Holdings value attributable to this fund. 0 when the fund has participated in another waterfall for the same portfolio company but receives no allocation in this specific scenario (e.g. exit value below the liquidation preference stack). |
fund_proceeds_percentage | NUMBER | Fund's share of exit value, computed as fund_proceeds / target_value (matches the Niagara canonical definition). Populated for SCENARIO_MODELING; NULL for PORTFOLIO_VALUATION. |
fund_invested_capital | NUMBER | Total invested capital across all interests this fund holds in the target. For zero-padded rows (fund participated in a sibling waterfall but receives no allocation in this scenario — e.g. exit value below the LP stack), carries the fund's invested capital from the most-recent sibling waterfall for the same target+firm+fund. Populated for SCENARIO_MODELING; NULL for PORTFOLIO_VALUATION (the upstream holding model doesn't track invested capital). |
fund_moic | NUMBER | Multiple on invested capital: fund_holdings_value / fund_invested_capital. 0 when the fund receives no allocation in the scenario (zero-padded row). NULL when fund_invested_capital is NULL or zero. |
total_holdings_value | NUMBER | Total firm holdings value across all funds for this valuation/waterfall. |
_pk | VARCHAR | Surrogate primary key generated from (source, valuation_id or portfolio_valuation_mark_id, fund_id). |
firm_id | VARCHAR | Firm UUID. Used to enforce row access policy. |
target_id | VARCHAR | Identifier of the portfolio company. Corporation UUID when target_type = CORPORATION; otherwise the upstream UUID (entity group, LLC interest issuer, or LLC account). Used to enforce row access policy. |
fund_id | VARCHAR | Fund corporation UUID. |
valuation_id | NUMBER | Valuation identifier. Populated for PORTFOLIO_VALUATION rows; NULL for SCENARIO_MODELING. |
waterfall_id | VARCHAR | Waterfall mark source identifier. Populated for SCENARIO_MODELING rows; NULL for PORTFOLIO_VALUATION. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this row was last refreshed during dbt execution. |
Fund Ops Benchmarks V2
Operational benchmarks for funds based on size cohorts and vintage years joined back to fund-level tables Pagination sort: fund_name, vintage_year
| Column | Type | Description |
|---|---|---|
fund_name | VARCHAR | Name of the fund. |
vintage_year | NUMBER | Year of first capital call, used for cohort analysis |
fund_aum_bucket | VARCHAR | Fund size category used for peer grouping |
entity_type_name | VARCHAR | Legal structure classification of the fund entity (e.g., Limited Partnership, LLC) |
total_opx | NUMBER | Total operating expenses excluding management fees (legal, fund administration, etc.) |
perc_opx_to_fundsize | NUMBER | Operating expenses as percentage of fund size (total_opx / fund_size * 100) |
total_mgmt_fees | NUMBER | Total management fees paid by all partners (total_gp_mgmt_fees + total_lp_mgmt_fees) |
perc_mgmt_fees_to_fundsize | NUMBER | Management fees as percentage of fund size (total_mgmt_fees / fund_size * 100) |
dry_powder | NUMBER | Remaining capital available for investments and expenses (fund_size - total_cost_of_investments - total_opx - total_mgmt_fees) |
perc_capital_remaining | NUMBER | Percentage of fund size not yet deployed (dry_powder / fund_size * 100) |
cost_legal_fees | NUMBER | Total legal fees paid by the fund |
perc_cost_legal_fees_to_contributions | NUMBER | Legal fees as percentage of total contributions (cost_legal_fees / total_cap_contribution * 100) |
cost_software_and_technology | NUMBER | Costs related to software, technology, and IT |
perc_cost_software_and_technology_to_contributions | NUMBER | Software and technology expenses as percentage of total contributions (cost_software_and_technology / total_cap_contribution * 100) |
net_perc_capital_remaining_5th | NUMBER | 5th percentile of capital remaining percentage in cohort |
net_perc_capital_remaining_10th | NUMBER | 10th percentile of capital remaining percentage in cohort |
net_perc_capital_remaining_25th | NUMBER | 25th percentile of capital remaining percentage in cohort |
net_perc_capital_remaining_50th | NUMBER | Median capital remaining percentage in cohort |
net_perc_capital_remaining_75th | NUMBER | 75th percentile of capital remaining percentage in cohort |
net_perc_capital_remaining_90th | NUMBER | 90th percentile of capital remaining percentage in cohort |
ct_companies_capital_remaining | NUMBER | Number of funds in cohort for capital remaining analysis |
net_perc_mgmt_fees_to_fundsize_5th | NUMBER | 5th percentile of management fees as percentage of fund size |
net_perc_mgmt_fees_to_fundsize_10th | NUMBER | 10th percentile of management fees as percentage of fund size |
net_perc_mgmt_fees_to_fundsize_25th | NUMBER | 25th percentile of management fees as percentage of fund size |
net_perc_mgmt_fees_to_fundsize_50th | NUMBER | Median management fees as percentage of fund size |
net_perc_mgmt_fees_to_fundsize_75th | NUMBER | 75th percentile of management fees as percentage of fund size |
net_perc_mgmt_fees_to_fundsize_90th | NUMBER | 90th percentile of management fees as percentage of fund size |
ct_companies_mgmt_fees | NUMBER | Number of funds in cohort for management fee analysis |
net_count_gps_5th | NUMBER | 5th percentile of GP count in cohort |
net_count_gps_10th | NUMBER | 10th percentile of GP count in cohort |
net_count_gps_25th | NUMBER | 25th percentile of GP count in cohort |
net_count_gps_50th | NUMBER | Median GP count in cohort |
net_count_gps_75th | NUMBER | 75th percentile of GP count in cohort |
net_count_gps_90th | NUMBER | 90th percentile of GP count in cohort |
ct_companies_gps | NUMBER | Number of funds in cohort for GP count analysis |
net_count_lps_5th | NUMBER | 5th percentile of LP count in cohort |
net_count_lps_10th | NUMBER | 10th percentile of LP count in cohort |
net_count_lps_25th | NUMBER | 25th percentile of LP count in cohort |
net_count_lps_50th | NUMBER | Median LP count in cohort |
net_count_lps_75th | NUMBER | 75th percentile of LP count in cohort |
net_count_lps_90th | NUMBER | 90th percentile of LP count in cohort |
ct_companies_lps | NUMBER | Number of funds in cohort for LP count analysis |
net_perc_opex_to_fundsize_5th | NUMBER | 5th percentile of operating expenses as percentage of fund size |
net_perc_opex_to_fundsize_10th | NUMBER | 10th percentile of operating expenses as percentage of fund size |
net_perc_opex_to_fundsize_25th | NUMBER | 25th percentile of operating expenses as percentage of fund size |
net_perc_opex_to_fundsize_50th | NUMBER | Median operating expenses as percentage of fund size |
net_perc_opex_to_fundsize_75th | NUMBER | 75th percentile of operating expenses as percentage of fund size |
net_perc_opex_to_fundsize_90th | NUMBER | 90th percentile of operating expenses as percentage of fund size |
ct_companies_opex | NUMBER | Number of funds in cohort for operating expense analysis |
net_perc_cost_legal_fees_to_contributions_5th | NUMBER | 5th percentile of legal fees as percentage of contributions |
net_perc_cost_legal_fees_to_contributions_10th | NUMBER | 10th percentile of legal fees as percentage of contributions |
net_perc_cost_legal_fees_to_contributions_25th | NUMBER | 25th percentile of legal fees as percentage of contributions |
net_perc_cost_legal_fees_to_contributions_50th | NUMBER | Median legal fees as percentage of contributions |
net_perc_cost_legal_fees_to_contributions_75th | NUMBER | 75th percentile of legal fees as percentage of contributions |
net_perc_cost_legal_fees_to_contributions_90th | NUMBER | 90th percentile of legal fees as percentage of contributions |
ct_companies_legal | NUMBER | Number of funds in cohort for legal cost analysis |
net_perc_cost_tech_to_contributions_5th | NUMBER | 5th percentile of technology costs as percentage of contributions |
net_perc_cost_tech_to_contributions_10th | NUMBER | 10th percentile of technology costs as percentage of contributions |
net_perc_cost_tech_to_contributions_25th | NUMBER | 25th percentile of technology costs as percentage of contributions |
net_perc_cost_tech_to_contributions_50th | NUMBER | Median technology costs as percentage of contributions |
net_perc_cost_tech_to_contributions_75th | NUMBER | 75th percentile of technology costs as percentage of contributions |
net_perc_cost_tech_to_contributions_90th | NUMBER | 90th percentile of technology costs as percentage of contributions |
ct_companies_tech_cost | NUMBER | Number of funds in cohort for technology cost analysis |
net_perc_payroll_to_contributions_5th | NUMBER | 5th percentile of payroll as percentage of contributions |
net_perc_payroll_to_contributions_10th | NUMBER | 10th percentile of payroll as percentage of contributions |
net_perc_payroll_to_contributions_25th | NUMBER | 25th percentile of payroll as percentage of contributions |
net_perc_payroll_to_contributions_50th | NUMBER | Median payroll as percentage of contributions |
net_perc_payroll_to_contributions_75th | NUMBER | 75th percentile of payroll as percentage of contributions |
net_perc_payroll_to_contributions_90th | NUMBER | 90th percentile of payroll as percentage of contributions |
ct_companies_payroll | NUMBER | Number of funds in cohort for payroll analysis |
fund_id | VARCHAR | Unique identifier for the fund. Used as both a primary key and a foreign key. |
firm_id | VARCHAR | Unique identifier for the management firm. Used as both a primary key and a foreign key. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
fund | VARCHAR | Foreign key to the funds table (fund_uuid). The fund this benchmark record applies to. |
cr_fund_aum_bucket | VARCHAR | Fund size bucket for capital remaining analysis |
cr_vintage_year | NUMBER | Vintage year for capital remaining analysis |
cr_entity_type_name | VARCHAR | Capital remaining entity type for analysis |
mf_fund_aum_bucket | VARCHAR | Fund size bucket for management fee analysis |
mf_vintage_year | NUMBER | Vintage year for management fee analysis |
mf_entity_type_name | VARCHAR | Management fee entity type for analysis |
gps_fund_aum_bucket | VARCHAR | Fund size bucket for GP count analysis |
gps_vintage_year | NUMBER | Vintage year for GP count analysis |
gps_entity_type_name | VARCHAR | General partner entity type for GP count analysis |
lps_fund_aum_bucket | VARCHAR | Fund size bucket for LP count analysis |
lps_vintage_year | NUMBER | Vintage year for LP count analysis |
lps_entity_type_name | VARCHAR | LP entity type for LP count analysis |
opex_fund_aum_bucket | VARCHAR | Fund size bucket for operating expense analysis |
opex_vintage_year | NUMBER | Vintage year for operating expense analysis |
opex_entity_type_name | VARCHAR | Operating expense entity type for analysis |
legal_fund_aum_bucket | VARCHAR | Fund size bucket for legal cost analysis |
legal_vintage_year | NUMBER | Vintage year for legal cost analysis |
legal_entity_type_name | VARCHAR | Legal entity type for legal cost analysis |
tech_cost_fund_aum_bucket | VARCHAR | Fund size bucket for technology cost analysis |
tech_cost_vintage_year | NUMBER | Vintage year for technology cost analysis |
tech_cost_entity_type_name | VARCHAR | Legal entity type for technology cost analysis |
payroll_fund_aum_bucket | VARCHAR | Fund size bucket for payroll analysis |
payroll_vintage_year | NUMBER | Vintage year for payroll analysis |
payroll_entity_type_name | VARCHAR | Legal entity type for payroll analysis |
perc_mgmt_fees_to_contributions | NUMBER | Management fees as percentage of total contributions (total_mgmt_fees / total_cap_contribution * 100) |
Funds
Core fund dimension table containing fund-level properties and attributes. One row per fund. Designed as a normalized dimension to support PK/FK relationships and automatic join inference with other warehouse tables via fund_uuid. Pagination sort: fund_name, fund_uuid
| Column | Type | Description |
|---|---|---|
fund_name | VARCHAR | Name of the fund. |
vintage_date | DATE | Date of first capital call (GL-based). Used to determine vintage year and age-based metrics. |
vintage_year | NUMBER | Calendar year of first capital call, used for cohort analysis and benchmarking. |
entity_type_name | VARCHAR | Legal structure classification of the fund entity (e.g., Fund, SPV). |
firm_name | VARCHAR | Name of the management firm that operates the fund. |
fund_family_name | VARCHAR | Name of the fund family grouping related funds. |
reporting_currency | VARCHAR | Currency denomination of the fund (e.g., USD, EUR). |
investment_strategy_code | VARCHAR | Raw investment strategy code from fund properties (e.g., DIRECT_VENTURE, FUND_OF_FUNDS). |
partner_transaction_source | VARCHAR | System of record for partner transaction data (e.g., carta_gl, cats, partner_records). |
legal_structure | VARCHAR | Legal structure of the fund entity (e.g., LP, LLC). |
fund_size | NUMBER | Total committed capital across all LPs and GPs. Used for fund size cohort classification. |
fund_aum_bucket | VARCHAR | Size category for peer comparison based on fund_size. Buckets differ by entity type (Fund vs SPV). |
created_at | TIMESTAMP_NTZ | Timestamp when the fund entity was created in the system. |
updated_at | TIMESTAMP_NTZ | Timestamp when the fund entity was last updated. |
service_stop_date | DATE | Date when Carta services were stopped for this fund (if applicable). |
last_reporting_period | VARCHAR | The most recent reporting period for the fund from fund properties general properties. |
last_reporting_period_year | NUMBER | The year of the most recent reporting period for the fund. |
is_onboarding | BOOLEAN | Flag indicating if the fund is currently in the onboarding process. |
is_parallel_entity | BOOLEAN | Flag indicating if this is a parallel fund entity (e.g., parallel vehicle). |
is_using_investran | BOOLEAN | Flag indicating if the fund uses Investran as a secondary system. |
is_administered_by_carta | BOOLEAN | Flag indicating if the fund has an active full fund administration or investments-only product access. |
is_churned_fund_properties | BOOLEAN | Flag indicating if the fund is marked as churned in Carta's system. |
_pk | VARCHAR | Surrogate primary key generated from fund_uuid. |
fund_uuid | VARCHAR | Unique identifier for the fund. Foreign key to other dataset models. |
fund_id | NUMBER | Integer identifier for the fund in the system. |
carta_id | NUMBER | Identifier linking this fund to its corresponding corporation entity. |
firm_id | VARCHAR | Unique identifier for the management firm. Foreign key to firm-level tables. |
portfolio_id | NUMBER | Identifier for the portfolio this fund belongs to. |
fund_family_id | VARCHAR | Identifier for the fund family grouping related funds. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
Holdings Value
Per-fund breakdown of holdings value sourced from finalized Portfolio Valuations and saved Waterfall Modeling marks (including LLC_ACCOUNT multi-entity waterfalls). One row per (valuation/waterfall × fund). Pagination sort: fund_name, target_name, valuation_date DESC
| Column | Type | Description |
|---|---|---|
valuation_date | DATE | Valuation date (project valuation_date for PORTFOLIO_VALUATION; mark effective_date for SCENARIO_MODELING). |
target_type | VARCHAR | Carta cap table platform used by the portfolio company. One of CORPORATION, CORPORATION_ENTITY_GROUP, LLC_ISSUER, or LLC_ACCOUNT (the latter for multi-entity LLC waterfalls). |
target_name | VARCHAR | Legal name of the portfolio company being valued. Resolved by target_type — CORPORATION from corporation legal name; CORPORATION_ENTITY_GROUP from entity group name; LLC_ISSUER from LLC entity legal name; LLC_ACCOUNT from LLC account name (may include a firm-specific suffix). NULL only when no matching record exists. |
fund_name | VARCHAR | Fund name. |
source | VARCHAR | PORTFOLIO_VALUATION (finalized portfolio valuation) or SCENARIO_MODELING (saved waterfall mark, including LLC_ACCOUNT multi-entity waterfalls). |
allocation_methodology | VARCHAR | Allocation method used to calculate holdings value. Accepted values: WATERFALL, OPTION_PRICING_MODEL, NIAGARA_WATERFALL, COMMON_STOCK_EQUIVALENT, NIAGARA_OPM. Literal NIAGARA_WATERFALL for SCENARIO_MODELING. |
target_value | NUMBER | Total portfolio company value after discounts (or waterfall exit value). |
fund_holdings_value | NUMBER | Holdings value attributable to this fund. 0 when the fund has participated in another waterfall for the same portfolio company but receives no allocation in this specific scenario (e.g. exit value below the liquidation preference stack). |
fund_proceeds_percentage | NUMBER | Fund's share of exit value, computed as fund_proceeds / target_value (matches the Niagara canonical definition). Populated for SCENARIO_MODELING; NULL for PORTFOLIO_VALUATION. |
fund_invested_capital | NUMBER | Total invested capital across all interests this fund holds in the target. For zero-padded rows (fund participated in a sibling waterfall but receives no allocation in this scenario — e.g. exit value below the LP stack), carries the fund's invested capital from the most-recent sibling waterfall for the same target+firm+fund. Populated for SCENARIO_MODELING; NULL for PORTFOLIO_VALUATION (the upstream holding model doesn't track invested capital). |
fund_moic | NUMBER | Multiple on invested capital: fund_holdings_value / fund_invested_capital. 0 when the fund receives no allocation in the scenario. NULL when invested capital is NULL or zero. |
total_holdings_value | NUMBER | Total firm holdings value across all funds for this valuation/waterfall. |
_pk | VARCHAR | Surrogate primary key. |
firm_id | VARCHAR | Firm UUID. Used to enforce row access policy. |
target_id | VARCHAR | Identifier of the portfolio company. Corporation UUID when target_type = CORPORATION; otherwise the upstream UUID (entity group, LLC interest issuer, or LLC account). Used to enforce row access policy. |
fund_id | VARCHAR | Fund corporation UUID. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
Instrument
One row per instrument — the equity upside attached to a loan, held alongside the debt. Three kinds occur. A Warrant is a right to buy shares at a strike price before expiry. Equity is shares held outright. A SuccessFee is a contractual payment triggered by an exit rather than a shareholding, so it carries no shares and no strike price, and the nulls there are by design. latest_valuation_amount is the most recent mark chosen by valuation date rather than insert order, so a back-dated correction does not become the latest. realized_amount and realized_shares aggregate every realization to date, and an instrument can realize in tranches across several exits, which is why realization_count can exceed one. value_metric is free text rather than an enum — it holds phrases such as "Enterprise Value" — so do not filter on it as if it were a code. Pagination sort: loan_name, instrument_name, _pk
| Column | Type | Description |
|---|---|---|
instrument_name | VARCHAR | Instrument name. Nullable — identify a row by instrument_id rather than by name. |
loan_name | VARCHAR | Loan the instrument is attached to. |
borrower_name | VARCHAR | Borrower on the loan — the company whose equity is at stake. |
holder_name | VARCHAR | Company holding the instrument. |
instrument_type | VARCHAR | Warrant, Equity, or SuccessFee. |
effective_date | DATE | Date the instrument takes effect. |
shares | NUMBER | Shares held or subject to the right. Null on SuccessFee, which is not a shareholding. |
share_type | VARCHAR | Common, Preferred, or ParticipatingPreferred. Null on SuccessFee. |
share_price | NUMBER | Price per share at issue. |
share_price_currency | VARCHAR | ISO currency of share_price. |
strike_price | NUMBER | Exercise price per share. Warrants only. |
strike_price_currency | VARCHAR | ISO currency of strike_price. |
liquidation_preference | NUMBER | Liquidation preference multiple attached to the shares. |
latest_valuation_amount | NUMBER | Most recent mark, chosen by valuation date rather than insert order. Null when the instrument has never been valued. |
latest_valuation_currency | VARCHAR | ISO currency of latest_valuation_amount. |
valuation_count | NUMBER | Number of valuations recorded to date. Zero when never valued. |
realized_amount | NUMBER | Total proceeds realized across every exit to date. Zero when unrealized. |
realized_shares | NUMBER | Total shares realized across every exit to date. Zero when unrealized. |
realization_count | NUMBER | Number of realization events. Can exceed one, as an instrument may realize in tranches across several exits. |
value_metric | VARCHAR | Free text describing what the valuation is measured against, for example "Enterprise Value". Not an enum — do not filter on it as a code. |
value_description | VARCHAR | Free-text elaboration of the value metric. |
call_option_amount | NUMBER | Amount at which the issuer may call the instrument. |
call_option_currency | VARCHAR | ISO currency of call_option_amount. |
put_option_amount | NUMBER | Amount at which the holder may put the instrument. |
put_option_currency | VARCHAR | ISO currency of put_option_amount. |
lending_firm_name | VARCHAR | Lending firm that services the loan. |
notes | VARCHAR | Free-text notes on the instrument. |
expiration_date | DATE | Date the instrument expires. Warrants and options. |
call_option_end_date | DATE | Last date the call option may be exercised. |
put_option_end_date | DATE | Last date the put option may be exercised. |
latest_valuation_date | DATE | Date of the most recent valuation. Null when never valued. |
first_valuation_date | DATE | Date of the earliest valuation. Null when never valued. |
latest_realization_date | DATE | Date of the most recent realization. Null when unrealized. |
created_at | TIMESTAMP_NTZ | Timestamp the instrument record was created. |
updated_at | TIMESTAMP_NTZ | Timestamp the instrument record was last updated. |
has_realization | BOOLEAN | Convenience boolean — true when realization_count is greater than zero. |
has_valuation | BOOLEAN | Convenience boolean — true when valuation_count is greater than zero. |
is_expired | BOOLEAN | Whether the instrument is past its expiration date. Evaluated when the data is refreshed, so compute expiration_date < CURRENT_DATE() at query time if you need it exact. |
_pk | VARCHAR | Surrogate primary key for the row. |
lending_firm_id | VARCHAR | Lending firm UUID. Used to enforce row access policy. |
instrument_id | VARCHAR | Instrument UUID. |
loan_id | VARCHAR | Loan UUID. |
structure_id | VARCHAR | Loan structure UUID the instrument sits under. |
holder_id | VARCHAR | Company UUID of the holder. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed. |
Interest Rate Period
Every interest-rate period on every advance, open and closed — the pricing history. Interest Rate Term shows only the period in force today; this shows how the pricing got there. A null end_date means the period is still open. Periods are transfer-versioned: created_by_transfer_id and closed_by_transfer_id record the assignment or participation that opened and closed a period, so a rate can change because the position moved rather than because the terms were renegotiated. is_historical_placeholder marks rows created by a past data migration rather than by the app. They carry no interest_rate_id and therefore no rate, spread or benchmark — they exist to give earlier obligations a period to hang from. They are surfaced rather than filtered out, because dropping them would leave gaps in the timeline, but any rate analysis should exclude them. Pagination sort: loan_name, advance_name, start_date DESC, _pk
| Column | Type | Description |
|---|---|---|
loan_name | VARCHAR | Loan this record belongs to. |
advance_name | VARCHAR | Advance the period prices. |
start_date | DATE | Start of the period. Nullable — historical placeholder rows carry no dated start. |
end_date | DATE | Last day the period applies. Null means the period is still open, not that the date is missing — see is_open. |
rate_type | VARCHAR | Rate basis — Fixed, Floating or FloatingPIK. Null on historical placeholder rows, which carry no interest_rate_id. |
benchmark_name | VARCHAR | Reference benchmark name (e.g. "SOFR Overnight"). Null for fixed-rate loans. |
credit_spread | NUMBER | Credit spread over the benchmark, as a decimal fraction. |
benchmark_credit_adjustment | NUMBER | Benchmark credit adjustment (e.g. SOFR credit spread adjustment), as a decimal fraction. |
benchmark_floor | NUMBER | Floor applied to the benchmark rate, as a decimal fraction. Null if none. |
benchmark_ceiling | NUMBER | Ceiling (cap) applied to the benchmark rate, as a decimal fraction. Null if none. |
default_rate | NUMBER | Additional penalty coupon applied on default, as a decimal fraction (not a probability of default). |
pik_rate | NUMBER | PIK (paid-in-kind) rate, as a decimal fraction. Null/0 when PIK is not enabled. |
pik_proportion | NUMBER | Proportion of interest paid in kind, as a decimal fraction (0-1). |
pik_rate_type | VARCHAR | How the PIK portion is expressed — as its own rate, or as a proportion of the total interest. Determines whether pik_rate or pik_proportion is the meaningful column. |
day_count_convention | VARCHAR | Day count convention used for interest accrual (e.g. ACT/360). |
accrual_recurrence | VARCHAR | Interest accrual frequency as the raw RFC-5545 recurrence rule. accrual_frequency is the parsed form and is usually what you want. |
accrual_frequency | VARCHAR | Accrual frequency parsed out of accrual_recurrence — DAILY, WEEKLY, MONTHLY or YEARLY. Null when no recurrence is set. |
payment_recurrence | VARCHAR | Interest payment frequency as the raw RFC-5545 recurrence rule. payment_frequency is the parsed form. |
payment_frequency | VARCHAR | Payment frequency parsed out of payment_recurrence — DAILY, WEEKLY, MONTHLY or YEARLY. Null when no recurrence is set. |
duration_days | NUMBER | Days the period has run: end_date less start_date, or today less start_date while the period is still open. Grows daily on open periods, and is recomputed at refresh rather than at query time. |
borrower_name | VARCHAR | Borrower on the loan. |
lending_firm_name | VARCHAR | Lending firm that services the loan. |
first_interest_payment_date | DATE | Date of the first interest payment due under this period. |
first_benchmark_date | DATE | First date the benchmark is observed for this period. Null on fixed-rate periods. |
first_benchmark_adjustment_date | DATE | First date the benchmark is reset for this period. Null on fixed-rate periods. |
first_pik_compounding_date | DATE | First date PIK interest compounds into principal. Null when PIK is not enabled. |
created_at | TIMESTAMP_NTZ | Timestamp the rate period record was created. |
updated_at | TIMESTAMP_NTZ | Timestamp the rate period record was last updated. |
pik_enabled | BOOLEAN | Whether PIK is enabled on this rate. |
is_open | BOOLEAN | Convenience boolean — true when end_date is null, meaning the period has not been closed. |
is_current | BOOLEAN | Convenience boolean — true when today falls inside this period, i.e. it is the pricing in force now. At most one period per advance should be current. Evaluated when the data is refreshed, so it can lag the clock by up to one refresh. |
is_historical_placeholder | BOOLEAN | Marks rows created by a past data migration rather than by the app. These carry no interest_rate_id, and therefore no rate, spread or benchmark — they exist so earlier obligations have a period to hang from. Exclude from rate analysis. Nullable — some rows carry no value, so absence is not the same as false. |
was_opened_by_transfer | BOOLEAN | Convenience boolean — true when an assignment or participation opened this period, meaning the rate changed because the position moved rather than because terms were renegotiated. See created_by_transfer_id. |
was_closed_by_transfer | BOOLEAN | Convenience boolean — true when an assignment or participation closed this period. See closed_by_transfer_id. |
_pk | VARCHAR | Surrogate primary key for the row. |
lending_firm_id | VARCHAR | Lending firm UUID. Used to enforce row access policy. |
interest_rate_period_id | VARCHAR | Interest rate period UUID. |
interest_rate_id | VARCHAR | Interest rate supplying this period's term components. Null on historical placeholder rows, which is why their rate columns are empty. |
advance_id | VARCHAR | Advance this period belongs to. |
structure_id | VARCHAR | Structure the advance sits under. |
loan_id | VARCHAR | Loan this period belongs to. |
benchmark_id | VARCHAR | Benchmark the floating rate is set from. Joins to Benchmark Rate. Null for fixed-rate periods. |
created_by_transfer_id | VARCHAR | Transfer that opened this period, if any. Null when the period was not created by a transfer. |
closed_by_transfer_id | VARCHAR | Transfer that closed this period, if any. Null when the period was not closed by a transfer. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed. |
Interest Rate Term
One row per advance's currently-active interest-rate period. This exposes the rate components rather than a single pre-computed rate, so the rate can be reconstructed directly: benchmark plus credit spread and adjustments, together with PIK and day-count terms. Grain is the advance, because that is where the active rate period lives; the term components come from the structure's interest rate. This table carries current terms only, not rate history. Fixed-rate loans have a NULL benchmark_name, which is the fixed/floating signal. Join benchmark_id to Benchmark Rate for the benchmark's observed history.
| Column | Type | Description |
|---|---|---|
loan_name | VARCHAR | Loan name. |
advance_name | VARCHAR | Advance name. |
rate_type | VARCHAR | Interest rate type. Possible values: Fixed, Floating. |
benchmark_name | VARCHAR | Reference benchmark name (e.g. "SOFR Overnight"). NULL for fixed-rate loans. |
credit_spread | NUMBER | Credit spread over the benchmark, as a decimal fraction. |
benchmark_credit_adjustment | NUMBER | Benchmark credit adjustment (e.g. SOFR credit spread adjustment), as a decimal fraction. |
benchmark_floor | NUMBER | Floor applied to the benchmark rate, as a decimal fraction. NULL if none. |
benchmark_ceiling | NUMBER | Ceiling (cap) applied to the benchmark rate, as a decimal fraction. NULL if none. |
pik_rate | NUMBER | PIK (paid-in-kind) rate, as a decimal fraction. NULL or 0 when PIK is not enabled. |
pik_proportion | NUMBER | Proportion of interest paid in kind, as a decimal fraction between 0 and 1. |
default_rate | NUMBER | Additional penalty coupon applied on default, as a decimal fraction. This is not a probability of default. |
day_count_convention | VARCHAR | Day count convention used for interest accrual (e.g. ACT/360). |
accrual_recurrence | VARCHAR | Interest accrual frequency (e.g. Monthly, Quarterly). |
payment_recurrence | VARCHAR | Interest payment frequency (e.g. Monthly, Quarterly). |
maturity_date | DATE | Stated maturity date of the advance. |
rate_period_start_date | DATE | Start date of the currently-active interest-rate period. |
rate_period_end_date | DATE | End date of the currently-active interest-rate period. NULL for open-ended periods. |
pik_enabled | BOOLEAN | Whether PIK is enabled on this rate. |
_pk | VARCHAR | Surrogate primary key derived from (advance_id, interest_rate_period_id). |
lending_firm_id | VARCHAR | Lending firm UUID. Used to enforce row access policy. |
benchmark_id | VARCHAR | Benchmark UUID. Joins to Benchmark Rate. NULL for fixed-rate loans. |
loan_id | VARCHAR | Loan UUID. |
structure_id | VARCHAR | UUID of the structure the advance belongs to. |
advance_id | VARCHAR | Advance UUID. |
interest_rate_id | VARCHAR | UUID of the interest rate supplying the term components. |
interest_rate_period_id | VARCHAR | UUID of the currently-active interest-rate period. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
Irc409a Value
This model provides IRC 409A fair market valuation data for portfolio companies, including valuation reports, effective dates, and pricing information for share classes. Excludes churned corporations based on the most recent non-voided churn record. Pagination sort: legal_name, effective_date DESC
| Column | Type | Description |
|---|---|---|
legal_name | VARCHAR | Legal name of the corporation |
effective_date | DATE | Date when the 409A valuation becomes effective |
price | NUMBER | Fair market value price per share |
currency_code | VARCHAR | Currency code for the price (e.g., USD, EUR) |
expiration_date | DATE | Date when the 409A valuation expires |
stale_date | DATE | Date when the 409A valuation becomes stale |
is_common | BOOLEAN | Boolean indicating if this valuation applies to common stock |
source | VARCHAR | Source of the valuation report |
_pk | VARCHAR | Surrogate primary key generated from fmv_id and corporation_uuid |
corporation_id | NUMBER | Unique identifier for the corporation |
corporation_uuid | VARCHAR | UUID identifier for the corporation |
fmv_id | NUMBER | Unique identifier for the 409A fair market value record |
report_id | NUMBER | Unique identifier for the valuation report |
share_class_id | NUMBER | Unique identifier for the share class |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
Journal Entries
All journal entries in the general ledger. This table has a primary key of "journal_entry_id". The "firm_id" and "fund_uuid" columns are foreign keys that can be used to join with other tables. Pagination sort: fund_name, effective_date DESC, journal_entry_line_id
| Column | Type | Description |
|---|---|---|
fund_name | VARCHAR | Name of the fund. |
account_name | VARCHAR | The name of the account related to the journal entry. |
effective_date | DATE | The date at which the journal entry is effective. |
posted_date | TIMESTAMP_NTZ | The date at which the journal entry was posted. |
firm_name | VARCHAR | Name of the investment firm. |
journal_entry_id | VARCHAR | Unique identifier for each journal entry in the general ledger |
amount | NUMBER | Amount of the journal entry. |
base_currency_amount | NUMBER | Amount of the journal entry in the base currency. |
base_currency_code | VARCHAR | Currency code for the base currency of the journal entry. |
account_type | NUMBER | The code used to identify the type of the account related to the journal entry. |
normal_balance | VARCHAR | The normal balance of the account related to the journal entry, indicating whether it is a debit or credit account. |
account_description | VARCHAR | A description of the account related to the journal entry. |
journal_entry_description | VARCHAR | A description of the journal entry that may capture additional context about the journal entry. |
event_type | VARCHAR | The type of event that triggered the journal entry. |
reporting_tags | VARCHAR | Comma-separated list of all reporting tags associated with this journal entry line. |
reporting_tags_json | OBJECT | JSON object containing reporting tags grouped by category name, with each category containing an array of tag names. |
partner_name | VARCHAR | Name of the partner associated with this journal entry line |
partner_entity_type | VARCHAR | Entity type of the partner (e.g., individual, corporation, LLC) |
partner_organization_name | VARCHAR | LP organization name associated with the partner |
vendor_name | VARCHAR | Name of the vendor associated with this journal entry line |
vendor_type | VARCHAR | Type classification of the vendor |
expense_type | VARCHAR | Expense classification for the vendor |
asset_name | VARCHAR | Name of the asset associated with this journal entry line |
issuer_name | VARCHAR | Name of the issuer (company) associated with the asset |
bank_transaction_reference | VARCHAR | Reference identifier for the bank transaction |
bank_name | VARCHAR | Name of the bank associated with the transaction |
bank_account_name | VARCHAR | Name of the bank account associated with the transaction |
bank_account_type | VARCHAR | Type of the bank account (e.g., checking, savings) |
journal_entry_line_id | VARCHAR | Unique identifier for each journal entry line in the general ledger |
fund_uuid | VARCHAR | Unique identifier for the fund. Used as both a primary key and a foreign key. |
partner_id | NUMBER | Foreign key to the capital account partner associated with this journal entry line |
vendor_id | VARCHAR | Foreign key to the vendor associated with this journal entry line |
asset_id | VARCHAR | Foreign key to the asset associated with this journal entry line |
bank_txn_id | VARCHAR | Foreign key to the bank transaction associated with this journal entry line |
related_entity_id | NUMBER | Foreign key to a related entity (from lp_crm_crmentity) associated with this journal entry line |
issuer_id | VARCHAR | Unique identifier for the issuer |
firm_id | VARCHAR | Unique identifier for the management firm. Used as both a primary key and a foreign key. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
fund_id | NUMBER | Unique identifier for the fund. Used as both a primary key and a foreign key. |
Lender Payment Obligation
Each lender's share of a borrower payment obligation. One row per child payment obligation — the per-lender decomposition of the rows in Payment Obligation. The parent holds the whole amount the borrower owes; these rows divide that same amount between the lenders on the tranche. Never sum this table together with Payment Obligation — doing so counts the same money twice. lender_name is the party owed. A row reaches its tranche either directly or through the tranche rate that priced it; both paths are resolved into tranche_id. status derives from the linked memo exactly as on the parent table. Pagination sort: loan_name, lender_name, due_date, _pk
| Column | Type | Description |
|---|---|---|
loan_name | VARCHAR | Loan name. |
borrower_name | VARCHAR | Borrower company name. |
lender_name | VARCHAR | Name of the lender owed this share. NULL if the company record is missing. |
advance_name | VARCHAR | Advance this obligation accrued against. NULL when not advance-scoped. |
tranche_name | VARCHAR | Tranche this share belongs to. NULL when the obligation is not tranche-scoped. |
due_date | DATE | Date the payment is due. |
period_start_date | DATE | First day of the accrual period. |
period_end_date | DATE | Last day of the accrual period. |
type | VARCHAR | Obligation type. Possible values: Interest, Principal, Fee, Default, PrepaymentPremium. |
status | VARCHAR | Payment state. Possible values: Scheduled (no memo), Pending (memo created but unconfirmed), Paid (memo confirmed). |
amount | NUMBER | This lender's share of the obligation. |
amount_currency | VARCHAR | ISO currency code of amount. |
outstanding_principal | NUMBER | Principal outstanding for this lender over the accrual period. |
outstanding_principal_currency | VARCHAR | ISO currency code of outstanding_principal. |
rate | NUMBER | All-in rate applied, as a decimal fraction (0.14 = 14%). |
credit_spread | NUMBER | Credit spread component, as a decimal fraction. |
benchmark_name | VARCHAR | Benchmark the floating rate was set from. NULL for fixed-rate. |
benchmark_rate | NUMBER | Benchmark value used, as a decimal fraction. |
day_count_convention | VARCHAR | Day count basis (e.g. Actual360, Actual365, Thirty360US). |
day_count_factor | NUMBER | Fraction of a year the accrual period represents. |
pik_proportion | NUMBER | Share of interest paid in kind rather than cash, as a decimal fraction. |
fee_name | VARCHAR | Name of the fee this obligation charges, when type is Fee. |
late_amount | NUMBER | Late fee accrued on this share, if any. |
lending_firm_name | VARCHAR | Lending firm that services the loan. |
paid_at | TIMESTAMP_NTZ | Timestamp the linked memo was confirmed. NULL until paid. |
is_pik | BOOLEAN | Whether this obligation is paid in kind. |
is_projected | BOOLEAN | True when due_date is in the future — part of the forward amortisation schedule rather than an amount that has come due. Filter NOT is_projected for actuals. |
is_historical_import | BOOLEAN | Whether the row was back-filled rather than generated at runtime. |
is_paid | BOOLEAN | True when paid_at IS NOT NULL. |
_pk | VARCHAR | Surrogate primary key derived from the payment obligation ID. |
lending_firm_id | VARCHAR | Lending firm UUID. Used to enforce row access policy. |
lender_payment_obligation_id | VARCHAR | Obligation id for this per-lender share. Join key for Payment Application, which settles either grain. Disjoint from Payment Obligation's payment_obligation_id. |
loan_id | VARCHAR | Loan UUID this obligation belongs to. |
advance_id | VARCHAR | Resolved advance UUID. NULL when the obligation is not advance-scoped. |
tranche_id | VARCHAR | Tranche UUID this share belongs to, resolved directly or via the tranche rate. |
lender_id | VARCHAR | Company UUID of the lender owed this share. |
memo_id | VARCHAR | Linked memo. NULL until a memo is created. |
parent_obligation_id | VARCHAR | The borrower-level obligation this row is a share of. |
tranche_rate_id | VARCHAR | Tranche rate that priced this share. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
Lender Position
One row per lender position in a tranche, as of today. Each row shows an individual lender's committed and disbursed amount and outstanding principal in a given tranche, along with the parent loan, borrower, and key dates. Use it to break a loan down by lender and see who holds what. Positions reflect both original commitments and any subsequent transfers between lenders.
| Column | Type | Description |
|---|---|---|
lender_name | VARCHAR | Name of the lender. |
tranche_name | VARCHAR | Name of the tranche. |
loan_name | VARCHAR | Parent loan name. |
borrower_name | VARCHAR | Borrower on the parent loan. |
committed_amount | NUMBER | Effective committed amount for this (tranche, lender) as of as_of_date. Includes the original tranche contribution plus net transfer allocations. |
disbursed_amount | NUMBER | committed_amount once the parent advance has gone effective; otherwise 0. |
outstanding_principal | NUMBER | Per-lender outstanding principal from the latest child payment obligation. Null if no period-bearing obligation exists yet. |
currency_code | VARCHAR | ISO currency from the original tranche contribution. Null for transfer-only lenders. |
lending_firm_name | VARCHAR | Lending firm that services the parent loan. Distinct from lender_name. |
lead_lender_name | VARCHAR | Lead lender on the parent loan. |
agent_name | VARCHAR | Agent on the parent loan. |
created_at | TIMESTAMP_NTZ | Earliest tranche-contribution timestamp for this (tranche, lender). Null for transfer-only lenders. |
updated_at | TIMESTAMP_NTZ | Latest tranche-contribution timestamp for this (tranche, lender). Null for transfer-only lenders. |
effective_date | DATE | Effective date of the parent advance. |
maturity_date | DATE | Maturity date of the parent advance. |
as_of_date | DATE | Date this position snapshot represents. Currently always today's date. |
is_active | BOOLEAN | Whether the parent loan is currently active. |
_pk | VARCHAR | Surrogate primary key generated from (tranche_id, lender_id), which is the grain of the table. Stable across refreshes for an unchanged row — the snapshot date is available separately as as_of_date. |
lending_firm_id | VARCHAR | Lending firm UUID. Used to enforce row access policy. |
lender_id | VARCHAR | Lender company UUID. |
tranche_id | VARCHAR | Parent tranche UUID. |
advance_id | VARCHAR | Parent advance UUID. |
structure_id | VARCHAR | Parent loan structure UUID. |
loan_id | VARCHAR | Parent loan UUID. |
borrower_id | VARCHAR | Borrower company UUID. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed. |
Loan
Loan-level data for credit and lending products. One row per loan with cached counterparty names, key dates, committed and outstanding principal balances, and an is_active flag. total_committed_amount sums all tranche contributions across the loan. outstanding_principal reflects the current borrower-level principal balance across the loan's advances; when a loan is in default, default-type balances supersede regular interest-type balances on the same principal base. Pagination sort: loan_name, closing_date DESC, _pk
| Column | Type | Description |
|---|---|---|
loan_name | VARCHAR | Loan name. |
borrower_name | VARCHAR | Cached borrower company name. |
lending_firm_name | VARCHAR | Cached lending firm name. |
closing_date | DATE | Loan closing date. |
total_commitment | NUMBER | Loan facility size — the total amount lenders have committed across the loan's structures. 0 before any structure has closed. |
total_drawn_amount | NUMBER | Cumulative amount advanced over the life of the loan, summing tranche contributions on advances whose effective date has passed. Can exceed total_commitment on revolvers and re-drawn facilities — for undrawn capacity use total_commitment less outstanding_principal. |
outstanding_principal | NUMBER | Current borrower-level outstanding principal balance, summed across the loan's advances (default-type balances supersede interest-type when both exist for the same period). NULL for loans with no recorded payment obligations yet. |
currency_code | VARCHAR | Unified currency code across the loan's tranche contributions. NULL when contributions span multiple currencies (mixed-currency loan) or when the loan has no tranche contributions yet. |
tranche_count | NUMBER | Number of tranches in the loan. |
lender_count | NUMBER | Number of unique lenders contributing to the loan. |
lead_lender_name | VARCHAR | Cached lead lender name. |
agent_name | VARCHAR | Cached agent name. |
created_at | TIMESTAMP_NTZ | Timestamp when the loan record was created. |
updated_at | TIMESTAMP_NTZ | Timestamp of the most recent update to the loan record. |
is_active | BOOLEAN | Indicates whether the loan is currently active (no advances yet, draw period active, maturity not passed, or cash/PIK outstanding > 0). |
_pk | VARCHAR | Surrogate primary key generated from loan_id. |
lending_firm_id | VARCHAR | Lending firm UUID. Used to enforce row access policy. |
loan_id | VARCHAR | Unique identifier for the loan. |
loan_nano_id | VARCHAR | Short URL-safe loan identifier. This is the id the Carta app uses in loan URLs, so it is what you need to deep link back to a loan: /org/<your-company-slug>/loans/<loan_nano_id>/overview. The company slug is the viewing user's own organization, not a value on this row. |
borrower_id | VARCHAR | Borrower company UUID. |
lead_lender_id | VARCHAR | Lead lender company UUID. |
agent_id | VARCHAR | Agent company UUID. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
Lp Closing Contact Statuses
Current status of LP contacts visible in the Fund Admin Closings contacts ledger. Combines two origins: (1) contacts invited through the Closings UI, with real states and document completion flags; (2) existing Partners with no closings contact row, onboarded via the Partners (offline) path — these are always shown as CounterSigned with has_completed_documents_offline = true. Grain: one row per contact. No partner appears in both origins. Pagination sort: fund_name, partner_name, created_at DESC, _pk
| Column | Type | Description |
|---|---|---|
partner_name | VARCHAR | Legal name of the LP entity or individual. |
contact_name | VARCHAR | Name of the individual contact at the LP. Populated for Closings contacts; null for Partners contacts (Partners have no separate contact-name field). |
email | VARCHAR | Email address of the contact. |
fund_name | VARCHAR | Name of the fund the contact is associated with. |
state | VARCHAR | Raw state value stored as "ContactState.<Name>" (e.g. "ContactState.Invited"). Partners contacts are hardcoded to "ContactState.CounterSigned". |
contact_status | VARCHAR | Human-readable contact status with the "ContactState." prefix stripped. Possible values: Prospect, Invited, DataRoom, InProgress, SignaturesRequired, Submitted, CounterSigned, KYCRequired, Archived, Deleted. Partners contacts are always CounterSigned. |
role | VARCHAR | Role of the contact in the closing (e.g. investor, observer). Partners contacts are hardcoded to "investor". |
commitment_amount | NUMBER | Capital amount committed by the LP. For Partners contacts, approximated as the sum of commitment transaction amounts for the partner. |
expected_commitment_amount | NUMBER | Expected commitment amount set during variable-commitment flows. Always null for Partners contacts. |
is_pending_staff_review | BOOLEAN | True when the contact is awaiting Carta staff review. Always false for Partners contacts. |
has_completed_documents_offline | BOOLEAN | True when documents were completed outside the platform. Always true for Partners contacts. |
lp_signed_on | TIMESTAMP_NTZ | Timestamp when the LP signed the subscription documents. Always null for Partners contacts. |
gp_signed_on | TIMESTAMP_NTZ | Timestamp when the GP countersigned the subscription documents. Always null for Partners contacts. |
created_at | TIMESTAMP_NTZ | Timestamp when the underlying record was created. |
updated_at | TIMESTAMP_NTZ | Timestamp when the underlying record was last updated. |
_pk | VARCHAR | Surrogate primary key. For Closings contacts, derived from closings_contact_uuid. For Partners contacts, derived from partner_id. |
firm_id | VARCHAR | UUID FK to the firm that owns the fund — used by the row access policy. |
fund_uuid | VARCHAR | UUID of the fund — used by the row access policy. |
closings_contact_uuid | VARCHAR | UUID of the closings contact record. Null for Partners contacts. |
partner_id | NUMBER | Integer FK to the partner. For Closings contacts, set once the LP converts to a Partner (nullable). Always populated for Partners contacts. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
Memo
Billing documents produced by a loan. One row per memo. Four kinds, given by type: Borrower (invoice to the borrower), LenderDistribution (payment out to a lender), and BorrowerFundingNotice / LenderFundingNotice (notices of an upcoming draw). amount is broken down two ways — principal / interest / fees split it by component, while the *_repaid columns record what has actually been paid against each component and outstanding is what remains. A memo moves through up to four states, each with its own timestamp: approved, scheduled for release, released to the counterparty, then confirmed as paid. status reports the furthest state reached. Only confirmed_at settles the underlying obligations, so is_confirmed — not released_at — is what marks a memo as paid. Pagination sort: loan_name, due_date DESC, _pk
| Column | Type | Description |
|---|---|---|
loan_name | VARCHAR | Loan this memo belongs to. |
borrower_name | VARCHAR | Borrower company name. |
owed_by_company_name | VARCHAR | Party that owes the amount on this memo. |
owed_to_company_name | VARCHAR | Party that receives the amount on this memo. |
advance_name | VARCHAR | Advance the memo relates to. NULL for loan-level memos. |
due_date | DATE | Date payment is due. |
type | VARCHAR | Memo type. Possible values: Borrower, LenderDistribution, BorrowerFundingNotice, LenderFundingNotice. |
status | VARCHAR | Furthest lifecycle state reached. Possible values: Draft, Approved, Scheduled, Released, Confirmed. Only Confirmed means the money has settled. |
amount | NUMBER | Total amount on the memo. |
amount_currency | VARCHAR | ISO currency code for all monetary columns on this row. |
principal | NUMBER | Principal component of amount. |
interest | NUMBER | Interest component of amount. |
fees | NUMBER | Fee component of amount. |
outstanding | NUMBER | Amount still unpaid. Equals amount while nothing has been repaid. |
principal_repaid | NUMBER | Principal actually repaid against this memo. |
interest_repaid | NUMBER | Cash interest actually repaid. |
default_repaid | NUMBER | Default interest actually repaid. |
pik_repaid | NUMBER | PIK interest actually repaid. |
fee_repaid | NUMBER | Fees actually repaid. |
prepayment_premium_repaid | NUMBER | Prepayment premium actually repaid. |
late_fee_repaid | NUMBER | Late fees actually repaid. |
lending_firm_name | VARCHAR | Lending firm that services the loan. |
notes | VARCHAR | Free-text notes entered in the app. |
created_at | TIMESTAMP_NTZ | Timestamp the memo was created. |
updated_at | TIMESTAMP_NTZ | Timestamp the memo was last updated. |
approved_at | TIMESTAMP_NTZ | Timestamp the memo was approved. NULL if never approved. |
scheduled_release_at | TIMESTAMP_NTZ | Timestamp release was scheduled for. NULL if not scheduled. |
released_at | TIMESTAMP_NTZ | Timestamp the memo was released to the counterparty. |
confirmed_at | TIMESTAMP_NTZ | Timestamp the memo was confirmed as paid. This is what settles obligations. |
is_prepayment | BOOLEAN | Whether the memo represents a prepayment. |
is_confirmed | BOOLEAN | True when confirmed_at IS NOT NULL. |
_pk | VARCHAR | Surrogate primary key derived from the memo ID. |
lending_firm_id | VARCHAR | Lending firm UUID. Used to enforce row access policy. |
memo_id | VARCHAR | Unique identifier for the memo. |
loan_id | VARCHAR | Loan UUID this memo belongs to. |
advance_id | VARCHAR | Advance UUID the memo relates to, if any. |
transfer_id | VARCHAR | Transfer that generated this memo, if any. |
owed_by_company_id | VARCHAR | Company UUID of the paying party. |
owed_to_company_id | VARCHAR | Company UUID of the receiving party. |
approved_by_user_id | VARCHAR | User who approved the memo. |
scheduled_release_by_user_id | VARCHAR | User who scheduled release. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
Monthly Nav Calculations
This model calculates the monthly Net Asset Value (NAV) for each fund, including contributions, distributions, commitments, and various NAV metrics. It aggregates data from fund allocations and journal entries to provide a comprehensive view of fund performance over time. The model includes metrics such as total NAV, LP and GP NAV, contributions, distributions, DPI, RVPI, TVPI, and MOIC. It also tracks cumulative contributions, distributions, and commitments for both LPs and GPs, providing insights into fund performance and partner contributions. Pagination sort: fund_name, month_end_date DESC
| Column | Type | Description |
|---|---|---|
fund_name | VARCHAR | Name of the fund. |
firm_name | VARCHAR | Name of the investment firm. |
month_start_date | DATE | The start date of the month for which NAV is calculated |
month_end_date | DATE | The end date of the month for which NAV is calculated |
entity_type_name | VARCHAR | Legal structure classification of the fund entity (e.g., Fund, SPV, ...). |
beginning_total_nav | NUMBER | The NAV at the beginning of the month |
total_contributions | NUMBER | Capital contributions made during the month |
total_distributions | NUMBER | Capital distributions made during the month |
ending_total_nav | NUMBER | The NAV at the end of the month |
beginning_lp_nav | NUMBER | The NAV of LPs at the beginning of the month |
lp_contributions | NUMBER | The LP contributions made during the month |
lp_distributions | NUMBER | The LP distributions made during the month |
ending_lp_nav | NUMBER | The NAV of LPs at the end of the month |
beginning_gp_nav | NUMBER | The NAV of GPs at the beginning of the month |
gp_contributions | NUMBER | The GP contributions made during the month |
gp_distributions | NUMBER | The GP distributions made during the month |
ending_gp_nav | NUMBER | The NAV of GPs at the end of the month |
cumulative_total_contributions | NUMBER | The cumulative contributions made to the fund since fund inception |
cumulative_total_distributions | NUMBER | The cumulative distributions made to the fund since fund inception |
cumulative_lp_contributions | NUMBER | The cumulative contributions made to LPs since fund inception |
cumulative_lp_distributions | NUMBER | The cumulative distributions made to LPs since fund inception |
cumulative_gp_contributions | NUMBER | The cumulative contributions made to GPs since fund inception |
cumulative_gp_distributions | NUMBER | The cumulative distributions made to GPs since fund inception |
month_commitment_amount | NUMBER | Total dollar amount of new commitment transactions recorded during this specific month. This represents new or adjusted commitments from partners in the given month. Includes all commitment transactions from active partners (is_active = 1), non-deleted transactions only (is_deleted = 0), transactions with valid dates falling within this month, and both positive commitments and negative adjustments. Note: Months with no commitment activity will show 0. This differs from contributions (capital calls), which represent actual cash movements. |
cumulative_commitment_amount | NUMBER | Running total of all commitment transaction amounts for active partners from fund inception through the end of this month. This represents the total committed capital at this point in time. Calculated as the sum of all month_commitment_amount values from fund inception through the current month using a window function with PARTITION BY fund_id. Includes all commitment transactions from active partners (is_active = 1), non-deleted transactions only (is_deleted = 0), and transactions with valid dates (transaction_date IS NOT NULL). Use cases include tracking growth of fund commitments over time, calculating capital call percentages (cumulative_contributions / cumulative_commitment_amount), and understanding remaining capital available for deployment. Note: For the most recent month, this should closely match the fund_size field in aggregate_fund_metrics. Small differences may occur if some commitment transactions lack transaction dates. |
total_value | NUMBER | The total value of the fund at the end of the month, including contributions and distributions |
lp_value | NUMBER | Month-end value attributable to limited partners (LP NAV plus cumulative distributions to LPs). |
gp_value | NUMBER | Month-end value attributable to general partners (GP NAV plus cumulative distributions to GPs). |
total_dpi | NUMBER | The Distributions to Paid-In (DPI) ratio for the fund, calculated as total distributions divided by total contributions |
lp_dpi | NUMBER | The Distributions to Paid-In (DPI) ratio for LPs, calculated as LP distributions divided by LP contributions |
total_rvpi | NUMBER | The Residual Value to Paid-In (RVPI) ratio for the fund, calculated as total NAV divided by total contributions |
lp_rvpi | NUMBER | The Residual Value to Paid-In (RVPI) ratio for LPs, calculated as LP NAV divided by LP contributions |
total_tvpi | NUMBER | The Total Value to Paid-In (TVPI) ratio for the fund, calculated as total value divided by total contributions |
lp_tvpi | NUMBER | The Total Value to Paid-In (TVPI) ratio for LPs, calculated as LP value divided by LP contributions |
total_moic | NUMBER | The Multiple on Invested Capital (MOIC) for the fund, calculated as total investment value divided by total investment cost using data from aggregate_investments_history. This differs from TVPI in that it uses investment-level cost basis rather than partner contributions. |
lp_moic | NUMBER | The Multiple on Invested Capital (MOIC) for LPs, calculated as LP value divided by LP contributions |
gp_moic | NUMBER | The Multiple on Invested Capital (MOIC) for GPs, calculated as GP value divided by GP contributions |
is_firm_rollup | BOOLEAN | Indicates if a given row is a rollup for the firm |
nav_pk | VARCHAR | Unique identifier for date and fund combination |
fund_id | NUMBER | Unique identifier for the fund. Used as both a primary key and a foreign key. |
fund_uuid | VARCHAR | Unique identifier for the fund. Used as both a primary key and a foreign key. |
firm_id | VARCHAR | Unique identifier for the management firm. Used as both a primary key and a foreign key. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
Partner Address Changes Audit
Address change event log for LP records. One row per address-change event, with before/after formatted addresses, phone numbers, change type, timestamp, and who made the change (internal Carta users are shown as "Carta Staff"). Covers the full available history with no date cutoff. Pagination sort: partner_name, fund_name, changed_at DESC, _pk
| Column | Type | Description |
|---|---|---|
partner_name | VARCHAR | Display name of the LP commitment. |
fund_name | VARCHAR | Name of the fund the partner belongs to. Includes soft-deleted funds so the name is still resolved when a fund was deleted after the change was recorded. |
new_address | VARCHAR | Formatted new address after the change (street, line2, city, state, postal_code, country — comma-separated). Null when the address was removed. |
old_address | VARCHAR | Formatted address before the change. Null for the first recorded address assignment. |
new_phone | VARCHAR | Phone number from the new address record (nullable). |
old_phone | VARCHAR | Phone number from the old address record (nullable). |
change_type | VARCHAR | Type of address change: "create" (first recorded assignment), "update" (changed to a different address), or "remove" (address cleared). |
changed_at | TIMESTAMP_NTZ | Timestamp when the change-log event was recorded. |
changed_by | VARCHAR | Who made the change. Internal Carta users are shown as "Carta Staff". Otherwise shows email, then full name, then "N/A". |
changed_by_is_staff | BOOLEAN | True if the user who made the change is a Carta staff member. |
firm_id | VARCHAR | UUID FK to the firm that owns the fund — used by the row access policy. |
fund_uuid | VARCHAR | UUID of the fund — used by the row access policy. |
partner_interest_group_uuid | VARCHAR | UUID of the LP record that was audited. |
_pk | VARCHAR | Surrogate primary key derived from the change log event ID. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
Partner Data
Partner-level metrics and characteristics for both LPs and GPs, including commitments, contributions, and distributions. Pagination sort: fund_name, partner_name
| Column | Type | Description |
|---|---|---|
fund_name | VARCHAR | Name of the fund the partner is associated with |
partner_name | VARCHAR | Legal name of the partner |
partner_created_at | TIMESTAMP_NTZ | Timestamp in UTC when partner record was created in Carta |
earliest_commitment_date | DATE | The date of the partner's first commitment transaction |
latest_commitment_transaction_date | DATE | The date of the partner's latest commitment transaction |
firm_name | VARCHAR | Name of the management firm |
firm_partner_group_name | VARCHAR | Name of the partner group, coalesced with partner name if no group is assigned |
commitment_size | NUMBER | Total capital committed by the partner to the fund |
partner_entity_type | VARCHAR | The legal entity type of the partner (e.g. corporation_c, corporation_s, estate, individual, etc.) |
count_active_lp_accounts | NUMBER | Number of active LP partner commitments associated with the partner |
organization_name | VARCHAR | Name of the organization the partner is associated with |
partner_class_name | VARCHAR | The fund's partner class the partner has a commitment in |
partner_class_description | VARCHAR | Description of the partner class |
partner_street_address | VARCHAR | Partner street address |
partner_city | VARCHAR | Partner address city |
partner_state | VARCHAR | Partner address state |
partner_country | VARCHAR | Partner address country |
wire_instructions_status | VARCHAR | Status of the wire instructions uploaded by the partner |
total_capital_commitment_amount_current | NUMBER | The partners current capital commitment to the fund. Partners that backed out would show up as 0, see total_capital_commitment_amount_max for the maximum commitment a partner had to the fund. |
total_capital_commitment_amount_max | NUMBER | The maximum capital commitment a partner had to the fund. |
primary_contact_email | VARCHAR | The primary contact email of the partner |
total_cap_contribution | NUMBER | Total capital contributed by partner to date |
total_mgmt_fees | NUMBER | Total management fees paid by partner to date |
total_capital_call_receivable | NUMBER | A partners capital call receivable balance |
total_distribution | NUMBER | Total distributions paid to partner to date |
total_opx | NUMBER | Total operating expenses allocated to partner |
total_net_realized | FLOAT | Net realized gains/losses allocated to partner |
total_net_unrealized | NUMBER | Net unrealized gains/losses allocated to partner |
total_distribution_payable | NUMBER | Distributions approved but not yet paid to partner |
total_deferred_cap_call | NUMBER | Capital calls approved but deferred for this partner |
total_carried_interest_accrued | NUMBER | Carried interest allocated to partner (typically for GPs) |
total_contributions_outside_commitment | NUMBER | Additional contributions beyond original commitment amount |
total_net_asset_balance | NUMBER | The net asset balance allocated to the partner |
total_net_operating_income_llc_interest | NUMBER | Total net operating income allocated to the partner's LLC interest. |
total_distribution_llc_interest | NUMBER | Total distributions allocated to the partner's LLC interest. |
total_in_kind_distribution_llc_interest | NUMBER | Total in-kind distributions allocated to the partner's LLC interest. |
total_syndication_costs_llc_interest | NUMBER | Total syndication costs allocated to the partner's LLC interest. |
sent_date | TIMESTAMP_NTZ | Timestamp in UTC of when the commitment was sent to the partner for acceptance into their portfolio |
wire_confirmation_date | TIMESTAMP_NTZ | Timestamp in UTC when the wire information was confirmed by the partner. This is typically the date the partner signed off on their wire instructions. |
wire_instructions_added_date | TIMESTAMP_NTZ | Timestamp in UTC when the wire information was added by the partner. |
latest_w8_w9 | DATE | Date of the most recently received W-8 or W-9 tax form for the partner. |
send_capital_calls_notices | BOOLEAN | Flag indicating if partner should receive capital call notices |
is_active | BOOLEAN | Flag indicating if partner is currently active in the fund |
is_limited_partner | BOOLEAN | Flag indicating if partner is a limited partner (LP) |
is_general_partner | BOOLEAN | Flag indicating if partner is a general partner (GP) |
has_confirmed_wire_instructions | BOOLEAN | Flag indicating if the partner has confirmed wire instructions |
has_wire_setup | BOOLEAN | Flag indicating if the partner has setup wire information |
has_w8_w9 | BOOLEAN | Has a W8/W9 on file |
partner_id | NUMBER | Unique identifier for each partner, used as primary key |
external_partner_id | VARCHAR | ID added by firm as an external identifier to join 3rd party data |
firm_partner_group_id | NUMBER | Identifier of the partner group this partner belongs to within the firm |
partner_entity_id | VARCHAR | Unique identifier for partner's portfolio |
fund_uuid | VARCHAR | Unique identifier of the fund the partner is associated with |
organization_id | VARCHAR | Unique identifier of the organization the partner is associated with |
tax_id_type | VARCHAR | Type of tax identifier on file for the partner. |
firm_id | VARCHAR | Unique identifier of the management firm |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
has_wire_instruction_reference | BOOLEAN | Flag indicating if the partner has a wire instruction reference |
Partner Monthly Nav Calculations
This model calculates the monthly Net Asset Value (NAV) at the partner level for each fund. It provides a detailed breakdown of NAV, contributions, distributions, commitments, and performance metrics (DPI, RVPI, TVPI, MOIC) for each individual partner. When aggregated by fund, the results should match the fund-level calculations in monthly_nav_calculations (excluding firm rollup records). This model enables partner-level analysis and is particularly useful for fund-of-funds reporting and custom partner-level analytics. Pagination sort: fund_name, partner_name, month_end_date DESC
| Column | Type | Description |
|---|---|---|
fund_name | VARCHAR | Name of the fund |
partner_name | VARCHAR | Name of the partner |
month_start_date | DATE | First day of the month for this NAV calculation |
month_end_date | DATE | Last day of the month for this NAV calculation |
entity_type_name | VARCHAR | Legal structure classification of the fund entity (e.g., Fund, SPV) |
firm_name | VARCHAR | Name of the management firm |
is_limited_partner | BOOLEAN | True if the partner is a limited partner, otherwise false |
is_general_partner | BOOLEAN | True if the partner is a general partner, otherwise false |
partner_class_name | VARCHAR | Partner class name for classification (e.g., "Class A", "Founder Class") |
partner_class_description | VARCHAR | Detailed description of the partner class |
firm_partner_group_name | VARCHAR | Name of the partner group (defaults to partner name if no group assigned) |
is_active | BOOLEAN | True if the partner is currently active, otherwise false |
beginning_total_nav | NUMBER | Partner's NAV at the beginning of the month |
total_contributions | NUMBER | Partner's total contributions during the month |
total_commitment | NUMBER | Partner's commitment amount for the month |
total_distributions | NUMBER | Partner's total distributions during the month |
ending_total_nav | NUMBER | Partner's NAV at the end of the month |
cumulative_total_contributions | NUMBER | Partner's cumulative contributions from inception through the end of the month |
cumulative_total_commitment | NUMBER | Partner's cumulative commitment amount through the end of the month |
cumulative_total_distributions | NUMBER | Partner's cumulative distributions from inception through the end of the month |
total_value | NUMBER | Partner's total value (ending NAV + cumulative distributions) |
total_dpi | NUMBER | Partner's Distributions to Paid-In capital ratio (cumulative distributions / cumulative contributions) |
total_rvpi | NUMBER | Partner's Residual Value to Paid-In capital ratio (ending NAV / cumulative contributions) |
total_tvpi | NUMBER | Partner's Total Value to Paid-In capital ratio (total value / cumulative contributions) |
total_moic | NUMBER | Partner's Multiple on Invested Capital (total value / cumulative contributions) |
partner_nav_pk | VARCHAR | Unique identifier for partner, fund, firm, and date combination (surrogate key on partner_id, fund_uuid, firm_id, month_end_date) |
fund_id | VARCHAR | Unique identifier (UUID) for the fund |
partner_id | NUMBER | Unique identifier for the partner |
partner_entity_id | VARCHAR | Unique identifier for the partner's legal entity |
firm_partner_group_id | NUMBER | Unique identifier for the partner group within the firm |
firm_id | VARCHAR | Unique identifier for the management firm |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
Payment Application
Payment allocation line items showing how each memo's payment was waterfalled across the loan obligations it paid down. One row per payment application. Natural pair to Payment Obligation — obligations are the scheduled cash flows, applications are how each actual payment was allocated to those obligations. applied_at is null for applications whose memo has not yet been confirmed. Pagination sort: loan_name, applied_at DESC, _pk
| Column | Type | Description |
|---|---|---|
loan_name | VARCHAR | Parent loan name. |
borrower_name | VARCHAR | Borrower company name. |
lending_firm_name | VARCHAR | Lending firm name. |
due_date | DATE | Scheduled due date of the obligation this application paid down. |
period_start_date | DATE | Start of the accrual period of the underlying obligation. |
period_end_date | DATE | End of the accrual period of the underlying obligation. |
type | VARCHAR | Obligation type this application paid down. Possible values: Interest, Principal, Fee, Default, PrepaymentPremium, LateFee. |
amount | NUMBER | Application amount — the portion of the payment allocated to this obligation. |
amount_currency | VARCHAR | Currency for amount. |
applied_at | TIMESTAMP_NTZ | When the application became real — the memo's confirmed timestamp. NULL while the memo is unconfirmed. |
_pk | VARCHAR | Surrogate primary key derived from the payment application ID. |
lending_firm_id | VARCHAR | Lending firm UUID. Used to enforce row access policy. |
loan_id | VARCHAR | Loan UUID this application belongs to. |
payment_obligation_id | VARCHAR | The obligation this application paid down. |
memo_id | VARCHAR | The memo whose payment this application came from. |
manual_bank_transaction_id | VARCHAR | The bank transaction this application drew from. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
Payment Obligation
Payment schedule for a loan. One row per scheduled cash flow (Interest, Principal, Fee, Default, PrepaymentPremium, LateFee). status derives from the linked payment memo: Scheduled (no memo), Pending (memo created but unconfirmed), Paid (memo confirmed). Past-due is not materialized — compute at query time as due_date < CURRENT_DATE() AND NOT is_paid. Pagination sort: loan_name, due_date, _pk
| Column | Type | Description |
|---|---|---|
loan_name | VARCHAR | Loan name. |
borrower_name | VARCHAR | Borrower company name. |
lending_firm_name | VARCHAR | Lending firm name. |
due_date | DATE | Scheduled due date for this obligation. |
period_start_date | DATE | Start of the accrual period this obligation covers. |
period_end_date | DATE | End of the accrual period this obligation covers. |
type | VARCHAR | Obligation type. Possible values: Interest, Principal, Fee, Default, PrepaymentPremium, LateFee. |
status | VARCHAR | Payment state. Possible values: Scheduled (no memo), Pending (memo created but unconfirmed), Paid (memo confirmed). |
amount | NUMBER | Obligation amount in amount_currency. |
amount_currency | VARCHAR | Currency code for amount. |
outstanding_principal | NUMBER | Principal balance against which this obligation accrues. Populated on Interest and Default; NULL on Principal, Fee, and PrepaymentPremium by design. |
outstanding_principal_currency | VARCHAR | Currency code for outstanding_principal. |
rate | NUMBER | All-in rate applied for this period. Populated on Interest and Default; NULL otherwise. |
credit_spread | NUMBER | Credit-spread component of the rate. Interest-only. |
benchmark_name | VARCHAR | Floating-rate benchmark name. NULL on fixed-rate Interest rows. |
benchmark_rate | NUMBER | Benchmark rate value for the period. |
benchmark_date | DATE | Benchmark observation date. |
benchmark_floor | NUMBER | Floor applied to the benchmark. |
benchmark_ceiling | NUMBER | Ceiling applied to the benchmark. |
benchmark_credit_adjustment | NUMBER | Credit-spread adjustment to the benchmark (e.g. SOFR CSA). |
day_count_convention | VARCHAR | Day-count convention (e.g. ACT/360). |
pik_proportion | NUMBER | Proportion of the interest paid in kind. Populated on proportion-type PIK rows. |
pik_accrual_date | DATE | PIK accrual date. |
pik_compounding_date | DATE | PIK compounding date. |
paid_at | TIMESTAMP_NTZ | Timestamp the memo confirming this obligation was marked paid. NULL while unpaid. |
is_pik | BOOLEAN | Whether this obligation is paid in kind. |
is_historical_import | BOOLEAN | Whether this row was loaded as a historical back-fill rather than generated at runtime. |
is_paid | BOOLEAN | True when paid_at IS NOT NULL. |
is_projected | BOOLEAN | True when due_date is in the future — the obligation is part of the forward amortisation schedule rather than an amount that has come due. A large share of rows are projected, running years ahead, so any SUM over amount or outstanding_principal that does not filter on this covers far more than is actually owed. Filter NOT is_projected for actuals. A null due_date counts as not projected. |
_pk | VARCHAR | Surrogate primary key derived from the payment obligation ID. |
lending_firm_id | VARCHAR | Lending firm UUID. Used to enforce row access policy. |
payment_obligation_id | VARCHAR | Obligation id. Join key for Payment Application and for Lender Payment Obligation's parent_obligation_id. Borrower-grain ids only — the per-lender ids live on Lender Payment Obligation, and the two sets never overlap. |
loan_id | VARCHAR | Loan UUID this obligation belongs to. |
advance_id | VARCHAR | Advance UUID. NULL for obligations not scoped to an advance (most Fee rows, all PrepaymentPremium rows). |
owed_by_company_id | VARCHAR | Loan-ops company ID of the party owing this payment. |
owed_to_company_id | VARCHAR | Loan-ops company ID of the party receiving this payment. |
pik_advance_id | VARCHAR | Advance receiving the PIK accrual, if applicable. |
memo_id | VARCHAR | Linked payment memo. NULL until a memo is created. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
Portfolio Events
Events relating to a firm's portfolio of investments Pagination sort: event_date DESC, fund_name, corporation_name
| Column | Type | Description |
|---|---|---|
fund_name | VARCHAR | Name of the fund. |
corporation_name | VARCHAR | The name of the Carta cap table customer related to the portfolio event. |
event_date | TIMESTAMP_NTZ | The date of the portfolio event. |
event_type | VARCHAR | The type of the portfolio event. Possible values include: "New priced round", "New share class", "Company name changed", "Stock split", "Valuation finalized", "Valuation amended", "Valuation deleted", "Certificate issuance", "Convertible conversion", "Warrant exercise", "Share class conversion", "Certificate transfer". |
description | VARCHAR | A description of the portfolio event that is relevant to the event type. |
security_label | VARCHAR | The label of the security related to the portfolio event in instances of security-related events. |
security_kind | VARCHAR | The kind of security related to the portfolio event in instances of security-related events. |
firm_name | VARCHAR | Name of the investment firm. |
additional_details | VARIANT | Structured data about the portfolio event that is relevant to the event type. This data is provided as a JSON string. |
event_uuid | VARCHAR | Unique identifier for each newsfeed event |
fund_id | VARCHAR | Unique identifier for the fund. Used as both a primary key and a foreign key. |
corporation_id | VARCHAR | Unique identifier of the associated corporation (company / portfolio). Primary key for corporations. Might be the same as core_legal_entities.entity_id, but is not guaranteed to be the same. The keys match if the corporation was imported into the legal entity framework as a part of the initial bulk import. It will be different if the corporation was created or updated after the initial import. |
issuer_uuid | VARCHAR | Unique identifier of the issuer from the general ledger (GL). Used as both a primary key and a foreign key. |
firm_id | VARCHAR | Unique identifier for the management firm. Used as both a primary key and a foreign key. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
Portfolio Notes
Portfolio notes created by investment firm users about their portfolio companies. Includes both general notes and review notes with optional ratings. Grain: one row per note. Notes are scoped to organizations (investment firms) and their portfolio corporations. Filters applied: voided notes are excluded, deleted notes are excluded, and only notes with Organization-level sharing permission are included. Pagination sort: created_at DESC, corporation_name, _pk
| Column | Type | Description |
|---|---|---|
organization_name | VARCHAR | Name of the investment firm/organization that owns the note |
corporation_name | VARCHAR | Name of the portfolio company the note is about. Uses fallback logic: portfolio corporation name → corporations table legal name. |
note_type_name | VARCHAR | Type of note - either "General Note" for regular notes or "Review Note" for periodic review notes with ratings |
sharing_permission_name | VARCHAR | Visibility level of the note. In this table, all rows have the value "Organization" (only organization-wide notes are included). Possible values in the source system: "Personal" (author only), "Investment Team", "Organization" (all organization members). |
note_body | VARCHAR | Plain text content of the note |
note_rich_body | VARIANT | Rich text content of the note in JSON format |
note_rich_body_text | VARCHAR | Plain text extracted from the note_rich_body JSON. Concatenates all text blocks from the JSON structure with newlines. Null when note_rich_body is null. |
rating | NUMBER | Optional rating from 1-5 for review notes. Null for general notes or review notes without a rating. |
author_name | VARCHAR | Full name of the user who created the note |
author_email | VARCHAR | Email address of the note author |
created_at | TIMESTAMP_NTZ | Timestamp when the note was created |
modified_at | TIMESTAMP_NTZ | Timestamp when the note was last modified |
_pk | VARCHAR | Surrogate primary key generated from note_id |
note_id | NUMBER | Original note ID from insights_note table |
firm_id | VARCHAR | UUID of the investment firm/organization (aliased as firm_id per product standard) |
corporation_id | VARCHAR | UUID of the portfolio corporation (aliased as corporation_id per product standard) |
entity_link_id | VARCHAR | External entity link identifier linking this corporation to entities. Used for joining with other data. May be null if the corporation is not linked to an entity. |
general_ledger_issuer_id | VARCHAR | General ledger issuer identifier for accounting system integration. Used for joining with investment and financial data. May be null if the corporation is not linked to a general ledger issuer. |
author_id | NUMBER | User ID of the note author |
time_period_id | NUMBER | Reference to time period for review notes. Null for general notes. |
_loaded_at | TIMESTAMP_NTZ | Most recent source data load timestamp. Calculated as maximum of note and portfolio corporation load times. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp of dbt model execution |
Portfolio Valuations
Core (normalized) layer for finalized Portfolio Valuations created via Carta's Portfolio Valuations product. One row per finalized valuation candidate (status = 'FINAL'), joining InternalValuationProject → ValuationCandidate → Valuation → ValuationScenarioRelation → Scenario → Allocation, plus aggregated approach methodologies and LTM/NTM financial details. Pagination sort: target_name, valuation_date DESC, _pk
| Column | Type | Description |
|---|---|---|
valuation_date | DATE | Effective date of the valuation (InternalValuationProject.valuation_date). |
target_type | VARCHAR | Carta cap table platform used by the portfolio company — InternalValuationProject.target_kind. One of CORPORATION, CORPORATION_ENTITY_GROUP, or LLC_ISSUER. |
target_name | VARCHAR | Legal name of the portfolio company being valued. Populated for CORPORATION (via corporation legal name), CORPORATION_ENTITY_GROUP (via entity group name), and LLC_ISSUER (via LLC entity legal name). NULL only when no matching record exists. |
name | VARCHAR | Valuation candidate name (e.g., "Q1 2026 Valuations") — ValuationCandidate.name. |
target_value | NUMBER | Total portfolio company value after discounts — Allocation.allocated_company_value. |
selected_methodologies | VARCHAR | Comma-separated list of enterprise value calculation methods where Approach.is_used = TRUE (Backsolve, DCF, GPC, M&A, Post Money, Other Indication of Value). |
dlom_method | VARCHAR | Discount rate calculation method — Scenario.dlom_method. One of: FINNERTY, CUSTOM_DLOM, CHAFFE. |
ltm_revenue | NUMBER | Last twelve months of revenue — FinancialDetail.revenue where financial_date < valuation_date. |
ltm_ebitda | NUMBER | Last twelve months of EBITDA — FinancialDetail.ebitda where financial_date < valuation_date. |
ntm_revenue | NUMBER | Next twelve months of revenue — FinancialDetail.revenue where financial_date >= valuation_date. |
ntm_ebitda | NUMBER | Next twelve months of EBITDA — FinancialDetail.ebitda where financial_date >= valuation_date. |
cash_and_cash_equivalents | NUMBER | Last twelve months total cash and cash equivalents on the valuation financials. |
non_convertible_debt | NUMBER | Last twelve months total non-convertible debt on the valuation financials. |
allocation_methodology | VARCHAR | Allocation method used to calculate holdings value — Allocation.allocation_methodology. One of: WATERFALL, OPTION_PRICING_MODEL, COMMON_STOCK_EQUIVALENT, NIAGARA_WATERFALL, NIAGARA_OPM. |
total_holdings_value | NUMBER | Total firm holdings value after discounts. Sum of HoldingV2.value across all holdings tied to the standard scenario. |
finalized_at | DATE | Date when the valuation candidate was marked FINAL — ValuationCandidate.finalized_at. |
_pk | VARCHAR | Surrogate primary key generated from Valuation.id. |
firm_id | VARCHAR | Firm UUID. Translated from InternalValuationProject.owner_id via fund_admin_firm. Foreign key for row access policy. |
target_id | VARCHAR | Corporation UUID. Translated from InternalValuationProject.target_id when target_type = CORPORATION; for other target types (LLC_ISSUER, CORPORATION_ENTITY_GROUP) the upstream UUID passes through. Foreign key for row access policy. |
valuation_id | NUMBER | Unique identifier of the valuation (Valuation.id). |
valuation_candidate_id | NUMBER | Unique identifier of the FINAL valuation candidate (ValuationCandidate.id). |
internal_valuation_project_id | NUMBER | Unique identifier of the parent InternalValuationProject. |
scenario_id | NUMBER | Unique identifier of the Standard Valuation scenario tied to this valuation. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
target_type = 'CORPORATION'. Rows where target_type = 'LLC_ISSUER' or 'CORPORATION_ENTITY_GROUP' carry non-corporation UUIDs in target_id and are not yet visible to PE-firm users; coverage for these target types is planned.Portfolio Valuations History
One row per finalized Portfolio Valuation (valuation candidate with status = 'FINAL'). Captures the full enterprise-value snapshot at finalization: methodologies, financials, allocation method, and total firm holdings value. Pagination sort: target_name, valuation_date DESC, _pk
| Column | Type | Description |
|---|---|---|
valuation_date | DATE | Valuation date (internal valuation project's valuation_date). |
target_type | VARCHAR | Carta cap table platform used by the portfolio company. One of CORPORATION or LLC_ISSUER. |
target_name | VARCHAR | Legal name of the portfolio company being valued. Populated for CORPORATION (via corporation legal name), CORPORATION_ENTITY_GROUP (via entity group name), and LLC_ISSUER (via LLC entity legal name). NULL only when no matching record exists. |
name | VARCHAR | Valuation name (e.g., "Q1 2026 Valuations") — the valuation candidate's name. |
target_value | NUMBER | Total portfolio company value after discounts. |
selected_methodologies | VARCHAR | Comma-separated list of enterprise value calculation methods used (Backsolve, DCF, GPC, M&A, Post Money, Other Indication of Value). |
dlom_method | VARCHAR | Discount rate calculation method. One of: FINNERTY, CUSTOM_DLOM, CHAFFE. |
ltm_revenue | NUMBER | Last twelve months of revenue. |
ltm_ebitda | NUMBER | Last twelve months of EBITDA. |
ntm_revenue | NUMBER | Next twelve months of revenue. |
ntm_ebitda | NUMBER | Next twelve months of EBITDA. |
cash_and_cash_equivalents | NUMBER | Last twelve months total cash and cash equivalents on the valuation financials. |
non_convertible_debt | NUMBER | Last twelve months total non-convertible debt on the valuation financials. |
allocation_methodology | VARCHAR | Allocation method used to calculate holdings value. Accepted values: WATERFALL, OPTION_PRICING_MODEL, COMMON_STOCK_EQUIVALENT, NIAGARA_WATERFALL, NIAGARA_OPM. |
total_holdings_value | NUMBER | Total firm holdings value after discounts. |
finalized_at | DATE | Date when the valuation was finalized. |
_pk | VARCHAR | Surrogate primary key. |
firm_id | VARCHAR | Firm UUID. Used to enforce row access policy. |
target_id | VARCHAR | Identifier of the portfolio company. Corporation UUID when target_type = CORPORATION; otherwise the upstream UUID (entity group or LLC interest issuer). Used to enforce row access policy. |
valuation_id | NUMBER | Unique identifier of the valuation project. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
target_type = 'CORPORATION'. Rows where target_type = 'LLC_ISSUER' or 'CORPORATION_ENTITY_GROUP' carry non-corporation UUIDs in target_id and are not yet visible to PE-firm users; coverage for these target types is planned.Prepayment Premium
One row per prepayment premium period: what a borrower pays to repay an advance early, and when that charge applies. Premiums step down over the life of an advance, so an advance carries several periods covering different stages. Only the period containing the prepayment date applies — that is what is_current identifies. amount_type says how the charge is derived: PrepaidPrincipalFraction is a percentage of the amount repaid, MOIC targets a multiple of invested capital, and Other carries free text in amount_terms that must be read by a human. Pagination sort: loan_name, advance_name, start_date, _pk
| Column | Type | Description |
|---|---|---|
loan_name | VARCHAR | Loan this record belongs to. |
borrower_name | VARCHAR | Borrower on the loan — the party that would pay the premium. |
advance_name | VARCHAR | Advance the premium is scoped to. |
start_date | DATE | Start of the period this premium applies to. Nullable — no start date means the premium applies from the advance's own start. |
end_date | DATE | Last date this premium period applies to. Null means the period runs open-ended, typically to the advance's maturity, not that the date is missing. |
amount_type | VARCHAR | How the premium is derived. Other carries free text in amount_terms. |
amount_prepaid_principal_fraction | NUMBER | Premium as a decimal fraction of the principal repaid early. Populated when amount_type is PrepaidPrincipalFraction; null otherwise, by design. |
amount_moic | NUMBER | Target multiple of invested capital the premium brings the lender to. Populated when amount_type is MOIC; null otherwise, by design. |
amount_terms | VARCHAR | Free-text description of how the premium is calculated. Carries the terms when amount_type is Other, where there is no numeric field to read — this has to be interpreted by a human. |
prepayments_accepted | VARCHAR | Whether the parent structure permits prepayment at all — Yes, No or OnlyInFull. Taken from the structure, so it is the same across every premium period on that facility. |
lending_firm_name | VARCHAR | Lending firm that services the loan. |
maturity_date | DATE | Maturity date of the advance, for judging how far into its life this period sits. |
created_at | TIMESTAMP_NTZ | Timestamp the premium period record was created. |
updated_at | TIMESTAMP_NTZ | Timestamp the premium period record was last updated. |
is_current | BOOLEAN | Convenience boolean — true when today falls inside this period, meaning it is the one that would apply to a prepayment made now. An open-ended period (null end_date) counts as current once it has started. Evaluated when the data is refreshed, so it can lag the clock by up to one refresh. |
_pk | VARCHAR | Surrogate primary key for the row. |
lending_firm_id | VARCHAR | Lending firm UUID. Used to enforce row access policy. |
prepayment_premium_period_id | VARCHAR | Prepayment premium period UUID. |
advance_id | VARCHAR | Advance this premium period belongs to. |
structure_id | VARCHAR | Structure the advance sits under. |
loan_id | VARCHAR | Loan this premium period belongs to. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed. |
Simulation
One row per saved simulation, or "saved model" — a what-if scenario a user has saved against a loan in the modeling area of the app. Each row carries the simulation's name, the loan it belongs to, and when it was created and last updated. Use this to list the saved models available for a loan or across a portfolio. This table lists saved models only; it does not include the modeled changes or cash flows within each simulation.
| Column | Type | Description |
|---|---|---|
simulation_name | VARCHAR | User-provided name for the saved simulation. |
loan_name | VARCHAR | Name of the loan this simulation was saved against. |
borrower_name | VARCHAR | Cached borrower company name for the loan. |
created_at | TIMESTAMP_NTZ | Timestamp when the simulation was saved. |
updated_at | TIMESTAMP_NTZ | Timestamp of the most recent update to the simulation. |
_pk | VARCHAR | Surrogate primary key derived from simulation_id. |
lending_firm_id | VARCHAR | Lending firm UUID for the loan. Used to enforce row access policy. |
simulation_id | VARCHAR | Unique identifier for the simulation. |
loan_id | VARCHAR | Loan UUID the simulation belongs to. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
Simulation Payment Obligation
One row per modeled payment obligation in a saved simulation — the simulation's payment schedule, frozen at the time it was saved. Use it to reprice a modeled roll-up: when a saved model is selected, swap the loan's base rows from Payment Obligation for these. Pagination sort: loan_name, simulation_name, due_date, _pk
| Column | Type | Description |
|---|---|---|
simulation_name | VARCHAR | Name of the saved simulation. |
loan_name | VARCHAR | Name of the loan the simulation is run against. |
borrower_name | VARCHAR | Borrower on the loan. |
due_date | DATE | Date the modeled payment is due. |
type | VARCHAR | Payment obligation type, for example Interest, Principal, or Fee. |
amount | NUMBER | Modeled obligation amount. |
amount_currency | VARCHAR | ISO currency of amount. |
is_pik | BOOLEAN | Whether the obligation is paid in kind. |
_pk | VARCHAR | Surrogate primary key for the row. |
lending_firm_id | VARCHAR | Lending firm UUID. Used to enforce row access policy. |
simulation_id | VARCHAR | Simulation UUID the obligation belongs to. Joins to Simulation. |
loan_id | VARCHAR | Loan UUID the obligation belongs to. |
advance_id | VARCHAR | Advance UUID the obligation is scoped to, if any. |
tranche_id | VARCHAR | Tranche UUID the obligation is scoped to, if any. |
parent_obligation_id | VARCHAR | Parent obligation UUID for lender-distribution child rows, if any. |
simulation_payment_obligation_id | VARCHAR | Simulation payment obligation UUID. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed. |
Statement Of Ops
This model aggregates statement of operations data, including fund and partner details, cost breakdowns, capital contributions, and unrealized gains/losses. Pagination sort: fund_name
| Column | Type | Description |
|---|---|---|
fund_name | VARCHAR | Name of the investment fund |
cash | NUMBER | Cash balance across all bank and cash-equivalent accounts for the fund as of the reporting period. |
cost_management_fees | NUMBER | Fees paid to the fund manager for managing the investment fund. |
cost_all_other_expenses | NUMBER | Aggregated amount of miscellaneous fund-related expenses not categorized elsewhere. |
cost_tax_prep_fees | NUMBER | Fees related to preparing and filing fund-related tax returns. |
cost_fa_fees | NUMBER | Fees paid to the fund administrator for operational services. |
cost_legal_fees | NUMBER | Fees related to fund operations, compliance, and documentation. |
cost_filing_fees | NUMBER | Fees related to submitting regulatory or legal filings. |
cost_other_professional_fees | NUMBER | Fees paid to other professional services, including consultants and third-party advisors. |
cost_organization_costs | NUMBER | Expenses related to the initial formation and setup of the fund. |
cost_insurance_expense | NUMBER | Premiums paid for insurance policies covering fund assets or operations. |
cost_travel | NUMBER | Business travel expenses incurred by fund staff or management. |
cost_syndication_costs | NUMBER | Costs related to presenting investment opportunities to co-investors or limited partners. |
cost_software_and_technology | NUMBER | Costs related to technology tools and software used in fund operations. |
cost_dues_and_subscriptions | NUMBER | Membership dues or subscriptions relevant to fund management. |
cost_meal | NUMBER | Meal and entertainment expenses related to business activities. |
cost_market_expenses | NUMBER | Expenses associated with marketing, investor relations, and promotional activities. |
cost_accounting_expense | NUMBER | Professional accounting or bookkeeping service fees. |
cost_payroll_salary | NUMBER | Wages and compensation paid to fund employees or contractors. |
cost_events | NUMBER | Costs for hosting or attending business-related events or conferences. |
cost_audit | NUMBER | Audit-related fees paid to accounting firms for financial statement reviews. |
capital_contributed | NUMBER | Total capital that has been contributed by investors to the fund. |
capital_receivable | NUMBER | Committed capital from investors not yet received by the fund. |
capital_distributed | NUMBER | Capital that has been returned or distributed back to investors. |
unrealized_gain_loss | NUMBER | Change in fair value of investments that have not yet been sold or realized. |
fund_id | VARCHAR | Unique identifier for the fund. Used as both a primary key and a foreign key. |
firm_id | VARCHAR | Unique identifier for the management firm. Used as both a primary key and a foreign key. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
Structure
The facility level of a loan, sitting between the loan and its advances. One row per structure. A loan may carry several structures — a term loan alongside a revolver, for example — each with its own closing date, draw period, currency, and prepayment terms. committed_amount is the net commitment across lenders after transfers, counting only commitment periods active today. drawn_amount is cumulative gross draws rather than the balance currently drawn: a revolver is drawn and redrawn, so its cumulative draws legitimately exceed its commitment. No undrawn amount is published for that reason — committed minus drawn is only meaningful for a facility that draws once, and is misleading for a revolver. For the balance owed today, use outstanding_principal. Pagination sort: loan_name, structure_name, _pk
| Column | Type | Description |
|---|---|---|
structure_name | VARCHAR | Name of the facility. |
loan_name | VARCHAR | Loan this facility belongs to. |
borrower_name | VARCHAR | Borrower company name. |
structure_type | VARCHAR | Facility type. Possible values: TermLoan, DelayedDrawTermLoan, Revolver. |
closing_date | DATE | Date the facility closed. NULL if not yet closed. |
committed_amount | NUMBER | Net commitment across lenders after transfers, counting only commitment periods active today. 0 for a matured facility whose commitment periods have all ended. |
drawn_amount | NUMBER | Cumulative gross draws — the sum of tranche contributions on advances that have reached their effective date. Not the balance currently drawn: a revolver redraws, so this can exceed committed_amount. PIK capitalization adds to it as well. For the balance owed today, use outstanding_principal. |
outstanding_principal | NUMBER | Principal owed today, from the borrower-level payment obligations. NULL when none found. |
currency_code | VARCHAR | ISO currency code of the facility. |
advance_count | NUMBER | Number of advances under this facility, drawn or not. |
tranche_count | NUMBER | Number of tranches across drawn advances. |
lender_count | NUMBER | Number of lenders with a commitment today. |
prepayments_accepted | VARCHAR | Whether prepayment is allowed. Possible values: Yes, No, OnlyInFull. |
late_fee_fraction | NUMBER | Late fee rate, as a decimal fraction. |
late_fee_grace_period_days | NUMBER | Days after the due date before a late fee applies. |
payment_float_days | NUMBER | Days allowed for payment to clear. |
business_day_adjustment | VARCHAR | How a due date falling on a non-business day is moved. |
business_day_calendar | VARCHAR | Holiday calendar used (e.g. USBank). NULL when none is set. |
interest_balance_phase_of_day | VARCHAR | Whether interest accrues on the opening or closing balance. |
payment_application_order | VARCHAR | Order a payment is applied across components (e.g. "Fees, Interest, Principal"). |
lending_firm_name | VARCHAR | Lending firm that services the loan. |
draw_period_end_date | DATE | Last day a draw may be made. NULL when no draw period is set. |
created_at | TIMESTAMP_NTZ | Timestamp when the structure was created. |
updated_at | TIMESTAMP_NTZ | Timestamp of the most recent update to the structure. |
is_effective_date_included | BOOLEAN | Whether the effective date counts as an accrual day. |
prepayment_principal_inversed | BOOLEAN | Whether prepaid principal is applied in reverse order. |
is_active | BOOLEAN | Whether the parent loan is currently active. |
_pk | VARCHAR | Surrogate primary key derived from the structure ID. |
lending_firm_id | VARCHAR | Lending firm UUID. Used to enforce row access policy. |
structure_id | VARCHAR | Unique identifier for the loan structure. |
loan_id | VARCHAR | Loan UUID this facility belongs to. |
borrower_id | VARCHAR | Borrower company UUID. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
Summary Cap Table
Contains a summary cap table for each portco sourced from Carta's data warehouse materialized views. A summary cap table has 1 row per security class and contains the outstanding quantity, fully diluted quantity, authorized shares, cash raised, and ownership percentages. As of date is the date when the information was last updated by Carta in the data warehouse. Pagination sort: legal_name, security_class_name
| Column | Type | Description |
|---|---|---|
legal_name | VARCHAR | Legal name of the company |
security_class_name | VARCHAR | Name of the shareclass, note block, warrant block, or option pool |
as_of_date | TIMESTAMP_NTZ | The date when the cap table information was last loaded from Carta's data warehouse |
security_class_type | VARCHAR | Type of security class, e.g. warrant_block, option_plan, note_block, share_class |
security_class_type_detailed | VARCHAR | Detailed type of security class, e.g. Common warrant, Option plan, Convertible debt, Common, Preferred, SAFE, Preferred warrant, Convertible security |
as_converted_shareclass_name | VARCHAR | The name of the share class that the security will ultimately convert into upon exercise/settlement |
as_converted_sharclass_stock_type | VARCHAR | The stock type of the share class that the security will ultimately convert into upon exercise/settlement. e.g. Preferred or Common |
outstanding_shares | NUMBER | The number of shares that are outstanding. Will only be non-zero for share classes |
outstanding_warrants | NUMBER | The number of warrants that are outstanding. Will only be non-zero for warrant blocks |
outstanding_equity_award_derivatives | NUMBER | The number of equity award derivatives that are outstanding. Will only be non-zero for option pools |
outstanding_committed_rsas | NUMBER | The number of RSAs approved by the board but not yet purchased by the recipient |
plan_size | NUMBER | The total number of shares available under the plan. Will only be non-zero for option pools |
shares_available_under_plan | NUMBER | The number of shares available under the plan. Will only be non-zero for option pools |
fully_diluted_quantity | NUMBER(24,10) | The total number of securities on a fully diluted basis including all outstanding shares, warrants, options, and convertible securities |
authorized_shares | NUMBER | The number of shares that have been authorized by the board of directors. Will only be non-zero for share classes and option plans |
fully_diluted_ownership | NUMBER | The ownership percentage on a fully diluted basis, calculated as the fully diluted quantity divided by the total fully diluted shares for the corporation |
principal | OBJECT | The total principal amount in a noteblock as an OBJECT type with currency codes as keys and amounts as values. Example format - USD key with numeric value |
interest | OBJECT | The total interest amount in a noteblock as an OBJECT type with currency codes as keys and amounts as values. Example format - USD key with numeric value |
cash_raised | OBJECT | The total amount of cash raised by the security class as an OBJECT type with currency codes as keys and amounts as values. Example format - USD key with numeric value |
note_block_prefix | VARCHAR | Prefix identifier for note blocks |
warrant_block_prefix | VARCHAR | Prefix identifier for warrant blocks |
conversion_ratio | NUMBER | The conversion ratio of a shareclass, warrant, or option plan showing how many common shares each security converts into |
weighted_average_exercise_price | NUMBER | Weighted-average exercise price across the grants/warrants in the security class, computed as SUM(exercise_price * quantity) / SUM(quantity). Only populated for option_plan and warrant_block security class types. |
original_issue_price | NUMBER | Original Issue Price (OIP). Generally, this is the price paid by an investor when participating in a round. Without any other liquidation preferences, this is the amount that the investor would receive before common. If the preferred shareclass would convert into common if it would receive more money doing so. For warrants, this applies to the OIP of the as converted share class. |
conversion_price | NUMBER | Conversion Price. OIP / conversion_price = number of common shares the shareholder would receive if the stock converted to common. For example if OIP = 1 and conversion_price = .5, the shareholder would receive 2 shares of common. This calculation also affects the fully diluted shares of a company. This is overridden by conversion_ratio if it is present. |
preference_cap | NUMBER | Shareclass Preference Cap. Waterfall input. OIP * preference_cap is the amount of liquidation preference the shareholder will participate alongside common after the OIP * Multiplier has been paid out and before converting into common. |
multiplier | NUMBER | Shareclass Multiplier. This is a waterfall input and only used on preferred stock types. In the event of a liquidation, the holder of the stock will receive OIP * Multiplier based on the seniority before common starts to participate. |
seniority | NUMBER | Seniority is the order in which the preferred shareclasses are paid out. By default (seniority_is_inverted = false), shareclasses with a seniority of 1 are paid out first. If seniority_is_inverted = true, shareclasses with a seniority of 1 are paid out last. |
dividend_type | VARCHAR | Dividend Type. Can either be Cumulative or Non-Cumulative. If a dividend is cumulative it means that dividends accrue over time. In the event of a liquidation, the unpaid dividends are added to the investor's liquidation preference before paying out common. Non-cumulative dividends don't accrue and just protect the investors from the company trying to declare a dividend on just the common shareclass. |
dividend_coupon | NUMBER | Annual dividend percentage of the dividend rights (7.00 = 7%). The percentage is multiplied with the OIP to arrive at a dollar value. |
dividend_accrual | VARCHAR | Dividend Accrual is a time period such as daily or annually which defines when dividends are accrued. This has no effect on the dividend_coupon which is annual. |
interest_compounding_period | VARCHAR | Interest Compounding Period is how often the dividend is compounded. |
earliest_issue_date | DATE | Earliest (minimum) issue date across the securities in the security class. Populated for share_class, option_plan, and warrant_block security class types; NULL for note_block. |
first_board_approval_date | DATE | Date when the board first approved this option plan. Only populated for option_plan security class types |
termination_date | DATE | Date when this option plan was terminated. Only populated for option_plan security class types |
participating_preferred | BOOLEAN | Shareclass Participating Preferred. Waterfall input. If true, the shareholder will receive the OIP * Multiplier and participating_preferred alongside common after the preferences have been paid. The participation is limited by preference_cap. |
is_compounding | BOOLEAN | Is Compounding indicator. When true, dividend interest is calculated by using the OIP + cumulative accrued dividends to date. |
_pk | VARCHAR | Unique identifier which is a surrogate key of corporation_uuid, as_of_date, security_class_id |
corporation_id | VARCHAR | Unique identifier of the corporation |
security_class_id | VARCHAR | Unique identifier of the security class. Is prefixed with SC- for share classes, WC- for warrant blocks, OP- for option pools, and NB- for note blocks |
as_converted_shareclass_id | NUMBER | The share class that the security will ultimately convert into upon exercise/settlement |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
Task
One row per task — a unit of work raised against a loan or a firm. Tasks come from a generator that holds the rule: the triggering event, the action wanted, and how often it repeats. The generator carries the loan and counterparties, while the task carries the due date, who handled it, and when it completed. Most generators are loan-scoped, but a minority are company-wide templates with no loan attached; is_firm_level tells the two apart, and those rows carry a null loan_id and loan_name by design. completed_at is the only completion signal, so status, is_completed, and is_overdue are all derived from it. Pagination sort: loan_name, due_date, _pk
| Column | Type | Description |
|---|---|---|
task_name | VARCHAR | Name of the generator that raised this task. Nullable — identify a row by task_id rather than by name. |
loan_name | VARCHAR | Loan the task belongs to. Null on firm-level tasks. |
borrower_name | VARCHAR | Borrower on the loan. Null on firm-level tasks. |
assigned_to_company_name | VARCHAR | Company the task is assigned to. |
due_date | DATE | Date the task is due. |
status | VARCHAR | Completed, Overdue, or Open, derived from completed_at and due_date. Overdue is time-relative and evaluated at refresh, so it can lag the clock — see is_overdue. |
event_type | VARCHAR | Event that triggers the generator to raise a task. |
action_type | VARCHAR | Action the task asks for. |
description | VARCHAR | Free-text description carried on the generator. |
recurrence | VARCHAR | Raw RFC-5545 recurrence rule. Null on event-driven generators, which is most of them. Kept alongside the parsed frequency because the rule can carry qualifiers the parsed column does not cover. |
recurrence_frequency | VARCHAR | Frequency parsed out of recurrence — DAILY, WEEKLY, MONTHLY, or YEARLY. Null when recurrence is null. |
submission_window_days | NUMBER | Days allowed to submit after the task is raised. |
assigned_by_company_name | VARCHAR | Company that raised the task. |
lending_firm_name | VARCHAR | Lending firm that services the loan or owns the firm-level task. |
completed_at | TIMESTAMP_NTZ | Timestamp the task completed. Null while open. The only completion signal. |
recurrence_period_start_date | DATE | First day of the period this occurrence covers. |
recurrence_period_end_date | DATE | Last day of the period this occurrence covers. |
created_at | TIMESTAMP_NTZ | Timestamp the task record was created. |
updated_at | TIMESTAMP_NTZ | Timestamp the task record was last updated. |
is_completed | BOOLEAN | Convenience boolean — true when completed_at is populated. |
is_overdue | BOOLEAN | True when the task is open and past due. Evaluated when the data is refreshed, so compute due_date < CURRENT_DATE() AND NOT is_completed at query time if you need it exact. |
is_firm_level | BOOLEAN | True when the task has no loan and is scoped to the firm through the assigning company. These rows have a null loan_id and loan_name by design. |
_pk | VARCHAR | Surrogate primary key for the row. |
lending_firm_id | VARCHAR | Lending firm UUID, resolved from the loan where there is one and otherwise from the assigning company. Used to enforce row access policy. |
task_id | VARCHAR | Task UUID. |
task_generator_id | VARCHAR | UUID of the generator that raised this task and holds its rule. |
loan_id | VARCHAR | Loan UUID. Null on firm-level tasks. |
assigned_by_company_id | VARCHAR | Company UUID that raised the task. |
assigned_to_company_id | VARCHAR | Company UUID the task is assigned to. |
handled_by_user_id | VARCHAR | UUID of the user who handled the task. |
form_submitted_by_user_id | VARCHAR | UUID of the user who submitted the associated form. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed. |
Temporal Deal Irr
This model aggregates temporal deal IRR metrics for investments by fund. Looks at deal_irr on the asset level, not the portfolio company level. Pagination sort: fund_name, issuer_name, performance_quarter_end_date DESC
| Column | Type | Description |
|---|---|---|
fund_name | VARCHAR | Name of the investment fund. |
issuer_name | VARCHAR | Name of the issuer |
performance_quarter_end_date | DATE | End date of the performance quarter |
firm_name | VARCHAR | Name of the investment firm. |
issuer_entity_type | VARCHAR | Entity type of the issuer |
issuer_domicile_country | VARCHAR | Domicile country of the issuer |
earliest_investment_date | DATE | Earliest investment date for the asset |
remaining_value | NUMBER | Remaining value of the investment |
cost_basis | NUMBER | Cost basis of the investment |
total_cost | NUMBER | Total cost of the investment |
deal_irr | FLOAT | Deal IRR value |
pk | VARCHAR | Unique identifier composed of fund_uuid, issuer_id, and performance_quarter_end_date |
fund_uuid | VARCHAR | Unique identifier for the fund. Used as both a primary key and a foreign key. |
fund_id | VARCHAR | Unique identifier for the fund. Used as a foreign key. |
issuer_id | VARCHAR | Unique identifier of the issuer from the general ledger (GL). Used as both a primary key and a foreign key. |
firm_id | VARCHAR | Unique identifier for the management firm. Used as both a primary key and a foreign key. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
Temporal Fund Cohort Benchmarks
Time-series benchmarks tracking fund performance metrics (DPI, TVPI, Net IRR, MOIC, LP DPI, LP TVPI, Net LP IRR) by cohort over time. Fund-level metrics are sourced from fund_performance_metrics_history and benchmark percentiles come from the verified benchmark models (dpi, tvpi, net_irr, moic, lp_dpi, lp_tvpi, net_lp_irr). Pagination sort: fund_name, performance_quarter_start_date DESC
| Column | Type | Description |
|---|---|---|
fund_name | VARCHAR | The name of the fund |
performance_quarter_start_date | DATE | Quarter-start date for which metrics are calculated |
vintage_year | NUMBER | Fund's vintage year for cohort grouping |
fund_aum_bucket | VARCHAR | Fund size category for peer grouping |
entity_type_name | VARCHAR | Legal structure classification of the fund entity (e.g., Fund, SPV, ...). |
net_irr | FLOAT | Net internal rate of return (IRR) for the fund |
moic | FLOAT | Multiple on invested capital (MOIC). Calculated as total value / total cost |
tvpi | FLOAT | Total value to paid-in (TVPI) capital ratio |
dpi | FLOAT | Distributions to paid-in (DPI) capital ratio |
lp_dpi | FLOAT | LP-only distributions to paid-in (DPI) capital ratio |
lp_tvpi | FLOAT | LP-only total value to paid-in (TVPI) capital ratio |
net_lp_irr | FLOAT | Net internal rate of return (IRR) for the fund's LPs |
fund_count | NUMBER | Number of funds in the benchmark cohort |
dpi_5 | FLOAT | 5th percentile DPI in cohort |
dpi_10 | FLOAT | 10th percentile DPI in cohort |
dpi_25 | FLOAT | 25th percentile DPI in cohort |
dpi_50 | FLOAT | Median DPI in cohort |
dpi_75 | FLOAT | 75th percentile DPI in cohort |
dpi_90 | FLOAT | 90th percentile DPI in cohort |
dpi_95 | FLOAT | 95th percentile DPI in cohort |
tvpi_5 | FLOAT | 5th percentile TVPI in cohort |
tvpi_10 | FLOAT | 10th percentile TVPI in cohort |
tvpi_25 | FLOAT | 25th percentile TVPI in cohort |
tvpi_50 | FLOAT | Median TVPI in cohort |
tvpi_75 | FLOAT | 75th percentile TVPI in cohort |
tvpi_90 | FLOAT | 90th percentile TVPI in cohort |
tvpi_95 | FLOAT | 95th percentile TVPI in cohort |
net_irr_5th | FLOAT | 5th percentile net IRR in cohort |
net_irr_10th | FLOAT | 10th percentile net IRR in cohort |
net_irr_25th | FLOAT | 25th percentile net IRR in cohort |
net_irr_50th | FLOAT | Median net IRR in cohort |
net_irr_75th | FLOAT | 75th percentile net IRR in cohort |
net_irr_90th | FLOAT | 90th percentile net IRR in cohort |
net_irr_95th | FLOAT | 95th percentile net IRR in cohort |
moic_5 | FLOAT | 5th percentile MOIC in cohort |
moic_10 | FLOAT | 10th percentile MOIC in cohort |
moic_25 | FLOAT | 25th percentile MOIC in cohort |
moic_50 | FLOAT | Median MOIC in cohort |
moic_75 | FLOAT | 75th percentile MOIC in cohort |
moic_90 | FLOAT | 90th percentile MOIC in cohort |
moic_95 | FLOAT | 95th percentile MOIC in cohort |
lp_dpi_5 | FLOAT | 5th percentile LP DPI in cohort |
lp_dpi_10 | FLOAT | 10th percentile LP DPI in cohort |
lp_dpi_25 | FLOAT | 25th percentile LP DPI in cohort |
lp_dpi_50 | FLOAT | Median LP DPI in cohort |
lp_dpi_75 | FLOAT | 75th percentile LP DPI in cohort |
lp_dpi_90 | FLOAT | 90th percentile LP DPI in cohort |
lp_dpi_95 | FLOAT | 95th percentile LP DPI in cohort |
lp_tvpi_5 | FLOAT | 5th percentile LP TVPI in cohort |
lp_tvpi_10 | FLOAT | 10th percentile LP TVPI in cohort |
lp_tvpi_25 | FLOAT | 25th percentile LP TVPI in cohort |
lp_tvpi_50 | FLOAT | Median LP TVPI in cohort |
lp_tvpi_75 | FLOAT | 75th percentile LP TVPI in cohort |
lp_tvpi_90 | FLOAT | 90th percentile LP TVPI in cohort |
lp_tvpi_95 | FLOAT | 95th percentile LP TVPI in cohort |
net_lp_irr_5th | FLOAT | 5th percentile net LP IRR in cohort |
net_lp_irr_10th | FLOAT | 10th percentile net LP IRR in cohort |
net_lp_irr_25th | FLOAT | 25th percentile net LP IRR in cohort |
net_lp_irr_50th | FLOAT | Median net LP IRR in cohort |
net_lp_irr_75th | FLOAT | 75th percentile net LP IRR in cohort |
net_lp_irr_90th | FLOAT | 90th percentile net LP IRR in cohort |
net_lp_irr_95th | FLOAT | 95th percentile net LP IRR in cohort |
_perf_pk | VARCHAR | Primary key for performance metrics table |
fund_uuid | VARCHAR | Unique identifier for the fund. Used as both a primary key and a foreign key. |
firm_id | VARCHAR | Unique identifier for the management firm. Used as both a primary key and a foreign key. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution |
Tranche
One row per tranche: a priority-ordered slice of an advance, held by one or more lenders. Tranches are transfer-versioned — created_by_transfer_id and closed_by_transfer_id record the assignment or participation that opened and closed a slice, and start_date / end_date bound the period it was live. Both are NULL on most tranches, since only those touched by a transfer carry them, so a NULL end_date means the tranche is open rather than that data is missing. committed_amount is the sum of lender contributions. outstanding_principal is the balance owed across the tranche's lenders today, from the lender-level obligations, and is NULL where no obligation has been raised yet. Pagination sort: loan_name, advance_name, priority, _pk
| Column | Type | Description |
|---|---|---|
tranche_name | VARCHAR | Tranche name (e.g. "Tranche A"). |
advance_name | VARCHAR | Advance this tranche slices. |
loan_name | VARCHAR | Loan the advance belongs to. |
borrower_name | VARCHAR | Borrower company name. |
priority | NUMBER | Repayment priority within the advance. Lower is more senior. |
committed_amount | NUMBER | Sum of lender contributions to this tranche. |
outstanding_principal | NUMBER | Balance owed across this tranche's lenders today. NULL if no obligation has been raised yet. |
currency_code | VARCHAR | ISO currency code, or NULL where contributions to this tranche are in mixed currencies. |
lender_count | NUMBER | Number of distinct lenders contributing to this tranche. |
lending_firm_name | VARCHAR | Lending firm that services the loan. |
start_date | DATE | Date the tranche became live. NULL unless a transfer set it. |
end_date | DATE | Date the tranche closed. NULL means open, not missing. |
earliest_contributed_at | TIMESTAMP_NTZ | Timestamp of the first lender contribution. |
created_at | TIMESTAMP_NTZ | Timestamp the tranche was created. |
updated_at | TIMESTAMP_NTZ | Timestamp the tranche was last updated. |
is_open | BOOLEAN | True when end_date IS NULL. |
was_opened_by_transfer | BOOLEAN | Whether an assignment or participation created this tranche. |
was_closed_by_transfer | BOOLEAN | Whether an assignment or participation closed this tranche. |
_pk | VARCHAR | Surrogate primary key derived from the tranche ID. |
lending_firm_id | VARCHAR | Lending firm UUID. Used to enforce row access policy. |
tranche_id | VARCHAR | Unique identifier for the tranche. |
advance_id | VARCHAR | Advance UUID this tranche belongs to. |
structure_id | VARCHAR | UUID of the structure the advance sits under. |
loan_id | VARCHAR | Loan UUID the tranche belongs to. |
created_by_transfer_id | VARCHAR | Transfer that opened this tranche, if any. |
closed_by_transfer_id | VARCHAR | Transfer that closed this tranche, if any. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
Tranche Contribution
One row per lender position in a tranche, as of today. Shows each lender's committed and disbursed amount and outstanding principal in a given tranche, along with the parent loan, borrower, and key dates. Positions reflect both original commitments and any subsequent transfers between lenders. Pagination sort: loan_name, lender_name, effective_date DESC, _pk
| Column | Type | Description |
|---|---|---|
lender_name | VARCHAR | Name of the lender. |
tranche_name | VARCHAR | Name of the tranche. |
loan_name | VARCHAR | Parent loan name. |
borrower_name | VARCHAR | Cached borrower name from the parent loan. |
committed_amount | NUMBER | Effective committed amount for this (tranche, lender) as of as_of_date. Includes original tranche contribution plus net transfer allocations. |
disbursed_amount | NUMBER | committed_amount once the parent advance has gone effective; otherwise 0. |
outstanding_principal | NUMBER | Per-lender outstanding principal from the latest child payment obligation. NULL if no period-bearing obligation exists yet. |
currency_code | VARCHAR | Currency from the original tranche contribution. NULL for transfer-only lenders. |
lending_firm_name | VARCHAR | Cached lending firm (fund manager) name from the parent loan. Distinct from lender_name. |
lead_lender_name | VARCHAR | Cached lead lender name from the parent loan. |
agent_name | VARCHAR | Cached agent name from the parent loan. |
created_at | TIMESTAMP_NTZ | Earliest tranche-contribution timestamp for this (tranche, lender). NULL for transfer-only lenders. |
updated_at | TIMESTAMP_NTZ | Latest tranche-contribution timestamp for this (tranche, lender). NULL for transfer-only lenders. |
effective_date | DATE | Effective date of the parent advance. |
maturity_date | DATE | Maturity date of the parent advance. |
as_of_date | DATE | Date this position snapshot represents. Currently always today's date. |
is_active | BOOLEAN | Whether the parent loan is currently active. |
_pk | VARCHAR | Surrogate primary key generated from (tranche_id, lender_id, as_of_date). |
lending_firm_id | VARCHAR | Lending firm UUID. Used to enforce row access policy. |
lender_id | VARCHAR | Lender company UUID. |
tranche_id | VARCHAR | Parent tranche UUID. |
advance_id | VARCHAR | Parent advance UUID. |
structure_id | VARCHAR | Parent loan structure UUID. |
loan_id | VARCHAR | Parent loan UUID. |
borrower_id | VARCHAR | Borrower company UUID. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
Transfer
One row per transfer: a lender moving part or all of their position to another lender. An Assignment moves the position outright; a Participation sells the economics while the original lender stays on the facility. Both reshape who is owed what. effective_date is what matters, not created_at — a transfer agreed today may take effect later, and only effective transfers are reflected in Lender Position. allocated_amount and allocation_types summarise the detail in Transfer Allocation. Pagination sort: loan_name, effective_date DESC, _pk
| Column | Type | Description |
|---|---|---|
loan_name | VARCHAR | Loan this record belongs to. |
borrower_name | VARCHAR | Borrower on the loan. |
transferred_from_name | VARCHAR | Company the position moved from. |
transferred_to_name | VARCHAR | Company the position moved to. |
effective_date | DATE | Date the transfer takes effect. Drives is_effective and inclusion in lender positions. |
transfer_type | VARCHAR | Assignment moves the position outright; Participation sells the economics while the original lender stays on the facility. |
allocated_amount | NUMBER | Sum of allocation amounts, in allocated_amount_currency. Null when the transfer's allocations span more than one currency, since a cross-currency total would be meaningless; 0 when the transfer has no allocations. |
allocated_amount_currency | VARCHAR | Currency of allocated_amount. Null when the transfer has no allocations, or when they span more than one currency. |
allocation_count | NUMBER | Number of allocation lines on this transfer. 0 when none have been recorded. Use this rather than allocated_amount to tell whether a transfer has detail, since the amount is also 0 or null in the no-allocation and mixed-currency cases. |
allocation_types | VARCHAR | Comma-separated distinct components this transfer moved, e.g. "Commitment, Principal". Null when the transfer has no allocations. The per-line detail is in Transfer Allocation. |
lending_firm_name | VARCHAR | Lending firm that services the loan. |
created_at | TIMESTAMP_NTZ | Timestamp the transfer record was created. Not the date it takes effect — see effective_date. |
updated_at | TIMESTAMP_NTZ | Timestamp the transfer record was last updated. |
is_pro_rata_pik_included | BOOLEAN | Whether accrued PIK moves with the position pro rata as part of this transfer, rather than staying with the transferring lender. |
is_effective | BOOLEAN | Convenience boolean — true when effective_date has been reached, meaning the transfer is reflected in current lender positions. Evaluated when the data is refreshed, so compute effective_date <= CURRENT_DATE() at query time if you need it exact. |
_pk | VARCHAR | Surrogate primary key for the row. |
lending_firm_id | VARCHAR | Lending firm UUID. Used to enforce row access policy. |
transfer_id | VARCHAR | Transfer UUID. |
loan_id | VARCHAR | Loan this transfer belongs to. |
transferred_from_id | VARCHAR | Company id the position moved from. |
transferred_to_id | VARCHAR | Company id the position moved to. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed. |
Transfer Allocation
One row per allocation line on a transfer: which component of a position moved, and how much. allocation_type names the component and also determines which id is populated — Commitment allocations carry structure_id, Principal and the PIK types carry tranche_id, Fee allocations carry fee_id. A null on the others is the normal shape for that type, not missing data. Amounts are unsigned. Direction comes from the parent transfer: the amount leaves transferred_from_name and arrives at transferred_to_name. Pagination sort: loan_name, effective_date DESC, _pk
| Column | Type | Description |
|---|---|---|
loan_name | VARCHAR | Loan this record belongs to. |
borrower_name | VARCHAR | Borrower on the loan. |
transferred_from_name | VARCHAR | Company the position moved from, taken from the parent transfer. |
transferred_to_name | VARCHAR | Company the position moved to, taken from the parent transfer. |
effective_date | DATE | Effective date of the parent transfer. |
allocation_type | VARCHAR | Which component of the position moved. |
amount | NUMBER | Unsigned amount moved. Direction comes from the parent transfer. |
amount_currency | VARCHAR | Currency of amount. Allocation-scoped, not transfer-scoped. |
transfer_type | VARCHAR | Type of the parent transfer — Assignment or Participation. Repeated on every allocation line of that transfer. |
structure_name | VARCHAR | Structure this allocation moved, resolved from structure_id. Populated on Commitment allocations; null on the others by design. |
tranche_name | VARCHAR | Tranche this allocation moved, resolved from tranche_id. Populated on Principal and the PIK allocation types; null on the others by design. |
fee_name | VARCHAR | Fee this allocation moved, resolved from fee_id. Populated on Fee allocations; null on the others by design. |
lending_firm_name | VARCHAR | Lending firm that services the loan. |
created_at | TIMESTAMP_NTZ | Timestamp the allocation record was created. |
updated_at | TIMESTAMP_NTZ | Timestamp the allocation record was last updated. |
is_effective | BOOLEAN | Convenience boolean — true when the parent transfer's effective_date has been reached. Evaluated when the data is refreshed, so compute effective_date <= CURRENT_DATE() at query time if you need it exact. |
_pk | VARCHAR | Surrogate primary key for the row. |
lending_firm_id | VARCHAR | Lending firm UUID. Used to enforce row access policy. |
transfer_allocation_id | VARCHAR | Transfer allocation UUID. |
transfer_id | VARCHAR | Parent transfer. |
loan_id | VARCHAR | Loan this allocation belongs to. |
structure_id | VARCHAR | Structure this allocation moved. Populated on Commitment allocations; null otherwise. |
tranche_id | VARCHAR | Tranche this allocation moved. Populated on Principal and PIK allocations; null otherwise. |
fee_id | VARCHAR | Fee this allocation moved. Populated on Fee allocations; null otherwise. |
transferred_from_id | VARCHAR | Company id the position moved from, taken from the parent transfer. |
transferred_to_id | VARCHAR | Company id the position moved to, taken from the parent transfer. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed. |
Waterfall Modeling
Core (normalized) layer for saved waterfalls. One row per PortfolioValuationMark. Two source types are surfaced: (1) WATERFALL_EXECUTION — legacy single-execution marks; (2) NIAGARA_V4_WATERFALL_EXECUTION — modern multi-execution marks fanned out via execution_graph_node. Four target_type variants are handled: CORPORATION, CORPORATION_ENTITY_GROUP, LLC_ISSUER, and LLC_ACCOUNT (multi-entity LLC waterfalls). Pagination sort: target_name, exit_date DESC, _pk
| Column | Type | Description |
|---|---|---|
exit_date | DATE | Waterfall exit date — PortfolioValuationMark.effective_date. |
target_type | VARCHAR | PortfolioValuationMark.target_kind. One of CORPORATION, CORPORATION_ENTITY_GROUP, LLC_ISSUER, or LLC_ACCOUNT (the latter for multi-entity LLC waterfalls saved against an LLC account UUID). |
target_name | VARCHAR | Legal name of the portfolio company being valued. Resolved by target_type — CORPORATION from corporation legal name; CORPORATION_ENTITY_GROUP from entity group name; LLC_ISSUER from LLC entity legal name; LLC_ACCOUNT from LLC account name (may include a firm-specific suffix such as "(EQT Paper Company)"). NULL only when no matching record exists. |
exit_value | NUMBER | Waterfall exit value — PortfolioValuationMark.target_value. |
total_holdings_value | NUMBER | Total firm holdings value across all administered-fund allocations attached to this mark. 0 when the firm's administered funds receive no allocation in this scenario (e.g. exit value below the liquidation preference stack). |
_pk | VARCHAR | Surrogate primary key generated from PortfolioValuationMark.id. |
firm_id | VARCHAR | Firm UUID. Translated from PortfolioValuationMark.owner_id via fund_admin_firm. Foreign key for row access policy. |
target_id | VARCHAR | Identifier of the portfolio company. Corporation UUID when target_type = CORPORATION; otherwise the upstream UUID (entity group, LLC interest issuer, or LLC account). Foreign key for row access policy. |
portfolio_valuation_mark_id | NUMBER | Unique identifier of the PortfolioValuationMark row. |
waterfall_id | VARCHAR | PortfolioValuationMark.source_id. For WATERFALL_EXECUTION this is a scenario_waterfall_execution.id; for NIAGARA_V4_WATERFALL_EXECUTION it is an execution_graph.id. |
waterfall_source_type | VARCHAR | PortfolioValuationMark.source_type. One of: WATERFALL_EXECUTION (legacy single-execution marks) or NIAGARA_V4_WATERFALL_EXECUTION (modern multi-execution marks). |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
target_type = 'CORPORATION'. Rows where target_type = 'LLC_ISSUER', 'CORPORATION_ENTITY_GROUP', or 'LLC_ACCOUNT' carry non-corporation UUIDs in target_id and are not yet visible to PE-firm users; coverage for these target types is planned.Waterfall Modeling History
One row per saved Waterfall Modeling mark (PortfolioValuationMark). Captures the exit-scenario snapshot at the time the waterfall was saved: target, exit value, and total firm holdings value attached to the mark. Pagination sort: target_name, exit_date DESC, _pk
| Column | Type | Description |
|---|---|---|
exit_date | DATE | Waterfall exit date (mark's effective_date). |
target_type | VARCHAR | Mark's target_kind. One of CORPORATION, CORPORATION_ENTITY_GROUP, LLC_ISSUER, or LLC_ACCOUNT (the latter for multi-entity LLC waterfalls). |
target_name | VARCHAR | Legal name of the portfolio company being valued. Resolved by target_type — CORPORATION from corporation legal name; CORPORATION_ENTITY_GROUP from entity group name; LLC_ISSUER from LLC entity legal name; LLC_ACCOUNT from LLC account name (may include a firm-specific suffix such as "(EQT Paper Company)"). NULL only when no matching record exists. |
exit_value | NUMBER | Waterfall exit value. |
total_holdings_value | NUMBER | Total firm holdings value attached to this mark. 0 when the firm's administered funds receive no allocation in this scenario (e.g. when the exit value is below the liquidation preference stack so subordinate funds get zeroed out). |
_pk | VARCHAR | Surrogate primary key. |
firm_id | VARCHAR | Firm UUID. Used to enforce row access policy. |
target_id | VARCHAR | Identifier of the portfolio company. Corporation UUID when target_type = CORPORATION; otherwise the upstream UUID (entity group, LLC interest issuer, or LLC account). Used to enforce row access policy. |
waterfall_id | VARCHAR | Mark's source_id (scenario waterfall execution id for legacy WATERFALL_EXECUTION marks; execution graph id for NIAGARA_V4_WATERFALL_EXECUTION marks). |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
target_type = 'CORPORATION'. Rows where target_type = 'LLC_ISSUER', 'CORPORATION_ENTITY_GROUP', or 'LLC_ACCOUNT' (multi-entity LLC waterfalls) carry non-corporation UUIDs in target_id and are not yet visible to PE-firm users; coverage for these target types is planned.