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
- Investment Tags
- Statement Of Ops
- Temporal Deal Irr
- Temporal Fund Cohort Benchmarks
- Underlying Investments
- Underlying Investments History
Valuations
- Fund Holdings Value
- Holdings Value
- Portfolio Valuations
- Profit Allocation Waterfall Config
- Waterfall Modeling
Capital Activity & Cash Flows
- Capital Activities
- Capital Activity Partner Rows
- Capital Activity Row Journal Entries
- Management Fee Schedules
Loan Operations
- Advance
- Amendment
- Benchmark Rate
- Cash Transaction
- Company
- Custom Field
- Default Event
- Document
- Fee
- Instrument
- Interest Rate Period
- Interest Rate Term
- Lender Commitment
- 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 Contacts
- Partner Data
- Partner Monthly Nav Calculations
Portfolio Companies & Ownership
- Company Financials
- Company Financials Latest
- Corporation Basic Info
- Corporation Basic Info V2
- Corporation Entity Links
- Corporation Entity Links V2
- Financing History
- Firm Corporation Holdings
- Firm Entity Archived Status
- Fund Corporation Ownership
- Irc409a Value
- Portfolio Events
- Portfolio Notes
- Summary Cap Table
Document Intelligence
- Document Ai Document
- Document Ai Extraction
- Document Ai Nda
- Document Ai Record
- Document Ai Spa
- Document Ai Spa Issuer
- Document Ai Spa Purchaser
- Document Ai Spa Series
- Document Attribute Carta Law Work Item
LP Portfolio Analytics (LPPA)
- LPPA Documents
- LPPA Entity With Entity Metric
- LPPA Events
- LPPA Fund Underlying
- LPPA General Partners
- LPPA Linked Investors
- LPPA Metrics
- LPPA Securities
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 | VARCHAR | 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 |
total_dpi | NUMBER | Distributions to paid-in capital ratio for both LPs and GPs (most recent month-end value) |
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 |
current_status | VARCHAR | TODO: add a description to the dbt model YAML. |
base_currency_code | VARCHAR | Currency the asset was purchased in (the asset's "base currency"), which may differ from the fund's reporting currency shown in currency_code. |
base_currency_cost | NUMBER | Remaining cost basis in the asset's purchase currency; base-currency analog of total_cost_basis. |
base_currency_unrealized_gain_loss | NUMBER | Unrealized gain/loss in the asset's purchase currency; base-currency analog of total_unrealized_gain_loss. |
base_currency_remaining_value | NUMBER | Current fair market value of remaining holdings in the asset's purchase currency (base_currency_cost + base_currency_unrealized_gain_loss). |
base_currency_value_per_share | NUMBER | Fair market value per share in the asset's purchase currency (base_currency_remaining_value / count_remaining_shares). |
base_currency_cost_per_share | NUMBER | Cost basis per share in the asset's purchase currency (base_currency_cost / count_remaining_shares). |
base_currency_total_cost | NUMBER | Total purchase amount in the asset's purchase currency; NULL when no record has both a purchase amount and a base-currency cost. Base-currency analog of total_cost. |
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 |
base_currency_code | VARCHAR | Currency the asset was purchased in (the asset's "base currency"), which may differ from the fund's reporting currency shown in currency_code. |
base_currency_cost | NUMBER | Cumulative remaining cost basis in the asset's purchase currency as of the effective_date; base-currency analog of total_cost_basis. |
base_currency_unrealized_gain_loss | NUMBER | Cumulative unrealized gain/loss in the asset's purchase currency as of the effective_date. |
base_currency_remaining_value | NUMBER | Remaining cost basis + unrealized gain/loss in the asset's purchase currency (base_currency_cost + base_currency_unrealized_gain_loss). |
base_currency_value_per_share | NUMBER | Fair market value per share in the asset's purchase currency (base_currency_remaining_value / count_remaining_shares). |
base_currency_cost_per_share | NUMBER | Cost basis per share in the asset's purchase currency (base_currency_cost / count_remaining_shares). |
base_currency_total_cost | NUMBER | Cumulative total purchase amount in the asset's purchase currency as of the effective_date; NULL when no record has both a purchase amount and a base-currency cost. |
invested_fund_uuid | VARCHAR | Unique identifier (UUID) of the underlying fund/SPV vehicle this position invests in, gated on is_investment_in_carta_fund_entity (issuer entity_type is Fund or SPV) rather than is_investment_in_fund — the latter also covers GP/Mgt Company issuers via the asset_class_type = 'FUND_INVESTMENT' branch, which are not "the invested fund" and would otherwise get their own uuid mislabeled as one. NULL for all other rows, and also NULL when the underlying fund/SPV entity cannot be resolved (e.g. it is not itself administered on this platform). Use to join to this fund's own rows elsewhere in the warehouse (e.g. fund_uuid on this same table, or on core/mart fund models). |
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 | NUMBER | 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. |
fbo_amount_applied | NUMBER | Total FBO payout amount applied to this partner row (excludes prepaid remainders). For capital calls collected via Carta's FBO virtual accounts, this reflects money actually received and swept to the fund's bank account — it can show payment before payment_status flips, since that column only updates asynchronously at payout creation/reconciliation. 0 for non-FBO activities. |
latest_fbo_payout_date | DATE | Effective date of the most recent FBO payout applied to this partner row. Null when no FBO payouts have been applied (including all non-FBO activities). |
effective_payment_status | VARCHAR | Best-available payment status: payment_status overlaid with received FBO payouts. funds_received = FBO payouts cover the full amount owed but the official status has not yet flipped to paid; partially_received = some FBO money applied. Prefer this over payment_status for LP payment-tracking and follow-up decisions. |
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 | TIMESTAMP_NTZ | 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 |
general_ledger_issuer_id | VARCHAR | UUID of the GL issuer. NULL for CORP and LLC rows. |
Company Financials Latest
Latest submission per fact from company financials. Returns one row per firm/entity/period_end/mnemonic/frequency/report_type/instance_type combination, keeping the most recent submission by as_of_date DESC, instance_id DESC. Deduped per firm so one firm's restatement never hides another firm's data for a shared portfolio company. Pagination sort: legal_name, as_of_date DESC, mnemonic
| Column | Type | Description |
|---|---|---|
legal_name | VARCHAR | The legal name of the portfolio company. NULL for FA_ISSUER rows where the GL issuer has been deleted (is_deleted=true) or where the entity_id does not resolve to a known general_ledger_issuer_id. Also null for CORP rows where the entity_id does not resolve to a known corporation (e.g. 9Yards Capital uploaded financials for a portco not in Carta's corporation table). |
as_of_date | TIMESTAMP_NTZ | 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, FA_ISSUER for Fund Admin general ledger issuers) |
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 |
_pk | VARCHAR | Primary key inherited from company_financials (unique per latest submission) |
firm_id | VARCHAR | Unique identifier for the management firm |
corporation_id | VARCHAR | The Carta Corporation UUID of the portfolio company. NULL for LLC and FA_ISSUER rows. Also null for CORP rows where the entity_id does not resolve to a known corporation (e.g. 9Yards Capital uploaded financials for a portco not in Carta's corporation table). |
llc_entity_id | VARCHAR | The LLC entity UUID. NULL for CORP and FA_ISSUER rows. |
general_ledger_issuer_id | VARCHAR | UUID of the GL issuer. NULL for CORP and LLC rows. |
instance_id | NUMBER | An instance represents a collection of data representing a given period. Data can be collected for the same period multiple times. |
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 |
carta_firm_id | NUMBER | Integer Carta firm ID for the management firm. Resolved from the firm UUID via the fund_admin_firm table. Used to construct direct deep links in Carta MCP (e.g. portfolio company pages) without requiring staff-only API access. NULL when the firm has no carta_id (fund_admin-only firms with no cartaweb counterpart). NOTE: Exposing integer IDs in DWH models is generally avoided in favour of UUIDs. This is an intentional exception — Fund Admin product URLs require the integer ID and the only resolution endpoint (FirmClient) is staff-only, making the DWH the only viable source for non-staff users. |
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 Nda
AI-extracted nda datapoints, one row per extraction. Values are unverified model output. The attributes column carries the raw provenance envelope (confidence, reasoning, citations) for every extracted field. Pagination sort: classified_document_type, created_at DESC, _pk
| Column | Type | Description |
|---|---|---|
metadata_document_type | VARCHAR | Whether this is a standalone NDA, an addendum to a prior agreement, or an amendment modifying terms. |
metadata_document_subtype | VARCHAR | Functional classification. |
metadata_title | VARCHAR | Document title as it appears in the agreement header. |
metadata_direction | VARCHAR | Whether confidentiality obligations apply to both parties or only one. |
metadata_disclosing_party_name | VARCHAR | Legal name of the party. |
metadata_disclosing_party_entity_type | VARCHAR | Type of legal entity for the party. |
metadata_disclosing_party_jurisdiction | VARCHAR | State or country of incorporation/formation for the party. |
metadata_receiving_party_name | VARCHAR | Legal name of the party. |
metadata_receiving_party_entity_type | VARCHAR | Type of legal entity for the party. |
metadata_receiving_party_jurisdiction | VARCHAR | State or country of incorporation/formation for the party. |
confidentiality_ci_definition_scope | VARCHAR | How broadly 'Confidential Information' is defined. |
confidentiality_ci_definition_marking_required | BOOLEAN | Whether information must be marked or identified as confidential to receive protection. |
confidentiality_ci_definition_oral_confirmation_window | NUMBER | Time after oral disclosure to provide written confirmation. |
confidentiality_ci_definition_oral_confirmation_window_unit | VARCHAR | TODO: add a description to the dbt model YAML. |
confidentiality_ci_definition_includes_derivatives | BOOLEAN | Whether protection extends to analyses, reports, or materials derived from original confidential information. |
confidentiality_ci_definition_includes_discussion_existence | BOOLEAN | Whether the fact that discussions are occurring is itself confidential. |
confidentiality_ci_definition_includes_third_party_info | BOOLEAN | Whether the definition covers confidential information about third parties. |
confidentiality_ci_definition_industry_specific_terms | ARRAY | Industry-specific terms added to the confidentiality definition (one per item). |
confidentiality_ci_definition_software_specific | BOOLEAN | Whether the definition includes software-specific terms. |
confidentiality_ci_exclusions_prior_knowledge | BOOLEAN | Excludes information recipient already knew before disclosure. |
confidentiality_ci_exclusions_public_domain | BOOLEAN | Excludes information already publicly available. |
confidentiality_ci_exclusions_third_party_receipt | BOOLEAN | Excludes information lawfully received from a third party. |
confidentiality_ci_exclusions_independent_development | BOOLEAN | Excludes information independently developed by recipient. |
confidentiality_ci_exclusions_compelled_disclosure | BOOLEAN | Permits disclosure when legally required. |
confidentiality_ci_exclusions_written_release | BOOLEAN | Excludes information explicitly released in writing by discloser. |
confidentiality_permitted_purpose_description | VARCHAR | The specific business purpose for which confidential information may be used. |
confidentiality_permitted_purpose_scope | VARCHAR | How narrowly the permitted purpose is defined. |
permitted_disclosure_representative_categories | ARRAY | Categories of people/entities to whom confidential information may be shared (one per item). |
permitted_disclosure_requires_sub_nda | BOOLEAN | Whether representatives must sign their own separate NDAs. |
permitted_disclosure_liability_for_representatives | VARCHAR | Party's liability standard for breaches by its representatives. |
permitted_disclosure_financing_sources_included | BOOLEAN | Whether debt or equity financing sources are included as permitted representatives. |
permitted_disclosure_financing_sources_require_consent | BOOLEAN | If financing sources not automatically included, whether their involvement requires consent. |
permitted_disclosure_standard_of_care | VARCHAR | Level of care required to protect confidential information. |
term_initial_term | NUMBER | Duration of the NDA's initial term. |
term_initial_term_unit | VARCHAR | TODO: add a description to the dbt model YAML. |
term_survival_period | NUMBER | How long confidentiality obligations survive after termination (null/absent for indefinite/perpetual). |
term_survival_period_unit | VARCHAR | TODO: add a description to the dbt model YAML. |
term_perpetual_categories | ARRAY | Categories of information with indefinite protection (one per item). |
term_termination_for_convenience | BOOLEAN | Whether either party may terminate without cause. |
term_termination_notice_period | NUMBER | Advance notice required to terminate. |
term_termination_notice_period_unit | VARCHAR | TODO: add a description to the dbt model YAML. |
term_termination_auto_on_transaction | BOOLEAN | Whether NDA automatically terminates upon closing of transaction. |
term_termination_auto_on_inactivity | BOOLEAN | Whether NDA terminates automatically after a period of no activity. |
term_termination_inactivity_period | NUMBER | Period of inactivity before automatic termination. |
term_termination_inactivity_period_unit | VARCHAR | TODO: add a description to the dbt model YAML. |
term_termination_mutual_written_agreement | BOOLEAN | Whether termination requires written agreement from both parties. |
term_return_destruction_required | BOOLEAN | Whether recipient must return or destroy all confidential information. |
term_return_destruction_written_certification | BOOLEAN | Whether recipient must provide written certification of destruction. |
term_return_destruction_backup_exception | BOOLEAN | Exception allowing retention in automatic backup systems. |
term_return_destruction_legal_retention_exception | BOOLEAN | Exception allowing retention when required by law. |
term_return_destruction_counsel_retention_exception | BOOLEAN | Exception allowing outside counsel to retain one copy. |
transaction_standstill_present | BOOLEAN | Whether NDA includes standstill restrictions preventing hostile action. |
transaction_standstill_direction | VARCHAR | Which party is restricted. |
transaction_standstill_duration | NUMBER | How long the standstill lasts. |
transaction_standstill_duration_unit | VARCHAR | TODO: add a description to the dbt model YAML. |
transaction_standstill_restrictions | ARRAY | Specific actions prohibited (one per item). |
transaction_standstill_release_triggers | ARRAY | Events that automatically release the standstill (one per item). |
transaction_standstill_waiver_request_prohibited | BOOLEAN | Whether buyer is prohibited from requesting a standstill waiver (don't ask, don't waive). |
transaction_standstill_confidential_proposal_permitted | BOOLEAN | Whether buyer may make a confidential proposal to the board despite standstill. |
transaction_standstill_equity_accumulation_threshold | FLOAT | Maximum ownership percentage buyer may accumulate. |
transaction_non_solicitation_present | BOOLEAN | Whether NDA restricts hiring or soliciting employees. |
transaction_non_solicitation_direction | VARCHAR | Whether non-solicitation applies to both parties or only protects one. |
transaction_non_solicitation_duration | NUMBER | How long the non-solicitation lasts. |
transaction_non_solicitation_duration_unit | VARCHAR | TODO: add a description to the dbt model YAML. |
transaction_non_solicitation_scope | VARCHAR | Breadth of employee protection. |
transaction_non_solicitation_carve_outs | ARRAY | Exceptions to non-solicitation (one per item). |
transaction_contact_restrictions_present | BOOLEAN | Whether NDA restricts buyer from contacting target's employees, customers, or suppliers. |
transaction_contact_restrictions_scope | VARCHAR | What contacts are restricted. |
transaction_securities_provisions_present | BOOLEAN | Whether NDA addresses insider trading and securities law compliance. |
transaction_securities_provisions_type | VARCHAR | Level of securities restriction. |
transaction_securities_provisions_direction | VARCHAR | Which party faces securities restrictions. |
transaction_securities_provisions_trading_carve_outs | ARRAY | Exceptions to trading restrictions (one per item). |
transaction_process_control_present | BOOLEAN | Whether NDA includes provisions about seller's control over the M&A process. |
transaction_process_control_sole_discretion_language | BOOLEAN | Whether seller explicitly retains sole discretion over process decisions. |
transaction_process_control_right_to_negotiate_with_others | BOOLEAN | Whether NDA confirms seller may negotiate simultaneously with multiple parties. |
transaction_public_announcement_rights_present | BOOLEAN | Whether NDA addresses rights to make public announcements. |
transaction_public_announcement_rights_direction | VARCHAR | Which party must obtain consent for announcements. |
transaction_public_announcement_rights_strategic_alternatives_language | BOOLEAN | Whether seller may publicly announce exploring strategic alternatives without buyer consent. |
transaction_no_obligation_to_transact | BOOLEAN | Confirms neither party is obligated to proceed with a transaction. |
remedies_injunctive_relief_available | BOOLEAN | Whether parties may seek injunctive relief for breaches. |
remedies_injunctive_relief_pre_agreed_irreparable_harm | BOOLEAN | Whether parties pre-agree that breaches cause irreparable harm. |
remedies_injunctive_relief_bond_waiver | BOOLEAN | Waives requirement to post bond when seeking injunction. |
remedies_injunctive_relief_cumulative | BOOLEAN | Confirms injunctive relief is in addition to other remedies. |
remedies_attorneys_fees_present | BOOLEAN | Whether NDA provides for recovery of attorneys' fees. |
remedies_attorneys_fees_structure | VARCHAR | Who pays legal fees when the provision is present. |
remedies_jury_waiver | BOOLEAN | Whether parties waive the right to a jury trial. |
governing_governing_law | VARCHAR | State or country law governing interpretation and enforcement. |
governing_venue | VARCHAR | Court location for disputes. |
governing_venue_exclusive | BOOLEAN | Whether the venue clause is exclusive or permissive. |
governing_dispute_resolution | VARCHAR | Method for resolving disputes. |
governing_arbitration_rules | VARCHAR | Arbitration rules to govern the proceeding (only if arbitration elected). |
governing_arbitration_seat | VARCHAR | Geographic location of arbitration. |
governing_arbitration_number_of_arbitrators | FLOAT | Number of arbitrators to hear the dispute. |
governing_severability | BOOLEAN | Whether invalid provisions are severed while the rest remains enforceable. |
governing_amendments_in_writing | BOOLEAN | Requires any changes to be in writing signed by both parties. |
governing_assignment_restrictions | BOOLEAN | Prohibits or limits transfer of NDA rights/obligations. |
governing_counterparts | BOOLEAN | Allows parties to sign separate copies. |
governing_entire_agreement | BOOLEAN | States NDA is the complete agreement superseding prior discussions. |
information_barriers_present | BOOLEAN | Whether NDA includes provisions for information barriers (ethical walls). |
information_barriers_business_units | ARRAY | Business units separated by information barriers (one per item). |
information_barriers_linked_to_exclusion | BOOLEAN | Whether information barrier provisions are linked to portfolio company exclusions. |
portfolio_company_exclusion_present | BOOLEAN | Whether NDA excludes specific affiliated entities from obligations. |
portfolio_company_exclusion_excluded_entities | ARRAY | Specific entities or entity categories excluded from NDA obligations (one per item). |
portfolio_company_exclusion_scope | VARCHAR | Breadth of exclusion. |
portfolio_company_exclusion_ethical_wall_required | BOOLEAN | Whether the exclusion is conditional on maintaining information barriers. |
specialized_residuals_clause | BOOLEAN | Permits recipient to use residual knowledge retained in unaided memory. |
specialized_right_to_compete | BOOLEAN | Confirms NDA does not restrict parties from competing businesses. |
specialized_no_reverse_engineering | BOOLEAN | Prohibits analyzing confidential materials to determine underlying technology. |
specialized_anti_commingling | BOOLEAN | Requires keeping confidential information separate from other materials. |
specialized_export_compliance | BOOLEAN | Acknowledges confidential information may be subject to export controls. |
specialized_attorney_client_privilege_preservation | BOOLEAN | Confirms sharing privileged materials does not waive attorney-client privilege. |
specialized_conflict_waiver_present | BOOLEAN | Whether NDA includes a waiver allowing counsel to represent adverse parties in future. |
specialized_conflict_waiver_firm | VARCHAR | Name of the law firm for which the conflict waiver is granted. |
specialized_competitive_activity_acknowledgment | BOOLEAN | Acknowledges PE firm may have investments in or pursue opportunities with competitors. |
specialized_non_circumvention | BOOLEAN | Whether NDA includes a non-circumvention clause preventing bypass to deal directly. |
specialized_dual_role_employee_provision | BOOLEAN | Provision protecting employees serving dual roles from breach liability. |
specialized_regulatory_examination_carveout | BOOLEAN | Carve-out permitting disclosure to regulators during examinations. |
specialized_electronic_data_room_precedence | BOOLEAN | Specifies data room records control over summaries or oral representations. |
specialized_multi_party_structure | BOOLEAN | Whether NDA governs confidentiality among three or more parties. |
specialized_ongoing_litigation_preservation | BOOLEAN | Carves out ongoing litigation from confidentiality obligations. |
specialized_board_approval_contingency | BOOLEAN | Makes NDA effectiveness contingent on board approval. |
specialized_most_favored_nation | BOOLEAN | Guarantees party receives most favorable terms given to any other bidder. |
specialized_retroactive_coverage | BOOLEAN | Extends confidentiality obligations to information shared before NDA execution. |
specialized_counterparty_representations | ARRAY | Specific representations one party requires from the other (one per item). |
additional_provisions | ARRAY | Catch-all for unusual provisions not captured by structured fields, Section 14 (one per item). |
original_filename | VARCHAR | Original filename of the uploaded document. |
submitted_at | TIMESTAMP_NTZ | When the document was submitted. |
page_count | NUMBER | Number of pages in the document. |
classified_document_type | VARCHAR | Document type from the pipeline classifier. |
created_at | TIMESTAMP_NTZ | When this record was extracted. |
attributes | VARIANT | Raw provenance envelope for every extracted field (confidence, reasoning, citations). Dereference a specific field via attributes:<path>:value. |
_pk | VARCHAR | Surrogate primary key. |
firm_id | VARCHAR | Management firm that owns the document. |
record_id | VARCHAR | Unique identifier for this extracted record. |
extraction_id | VARCHAR | Unique identifier for the extraction. |
document_id | VARCHAR | Unique identifier for the source document. |
last_refreshed_at | TIMESTAMP_LTZ | When dbt last refreshed this row. |
Document Ai Record
Generic, type-agnostic customer surface: one row per extracted entity/event, any document type, any record_type. attributes is left as raw JSON rather than flattened into named columns, so a new document type added to the extraction pipeline is queryable here immediately with zero new views. Bespoke per-(document_type, record_type) flat views (e.g. fundadmin_datashare_document_ai_spa_issuer) remain the right choice for strongly-typed BI/SQL access and should still be built on demand - this view covers everything else. attributes only contains fields an enrichment strategy chose to promote; raw_json is the full, unfiltered extraction output for the same extraction_id, for anything attributes doesn't cover. Pagination sort: firm_id, document_type, record_type, record_id
| Column | Type | Description |
|---|---|---|
record_type | VARCHAR | The specific extracted record type (e.g. 'company', 'investor', 'security', 'stock_purchase' for SPA). Values are defined per document type by the extraction pipeline's enrichment strategies. |
kind | VARCHAR | Whether this record is an entity or an event. |
document_type | VARCHAR | The document's classified type, as a lowercase snake_case code from document-ai's classification model (e.g. 'stock_purchase_agreement', 'side_letter', 'limited_partnership_agreement') - not the legacy human-readable format. |
attributes | VARIANT | The extracted field values for this record, as raw JSON. Shape varies by record_type. |
raw_json | VARIANT | Full, unfiltered extraction output for this record's extraction_id, landed directly from S3 independent of enrichment. NULL when raw_json hasn't landed yet for this extraction_id (e.g. pre-cutover history, or not yet ingested). |
bounding_boxes | VARIANT | Source-document bounding box locations for the extracted attributes. |
record_index | NUMBER | Ordinal position of this record within its extraction, for stable ordering. |
created_at | TIMESTAMP_NTZ | When this record was extracted. |
_pk | VARCHAR | Surrogate primary key generated from record_id |
firm_id | VARCHAR | Unique identifier of the management firm that owns the document |
record_id | VARCHAR | Unique identifier for this record |
extraction_id | VARCHAR | Unique identifier for the extraction this record came from |
document_id | VARCHAR | Unique identifier for the source 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 |
Document Attribute Carta Law Work Item
One row per document that has an AVA/CartaLaw work-item attached - the legal-department metadata (deal name, originator, department, billing entity) recorded when a document is routed into a CartaLaw work item. Join to fundadmin_datashare_document_ai_record on document_id to attach this work-item metadata to the document's extracted content. A document with no CartaLaw work item has no row here. Pagination sort: firm_id, document_id
| Column | Type | Description |
|---|---|---|
deal_name | VARCHAR | Name of the deal the work item was opened for. |
originator | VARCHAR | Name of the person who originated the work item. |
originator_email | VARCHAR | Email of the person who originated the work item. |
department | VARCHAR | Department the work item was billed or routed to. |
billing_entity | VARCHAR | Entity the work item's legal cost is billed against. |
work_item_attached_at | TIMESTAMP_NTZ | When the work-item metadata was first attached to this document. |
_pk | VARCHAR | Surrogate primary key generated from document_id. |
firm_id | VARCHAR | Unique identifier of the management firm that owns the document. |
document_id | VARCHAR | Unique identifier of the source 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 | NUMBER | Conversion ratio for the security, calculated from the round terms. Used to convert preferred shares to common-equivalent shares. |
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. 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 |
Firm Corporation Holdings
Holdings status for a firm's Carta cap-table portfolio companies, exposed to Data Explorer as a single is_inactive flag where is_inactive = all_holdings_canceled OR is_churned OR is_dnp_locked. Only the composed flag is published: is_churned and is_dnp_locked describe a portfolio company's commercial relationship with Carta and are not the holding firm's to see, and all_holdings_canceled is withheld for the same reason at one remove -- published beside is_inactive it would let a firm subtract the two and recover "churned or delinquent". Grain: one row per (firm_id, corporation_id). Pagination sort: firm_id, corporation_id
| Column | Type | Description |
|---|---|---|
is_inactive | BOOLEAN | True when the firm holds no active position in the corporation, or when the corporation has churned off Carta, or when it is locked for non-payment. Mirrors Investment.is_inactive on the Investment Dashboard (IEX-783/784). The three underlying signals are intentionally not exposed individually. |
_pk | VARCHAR | Surrogate primary key generated from firm_id and corporation_id. |
firm_id | VARCHAR | UUID of the fund_admin firm holding the position. Mapped from the source view's carta-web Organization id via base_fundadmin_datashare_firm_carta_to_uuid. Row access policy column. |
corporation_id | VARCHAR | UUID of the cartaweb corporation held. Row access policy column. |
last_refreshed_at | TIMESTAMP_LTZ | When this model last rebuilt the row. |
Firm Entity Archived Status
Per-firm Archive/Unarchive status for investments-ledger rows, exposed to Data Explorer. A firm archives a portfolio entity to hide it from the default ledger view without deleting anything, so this is the firm's own annotation about its own ledger rather than the entity's data. The source is polymorphic on entity_type; the two id shapes are split into corporation_id and general_ledger_issuer_id, with exactly one populated per row, because the row access policy branches on entity_type and each branch joins a differently-keyed permissions table. Grain: one row per (firm_id, entity_type, entity id). Pagination sort: firm_id, entity_type, corporation_id, general_ledger_issuer_id
| Column | Type | Description |
|---|---|---|
archived | BOOLEAN | True when the firm has archived this entity on its investments ledger. Absence of a row also means unarchived -- unarchiving sets this to false rather than deleting the row, so an explicit false means the entity was archived and then restored. Carries a not_null test rather than a coalesce: carta-web enforces NOT NULL on the column and only Fivetran's schema inference declares it nullable, so a NULL would be a replication problem worth failing on rather than papering over. |
entity_type | VARCHAR | Which kind of entity this row refers to, and therefore which of corporation_id / general_ledger_issuer_id is populated. 'corporation' covers every Corporation-backed ledger row -- Carta companies, paper companies, and Carta funds/SPVs. 'gl_issuer' covers entities a firm knows only through the general ledger: GL-only companies, third-party and externally-managed funds, and paper funds. An entity with both identities is stored as 'corporation', so the values are mutually exclusive per entity. This is the discriminator the row access policy branches on. |
_pk | VARCHAR | Surrogate primary key generated from firm_id, entity_type, corporation_id and general_ledger_issuer_id. |
firm_id | VARCHAR | UUID of the fund_admin firm that archived the entity. Mapped from the base model's carta-web Organization id via base_fundadmin_datashare_firm_carta_to_uuid. Row access policy column. |
corporation_id | VARCHAR | UUID of the archived cartaweb corporation, translated from the source's stringified int PK. NULL on 'gl_issuer' rows. Row access policy column for the corporation branch. |
general_ledger_issuer_id | VARCHAR | UUID of the archived fund_admin general-ledger issuer, passed through from the source unchanged. NULL on 'corporation' rows. Row access policy column for the GL branch. |
archive_status_first_set_at | TIMESTAMP_NTZ | When the firm first toggled archive status for this entity. |
archive_status_last_changed_at | TIMESTAMP_NTZ | When the firm last toggled archive status for this entity. The source row is upserted in place on each toggle, so this tracks the most recent change rather than a pipeline refresh -- see last_refreshed_at for pipeline freshness. |
last_refreshed_at | TIMESTAMP_LTZ | When this model last rebuilt the row. |
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 | VARCHAR | 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 |
legal_name | VARCHAR | Legal name of the master portfolio company (corporation). For pro forma rows this is the master corporation's name, not the pro forma version name. |
pro_forma_name | VARCHAR | Legal name of the pro forma entity (the pro forma version name). NULL when the row is not a pro forma. |
is_pro_forma | BOOLEAN | TRUE when the ownership row comes from a pro forma cap table (a corporation with pro_forma_of_corporation_id set). |
capitalization_table_id | VARCHAR | UUID of the row's actual cap table corporation: the pro forma corporation for pro forma rows, the master corporation otherwise. Matches the Capitalization table id in the public API. The row access policy grants access when the firm holds cap table permissions on either this corporation or the master (corporation_id), mirroring carta-web pro-forma-or-master permission semantics. |
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_legal_ownership_pct | NUMBER | Fund's structural legal ownership percentage of the portfolio company, computed via a recursive look-through of the LLC cap table at pvm.effective_date (cutoff = effective_date + 1 day). Each edge weight = holder's issued units / total issued units for the issuer at the cutoff date (sourced from INTEREST_QUANTITY_BY_DATE, not from SWOA waterfall participation units — scenario-independent). The final value is the product of all edge weights from the portfolio company root down to the fund entity, summed across all ownership paths. Only populated for SCENARIO_MODELING rows where target_kind is LLC_ISSUER or LLC_ACCOUNT; NULL for PORTFOLIO_VALUATION and for CORPORATION / CORPORATION_ENTITY_GROUP targets. |
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 | VARCHAR | 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 | VARCHAR | 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. |
fund_legal_ownership_pct | NUMBER | Fund's structural legal ownership of the portfolio company (0..1), scenario-independent: the product of cap-table ownership percentages along each chain from the portfolio company down to the fund at the waterfall date, summed across paths. Populated for SCENARIO_MODELING rows on LLC_ISSUER / LLC_ACCOUNT (llc-core cap table) and CORPORATION_DEAL_GROUP / CORPORATION_ENTITY_GROUP (cartaweb cap-table snapshot frozen by the waterfall execution; outstanding-share basis) targets. Empty for PORTFOLIO_VALUATION and CORPORATION targets. |
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. |
Investment Tags
Investment tags per portfolio company, one row per (firm, portfolio company). Carries the same tags and tags_json columns as AGGREGATE_INVESTMENTS, so a query can COALESCE across the two. Independent of the general ledger: AGGREGATE_INVESTMENTS only carries tags on rows its GL-driven spine produces, so a firm that tags portfolio companies without running its books on Carta sees no tags there. This model is built from the tag tables directly, so those firms get their tags. Firm-scoped with no fund attribution — a tag is assigned to a portfolio company for the whole firm, not per fund. Join FUND_CORPORATION_OWNERSHIP on corporation_id for cap-table-derived fund attribution, or AGGREGATE_INVESTMENTS on (firm_id, general_ledger_issuer_id) for GL-based fund attribution. To read one category, index tags_json by the category name: TAGS_JSON:"Sector"[0]::varchar for its value, or ARRAY_CONTAINS('AgTech'::variant, TAGS_JSON:"Sector") to filter. Category names are defined by each firm, so they vary by firm. To get one row per tag, LATERAL FLATTEN over tags_json. Pagination sort: issuer_name, _pk
| Column | Type | Description |
|---|---|---|
issuer_name | VARCHAR | Name of the tagged portfolio company / issuer, using the firm's own issuer-name override when one is set. Common aliases — "company name", "portfolio company name". |
tags | VARCHAR | Comma-delimited list of distinct tag names assigned to this portfolio company by this firm, sorted alphabetically. Identical in shape and meaning to AGGREGATE_INVESTMENTS.TAGS. |
tags_json | OBJECT | JSON object mapping each tag category name to a sorted array of the distinct tag names assigned in that category. Identical in shape and meaning to AGGREGATE_INVESTMENTS.TAGS_JSON. |
tag_count | NUMBER | Number of tags assigned to this portfolio company by this firm. |
tag_category_count | NUMBER | Number of distinct tag categories represented in this company's tags. |
first_tag_assigned_at | TIMESTAMP_NTZ | Timestamp when the earliest of this company's current tags was assigned. |
latest_tag_assigned_at | TIMESTAMP_NTZ | Timestamp when the most recent of this company's current tags was assigned. |
_pk | VARCHAR | Surrogate key over (firm_id, general_ledger_issuer_id). |
firm_id | VARCHAR | Unique identifier (UUID) for the investment firm that owns the tags. Used to enforce row-based access policies. |
corporation_id | VARCHAR | Unique identifier (UUID) for the Carta corporation linked to this portfolio company, when one is linked. Used to enforce row-based access policies and to join cap-table models — the main path to fund-level data for firms with no GL. Joins FUND_CORPORATION_OWNERSHIP.CORPORATION_ID directly, but note CORPORATION_BASIC_INFO_V2.CORPORATION_ID is the integer PK there — join that table on its CORPORATION_UUID instead. Where a portfolio company is linked to more than one corporation (holdco/opco pairs, mergers, renames), the most recently updated link is used, matching CORPORATION_BASIC_INFO_V2. |
general_ledger_issuer_id | VARCHAR | Unique identifier (UUID) for the issuer. Joins AGGREGATE_INVESTMENTS on (firm_id, general_ledger_issuer_id). |
entity_link_id | VARCHAR | Unique identifier (UUID) for the entity link carrying the tag assignments. Joins CORPORATION_ENTITY_LINKS_V2 and AGGREGATE_INVESTMENTS on entity_link_id. |
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. |
journal_entry_gluuid | VARCHAR | Stable GL UUID for the journal entry, used in product deep links (booking-interface/view/{gluuid}). Unlike journal_entry_id, this UUID persists when a journal is deleted and recreated during an edit — it tracks the logical journal entry across modifications. |
sub_account_type | VARCHAR | The code used to identify the type of the sub-account related to the journal entry. |
sub_account_name | VARCHAR | The name of the sub-account related to the journal entry. |
Lender Commitment
One row per (structure, lender) — what each lender has committed to a facility today. committed_amount is the net commitment: commitment periods in force today, plus the signed effect of every executed assignment and participation — the same quantity loanops_datashare_structures sums into the structure's committed_amount. The per-structure total ties on 957 of 961 structures, not all of them. Four differ, by [$]1,249,701.56 in total. Six lenders across those four have transferred away more than they hold and net negative; the structure total counts them, this model filters them out. Each gap equals its filtered rows exactly. Nothing asserts this tie — re-measure it rather than assuming it. A commitment is not deployable capacity. A facility whose draw period has closed still carries its commitment, and that money can no longer be drawn. Compare draw_period_end_date to today before reading committed_amount as capacity. Grain: a structure can hold several commitment periods for one lender over time. Periods in force today are netted into one row per lender, matching how loan-ops' own Commitment report works. start_date and end_date describe that period where exactly one is in force, and are null where a lender's position came via transfer or spans more than one period. Row-access policies are attached in ds-airflow (Data Explorer refresh DAG), not in dbt. This model emits no last_refreshed_at. current_timestamp in a dynamic table's SELECT list forces a full rewrite on every refresh, so the customer-facing secure view supplies the column instead, from DYNAMIC_TABLE_REFRESH_STATUS — a truer value, since it reports the real refresh time even when a refresh fails. The view adds it back in production only, so the column is absent in TEST and PREPROD, matching every fundadmin_datashare table. Pagination sort: loan_name, structure_name, lender_name, _pk
| Column | Type | Description |
|---|---|---|
lender_name | VARCHAR | Lender holding the commitment. |
structure_name | VARCHAR | Facility the commitment is against. Not unique within a firm — several facilities may share a name, so join on structure_id. |
loan_name | VARCHAR | Loan the facility belongs to. |
borrower_name | VARCHAR | Borrower on the loan. |
committed_amount | NUMBER | Net commitment for this lender on this facility today — commitment periods in force, plus assignments and participations moved in or out. Sums per structure to the structure's committed_amount. |
currency_code | VARCHAR | Currency of the commitment, from the commitment period. Falls back to the facility's currency for a lender who holds purely by transfer, and also where a lender's in-force periods carry no currency or disagree on one — every position on a facility is denominated in the facility's currency, so that fallback is the correct answer rather than a guess. No lender currently holds mixed-currency periods on one facility. |
structure_type | VARCHAR | Facility type — TermLoan, DelayedDrawTermLoan or Revolver. |
lending_firm_name | VARCHAR | Lending firm that services the loan. |
start_date | DATE | Start of the commitment period in force. Null when the lender holds across more than one period or acquired the position by transfer. Most periods carry no start date at all — roughly one in ten does. |
end_date | DATE | End of the commitment period in force, where one is set. An explicit end date exists on the record — the period in force is not inferred from the next start date. Null on an open-ended commitment, which is the common case. |
draw_period_end_date | DATE | Last day a draw may be made against the facility. Past this date the commitment remains but cannot be drawn. Null when no draw period is set. |
created_at | TIMESTAMP_NTZ | When the in-force commitment period was created. Null for transfer-acquired positions. |
updated_at | TIMESTAMP_NTZ | When it was last changed. Null for transfer-acquired positions. |
as_of_date | DATE | Date this commitment snapshot represents. |
is_active | BOOLEAN | Whether the parent loan is active. |
_pk | VARCHAR | Surrogate key over (structure_id, lender_id) — the grain. |
lending_firm_id | VARCHAR | Lending firm id from the loan. Used by the row-access policy in ds-airflow. |
lender_id | VARCHAR | Lender company id. |
structure_id | VARCHAR | Facility the commitment is against. |
loan_id | VARCHAR | Loan the facility belongs to. |
borrower_id | VARCHAR | Borrower company id. |
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. |
Management Fee Schedules
Management fee schedule: the contractual fee terms configured on a fund in Fund Properties > Management Fee - rate, calculation base, period boundaries, and payment frequency. This is the SCHEDULE, not fees already charged or projected. For posted fee actuals see fundadmin_datashare_aggregate_fund_metrics (fund-level total_mgmt_fees) or fundadmin_datashare_partner_data (per-LP total_mgmt_fees). This table does not reproduce the FA budgeting tool's calculated/projected fee numbers either - that flow runs a full fee-calculation engine over these schedule rows (waivers, custom calculation-base scripts, offsets, catch-ups) that this table does not model. One row per fee period per fund. A fund's schedule commonly has multiple periods (e.g. "Investment Period", "Step Down 1", "Step Down 2"), each with its own rate/basis, ordered by period_order. Exposes the schedule attached to each fund's most recent LPA document only - mirrors stg_fundadmin_datashare_fund_properties's fund_terms resolution. fee_rate is a decimal fraction (0.02 = 2%), not a 0-100 percentage - confirmed against a live query (2026-08-19) and consistent with the scale documented on fundadmin_datashare_profit_allocation_waterfall_config.carry_rate. Pagination sort: fund_name, period_order, _pk
| Column | Type | Description |
|---|---|---|
fund_name | VARCHAR | Name of the fund the management fee schedule belongs to. |
period_name | VARCHAR | Name of the fee period as configured on the fund (e.g. "Investment Period", "Step Down 1"). Free text, not an enum. |
start_date | DATE | Date this fee period starts. Nullable - a fund can leave the first period's start date open. |
fee_rate | NUMBER | Annual management fee rate for this period, as entered on the fund. A decimal fraction (0.02 = 2%, not 2 = 2%) - confirmed against a live query (2026-08-19); matches carry_rate's documented scale on fundadmin_datashare_profit_allocation_waterfall_config. |
calculation_base | VARCHAR | The basis the fee rate is applied to (e.g. committed capital, invested capital, NAV, cost basis, custom formula). |
minimum_fee_amount | NUMBER | Minimum fee amount owed for this period, if configured, in fee_currency. Nullable. |
fixed_fee_amount | NUMBER | Fixed fee amount for this period, if configured (overrides a rate-based calculation), in fee_currency. Nullable. |
fee_currency | VARCHAR | Reporting currency minimum_fee_amount and fixed_fee_amount are denominated in - the fund's own currency (stg_fundadmin_datashare_fund_properties.reporting_currency), not necessarily the same currency as the fund's management company. |
frequency | VARCHAR | Payment periodicity for the fee (e.g. Quarterly, Annually), from the fund's management fee details. Null if fee details are not yet configured for this LPA. |
waived | BOOLEAN | Whether management fees are waived for this fund, from the fund's management fee details. Null if fee details are not yet configured for this LPA. |
end_date | DATE | Date this fee period ends. Null on the fund's final/open-ended period. |
period_order | NUMBER | Sort order for this fund's fee periods, as configured on the fund (start_date is frequently null, so this - not start_date - is the intended ordering key). |
uses_custom_calculation_base | BOOLEAN | True if this period's fee is computed by a custom calculation-base script (script_engine) rather than a built-in basis. |
uses_custom_catch_up | BOOLEAN | True if this period's fee has a custom catch-up script (script_engine) configured. |
_pk | VARCHAR | Surrogate primary key generated from fund_id and management_fee_date_id. |
firm_id | VARCHAR | UUID of the management firm. For firm-level rollups and joins; the row access policy is keyed on firm_id + fund_id, not firm_id alone. |
fund_id | VARCHAR | UUID of the fund (fund_uuid). Join key for the row access policy. |
management_fee_date_id | NUMBER | Raw numeric id of the fee period (fund_properties_managementfeedate.id). Non-essential id, kept for debugging/traceability back to the source row. |
lpa_id | NUMBER | Raw numeric id of the fund's most recent LPA document that this schedule is attached to. Non-essential id. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp when this row was last refreshed. |
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 Contacts
One row per Fund Admin partner (LP) contact, enriched for CRM sync. Sourced from capital_account_partnercontact and joined to the partner, fund, and firm it belongs to. Adds three things the raw contacts export lacks: (1) contact_created_at / contact_updated_at — lets a downstream CRM run a weekly delta instead of reconciling the whole roster every refresh. (2) Nine content-view permissions from capital_account_partnercontactpermission (capital call notices, distribution notices, wire instructions, and the document categories). NULL permission rows are surfaced as FALSE. (3) has_carta_account / has_logged_in — whether the contact has a Carta account (auth_user link) and has ever signed in, so consumers can tell who actually has portal access. Grain: one row per partner_contact_id (non-deleted contacts only). Pagination sort: fund_name, partner_name, contact_email, _pk
| Column | Type | Description |
|---|---|---|
fund_name | VARCHAR | Name of the fund the contact's partner belongs to. |
partner_name | VARCHAR | Legal name of the LP entity or individual the contact represents. |
contact_email | VARCHAR | Email address of the contact. |
contact_full_name | VARCHAR | Full name of the linked Carta user (auth_user first + last name). NULL when the contact has no Carta account. |
contact_created_at | TIMESTAMP_NTZ | Timestamp when the partner contact record was created. |
contact_updated_at | TIMESTAMP_NTZ | Timestamp when the partner contact record was last updated. Use as the delta cursor for incremental CRM syncs. |
account_created_at | TIMESTAMP_NTZ | Timestamp when the linked Carta account was created (auth_user.date_joined). NULL when the contact has no Carta account. |
last_login_at | TIMESTAMP_NTZ | Timestamp of the contact's most recent Carta login. NULL when they have never logged in (or have no account). |
is_primary_contact | BOOLEAN | True when this is the primary contact for the partner. |
has_carta_account | BOOLEAN | True when the contact is linked to a Carta account (auth_user). False means the contact has never created a Carta account and has no portal access. |
has_logged_in | BOOLEAN | True when the linked Carta account has at least one recorded login. |
account_is_active | BOOLEAN | True when the linked Carta account is active. False when absent or inactive. |
can_view_capital_call_notices | BOOLEAN | True when the contact is permissioned to view/receive capital call notices. |
can_view_distribution_notices | BOOLEAN | True when the contact is permissioned to view/receive distribution notices. |
can_view_wire_instructions | BOOLEAN | True when the contact is permissioned to view wire instructions. |
can_view_annual_and_quarterly_reports | BOOLEAN | True when the contact is permissioned to view annual and quarterly reports. |
can_view_capital_account_statements | BOOLEAN | True when the contact is permissioned to view capital account statements. |
can_view_tax_documents | BOOLEAN | True when the contact is permissioned to view tax documents. |
can_view_legal_documents | BOOLEAN | True when the contact is permissioned to view legal documents. |
can_view_general_documents | BOOLEAN | True when the contact is permissioned to view general documents. |
can_view_annual_meeting_documents | BOOLEAN | True when the contact is permissioned to view annual meeting documents. |
_pk | VARCHAR | Surrogate primary key derived from partner_contact_id. |
firm_id | VARCHAR | UUID FK to the firm that owns the fund — used by the row access policy join. |
fund_id | VARCHAR | UUID of the fund (fund_admin_fund.uuid) — used by the row access policy join. |
partner_id | NUMBER | Integer FK to capital_account_partner. |
partner_contact_id | VARCHAR | Integer FK to capital_account_partnercontact — the contact grain. |
user_id | NUMBER | Integer FK to auth_user for the linked Carta account. NULL when the contact has no Carta account. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp when this row was last materialized. |
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_interest_group_name | VARCHAR | Name of the partner-interest-group (the LP entity's name within this fund). A PartnerInterestGroup represents a single LP's commitment to a fund and is the parent of one or more partner-class partner (interest) rows. |
partner_interest_group_id | VARCHAR | Unique identifier (UUID) of the partner-interest-group — the fund-scoped LP-commitment grain (one entity in one fund, parent of one or more partner-class partner rows). Join to fundadmin_datashare_partner_address_changes_audit.partner_interest_group_id. |
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.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. |
amount_flat | NUMBER | Flat dollar amount of the premium. Populated when amount_type is Flat; null otherwise, by design. |
Profit Allocation Waterfall Config
Fund profit-allocation waterfall configuration for external scenario modeling. The profit-allocation waterfall determines how profit is allocated to partners and allocation buckets; it is the canonical basis for the distribution-modelling waterfall. One row per waterfall config. Sourced from the legacy general_ledger waterfall system (the store the profit-allocation-waterfall-config CLI reads), normalized to expose carry rate, preferred return, and GP catchup per config. Filtered to funds whose waterfall is automated (fundwaterfallsettings automation_status = 'AUTOMATED'), the current source of truth for whether a fund's waterfall is set up. Carry rate is the last carry-bearing (INFINITY) operation's gp_take_percentage. Rates are decimals (0.20 = 20%). Tiered-waterfall configs (>1 rate at different performance tiers) are flagged; the exposed rate uses MAX() across tiers. A fund can have multiple configs (e.g. one per partner class, plus side-letter variants); each is its own row. recommended_config_rank gives an ADVISORY default ordering (1 = suggested) for apps that need a single config — the app decides, the table only recommends. Pagination sort: fund_name, recommended_config_rank, config_name, config_id
| Column | Type | Description |
|---|---|---|
fund_name | VARCHAR | Name of the fund the waterfall config belongs to. |
config_name | VARCHAR | Name of the waterfall configuration (e.g. "80/20 Waterfall"). |
carry_rate | NUMBER | GP carry percentage as a decimal (0.20 = 20%). Extracted from the last carry-bearing operation (calculation_type = 'INFINITY'). |
preferred_return | NUMBER | Hurdle rate LPs must clear before the GP earns carry, as a decimal (0.08 = 8%). Null when the config has no preferred return. From COMPOUNDING_ANNUAL_RETURN / SIMPLE_ANNUAL_RETURN operations. |
gp_catchup_rate | NUMBER | GP profit share during catchup as a decimal (1.00 = 100%). Null when the config has no GP catchup. From PERCENTAGE_OF_PROFITS operations. |
gp_catchup_limit | NUMBER | Target GP allocation the catchup runs to, as a decimal (0.20 = 20%). Null when the config has no GP catchup. |
config_description | VARCHAR | Free-text description of the waterfall config, as entered in-app. |
configs_per_fund | NUMBER | Count of non-deleted waterfall configs on the fund. |
step_count | NUMBER | Number of distinct steps in this waterfall config (a proxy for waterfall complexity). Used to compute recommended_config_rank; exposed for transparency. |
recommended_config_rank | NUMBER | ADVISORY ranking (1 = top suggestion) for which config to default to when a fund has multiple configs. This is a RECOMMENDATION ONLY — the consuming app decides which config to use; the table does not designate an authoritative "primary" config. It is NOT a business-blessed selection and does not account for partner-class assignment or side-letter intent. Heuristic order, favoring the simplest standard carry+pref config: (1) fewest steps, (2) then configs that have a carry rate, (3) tie-break on earliest created_at then config_id. For single-config funds (~88% of target funds) this is always 1. When a fund has several configs (e.g. per partner class, or side-letter variants), apps that just need one carry/pref to pre-populate can filter recommended_config_rank = 1; apps that need the right per-partner config should select from the full list rather than trust this rank. |
created_at | TIMESTAMP_NTZ | When the waterfall config was created. |
updated_at | TIMESTAMP_NTZ | When the waterfall config was last updated. |
has_multiple_configs | BOOLEAN | True if the fund has more than one waterfall config (e.g. per partner class). |
has_tiered_carry | BOOLEAN | True if the config has more than one distinct carry rate across tiers. |
has_tiered_preferred_return | BOOLEAN | True if the config has more than one distinct preferred return across tiers. |
has_tiered_gp_catchup | BOOLEAN | True if the config has more than one distinct GP catchup rate or limit across tiers. |
is_automated | BOOLEAN | True if the fund's waterfall is automated (general_ledger_fundwaterfallsettings automation_status = 'AUTOMATED'). This is the source of truth for whether a fund's waterfall is set up; all rows in this table are automated. |
_pk | VARCHAR | Surrogate primary key generated from config_id. |
firm_id | VARCHAR | UUID of the management firm. Foreign key for the row access policy. |
fund_id | VARCHAR | UUID of the fund. Foreign key for the row access policy and joins. |
config_id | VARCHAR | UUID of the waterfall configuration (source PK). |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp when this row 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 | NUMBER | Multiple on invested capital (MOIC). Calculated as total value / total cost |
tvpi | NUMBER | Total value to paid-in (TVPI) capital ratio |
dpi | NUMBER | Distributions to paid-in (DPI) capital ratio |
lp_dpi | NUMBER | LP-only distributions to paid-in (DPI) capital ratio |
lp_tvpi | NUMBER | 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 | NUMBER | 5th percentile DPI in cohort |
dpi_10 | NUMBER | 10th percentile DPI in cohort |
dpi_25 | NUMBER | 25th percentile DPI in cohort |
dpi_50 | NUMBER | Median DPI in cohort |
dpi_75 | NUMBER | 75th percentile DPI in cohort |
dpi_90 | NUMBER | 90th percentile DPI in cohort |
dpi_95 | NUMBER | 95th percentile DPI in cohort |
tvpi_5 | NUMBER | 5th percentile TVPI in cohort |
tvpi_10 | NUMBER | 10th percentile TVPI in cohort |
tvpi_25 | NUMBER | 25th percentile TVPI in cohort |
tvpi_50 | NUMBER | Median TVPI in cohort |
tvpi_75 | NUMBER | 75th percentile TVPI in cohort |
tvpi_90 | NUMBER | 90th percentile TVPI in cohort |
tvpi_95 | NUMBER | 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 | NUMBER | 5th percentile MOIC in cohort |
moic_10 | NUMBER | 10th percentile MOIC in cohort |
moic_25 | NUMBER | 25th percentile MOIC in cohort |
moic_50 | NUMBER | Median MOIC in cohort |
moic_75 | NUMBER | 75th percentile MOIC in cohort |
moic_90 | NUMBER | 90th percentile MOIC in cohort |
moic_95 | NUMBER | 95th percentile MOIC in cohort |
lp_dpi_5 | NUMBER | 5th percentile LP DPI in cohort |
lp_dpi_10 | NUMBER | 10th percentile LP DPI in cohort |
lp_dpi_25 | NUMBER | 25th percentile LP DPI in cohort |
lp_dpi_50 | NUMBER | Median LP DPI in cohort |
lp_dpi_75 | NUMBER | 75th percentile LP DPI in cohort |
lp_dpi_90 | NUMBER | 90th percentile LP DPI in cohort |
lp_dpi_95 | NUMBER | 95th percentile LP DPI in cohort |
lp_tvpi_5 | NUMBER | 5th percentile LP TVPI in cohort |
lp_tvpi_10 | NUMBER | 10th percentile LP TVPI in cohort |
lp_tvpi_25 | NUMBER | 25th percentile LP TVPI in cohort |
lp_tvpi_50 | NUMBER | Median LP TVPI in cohort |
lp_tvpi_75 | NUMBER | 75th percentile LP TVPI in cohort |
lp_tvpi_90 | NUMBER | 90th percentile LP TVPI in cohort |
lp_tvpi_95 | NUMBER | 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 |
deal_irr | FLOAT | Gross deal-level internal rate of return (IRR) for the fund, before fees and carry |
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. |
Underlying Investments
Current-state read of fundadmin_datashare_underlying_investments_history (next_effective_date IS NULL) -- one row per (parent fund, parent fund-investment issuer, underlying holding). See the history model's description for the full semantics: single-hop only, both the Carta-linked and paper/LPPA branches, firm_id/fund_uuid always the PARENT fund's identity, metrics prorated by ownership_fraction, the FIXED_DATE sharing-window freeze, and the paper-branch simplification notes. Pagination sort: fund_name, parent_issuer_name, underlying_issuer_name, asset_name
| Column | Type | Description |
|---|---|---|
fund_name | VARCHAR | Name of the PARENT (fund-of-funds) fund. |
parent_issuer_name | VARCHAR | Name of the parent's own fund-investment issuer row that this look-through decision is for. |
underlying_fund_name | VARCHAR | Name of the underlying fund whose holding this row describes. |
underlying_issuer_name | VARCHAR | Name of the underlying holding's issuer, as it appears on the underlying fund's own SOI. |
asset_name | VARCHAR | Specific name or description of the underlying investment asset. |
source | VARCHAR | CARTA (underlying fund is itself Carta-administered) or LPPA (underlying position is a staff-entered PaperFund). |
access_reason | VARCHAR | On CARTA rows, always same_firm or shared -- the only two values that grant Carta access. On LPPA rows, any of same_firm, shared, not_shared, date_restricted, or not_linked -- a PaperFund's authorization does not depend on this value; see the source column and renders_via on the access model. |
sharing_mode | VARCHAR | FIXED_DATE when sharing_date binds, REALTIME otherwise; null for same_firm rows, and always null for LPPA rows (a PaperFund carries no sharing window). |
sharing_date | DATE | Set only when the SHARED window actually clamps. Null for same_firm rows, unclamped real-time sharing, and always for LPPA rows. |
ownership_fraction | NUMBER | The parent's current ownership fraction in the underlying fund. Every row of one (parent fund, parent issuer, underlying fund) carries the same value. NULL means no proration -- GL metrics are passed through unprorated, not zeroed -- and on a CARTA row happens only when the pair has no fraction series at all (a same-firm position held through no Partner row). |
is_prorated | BOOLEAN | Whether this row's metrics were multiplied by an ownership fraction. FALSE on a CARTA row means the parent's share could not be derived and the underlying fund's full position is shown, matching the app. FALSE on an LPPA row means the paper fund's LP ownership percentage could not be resolved, in which case the metric columns are NULL rather than unprorated. |
firm_investments_lookthrough_enabled | BOOLEAN | Descriptive only, NOT a gate on this table -- the parent firm's "firm investments soi lookthrough" configuration, which governs a different surface. |
currency_code | VARCHAR | Currency denomination of the underlying investment. |
asset_class_type | VARCHAR | Classification of the underlying investment (e.g. PREFERRED_EQUITY, COMMON_EQUITY, FUND_INVESTMENT, ...). NULL for LPPA rows. |
count_remaining_shares | NUMBER | Number of remaining shares of the underlying investment, prorated by ownership_fraction. |
total_cost_basis | NUMBER | Remaining cost basis of the underlying investment, prorated by ownership_fraction. |
total_unrealized_gain_loss | NUMBER | Unrealized gain/loss on the underlying investment, prorated by ownership_fraction. |
remaining_value | NUMBER | total_cost_basis + total_unrealized_gain_loss (already prorated). |
remaining_value_per_share | NUMBER | remaining_value / count_remaining_shares. |
_pk | VARCHAR | Primary key, matching this row's _pk on the history table. |
firm_id | VARCHAR | UUID of the PARENT (fund-of-funds) firm. The row access policy authorization key -- never the underlying fund's firm. |
fund_uuid | VARCHAR | UUID of the PARENT (fund-of-funds) fund. The row access policy authorization key. |
parent_issuer_id | VARCHAR | FK to general_ledger_issuer.id -- the parent's own fund-investment row. |
underlying_fund_uuid | VARCHAR | UUID of the underlying fund. In scope for the API payload (unlike the underlying firm, which never appears anywhere in this table). NULL for LPPA rows. |
underlying_issuer_id | VARCHAR | FK to general_ledger_issuer.id for a CARTA row's underlying holding, or PaperFundHoldingIssuer.id for an LPPA row's holding issuer. |
underlying_fund_investment_key | VARCHAR | fund_investment_key of the underlying holding on fundadmin_datashare_aggregate_investments_history. NULL for LPPA rows. |
general_ledger_asset_id | VARCHAR | FK to the underlying holding's general ledger asset. NULL for LPPA rows. |
paper_fund_id | VARCHAR | FK to the PaperFund this row's holding belongs to. NULL for CARTA rows. |
paper_fund_holding_id | VARCHAR | FK to the specific PaperFundHolding this row describes. NULL for CARTA rows. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
Underlying Investments History
Fund-of-funds underlying-SOI look-through, time series. One row per (parent fund, parent fund-investment issuer, underlying holding, effective_date) -- single hop only, no recursion of the app's MAX_LOOK_THROUGH_DEPTH = 4 chains. Every row already passed the fundadmin_datashare_underlying_fund_access gate (is_published, via either its carta or paper branch); row existence is the exposure decision. Two branches, discriminated by source: 'CARTA' (the underlying fund is itself Carta-administered) and 'LPPA' (the underlying position is a staff-entered PaperFund). LPPA is used whenever a PaperFund alternative exists and the Carta arm isn't actively linked -- not only when the Carta-linked fund is churned, but also when it is unlinked entirely, unshared, or date-restricted. An issuer that separately links to a Carta corp/LLC stays on the Carta arm while that arm is usable, but the link does not rescue an arm that is churned or date-restricted (see renders_via on the access model). A PaperFund is authorized by belonging to the parent fund itself (PaperFund.investing_fund_id), not by the Carta sharing rules -- so LPPA rows carry no sharing window (sharing_mode/sharing_date are always null) and their effective_date is never clamped. LPPA rows have no underlying_fund_uuid / underlying_fund_investment_key / general_ledger_asset_id / asset_class_type (NULL) and instead carry paper_fund_id / paper_fund_holding_id; CARTA rows are the reverse. See the paper-branch simplification notes below for lp_ownership_pct. firm_id/fund_uuid are always the PARENT (fund-of-funds) fund's identity, never the underlying fund's or firm's -- the eventual row access policy authorizes on the same fund a viewer already holds view_investments on. No column identifies the underlying firm anywhere in this table. GL metrics (count_remaining_shares, total_cost_basis, total_unrealized_gain_loss, and remaining_value/remaining_value_per_share derived from them) are prorated by the parent's ownership_fraction; NULL means no proration (multiply by 1), not proration to zero. On CARTA rows the fraction is resolved by intersecting each holding's SCD window with the fraction's own validity window, so a row's fraction is the one in force across the whole of that row's window and every holding of one underlying fund is weighted identically at any given instant. A holding version spanning a commitment change is therefore split into one row per fraction, and the current-state row always carries the newest fraction regardless of when the underlying fund last revalued the holding. On CARTA rows only, a FIXED_DATE sharing window (sharing_mode) clamps rows to effective_date <= sharing_date and freezes next_effective_date to NULL on the last surviving row, so the cutoff snapshot reads as the LP's current view -- the SQL equivalent of passing as_of_date = access.sharing_date to the underlying GL fetch. LPPA rows are never clamped this way. Sharing config (lp_sharing_to_date, soi_view) and the enablement gate are read at their current value, not temporally replicated: this table means "visible under today's sharing and configuration state", and a revoked share or disabled configuration retracts historical rows on the next refresh (~10 minute target_lag in prod), not just future ones. Churn is the exception to that: it is the one routing input the app evaluates against the reporting date (churn_date < as_of_date), so a pair whose underlying Carta fund has since stopped being administered appears on BOTH branches -- CARTA rows up to and including the access model's carta_arm_end_date, LPPA rows from the day after -- rather than having today's answer back-projected across its whole history. Exactly one arm is in effect at any as-of date and only the LPPA arm is current. Unlike the FIXED_DATE freeze this is a handover, so the CARTA arm's last row closes instead of staying open; that is what keeps the two arms from both reading as current state and double-counting the position. No underlying valuation dates (e.g. latest_fmv_effective_date) are exposed -- the product's scrub_valuation_dates() strips them and this table matches that. Paper/LPPA branch known simplifications -- numeric drift is expected; measure on real firms before treating these as exact (see the architecture doc's Verification section): (1) lp_ownership_pct resolves only levels 2-3 of PaperFundSOIMetricsService's 3-level fallback chain (document-sourced lp_ownership_pct, then document-sourced committed / PaperFund.fund_size) -- level 1 (GL remaining value / the paper fund's own reported NAV) is not reproduced, so a paper fund relying solely on that level gets a NULL ownership_fraction (no proration) here instead of the app's derived percentage; (2) the committed fallback uses only the document-sourced COMMITTED metric, not PaperFundCommitmentService's own fallback; (3) every distinct PaperFundDocument.as_of_date is treated as an SCD cutoff and every holding/metric is forward-filled to it, approximating a time series from a service that only ever resolves one as-of date at a time. Pagination sort: fund_name, parent_issuer_name, underlying_issuer_name, asset_name, effective_date DESC
| Column | Type | Description |
|---|---|---|
fund_name | VARCHAR | Name of the PARENT (fund-of-funds) fund. |
parent_issuer_name | VARCHAR | Name of the parent's own fund-investment issuer row that this look-through decision is for. |
underlying_fund_name | VARCHAR | Name of the underlying fund whose holding this row describes. |
underlying_issuer_name | VARCHAR | Name of the underlying holding's issuer, as it appears on the underlying fund's own SOI. |
asset_name | VARCHAR | Specific name or description of the underlying investment asset. |
effective_date | DATE | Effective date of the underlying holding's status, after sharing-window clamping. Used with next_effective_date to get the status at a point in time. |
next_effective_date | DATE | Next effective date, or NULL for the current row -- including a FIXED_DATE fund's frozen cutoff snapshot. |
is_current_state | BOOLEAN | next_effective_date IS NULL. |
source | VARCHAR | CARTA (underlying fund is itself Carta-administered) or LPPA (underlying position is a staff-entered PaperFund). |
access_reason | VARCHAR | On CARTA rows, always same_firm or shared -- the only two values that grant Carta access. On LPPA rows, any of same_firm, shared, not_shared, date_restricted, or not_linked -- a PaperFund's authorization does not depend on this value; see the source column and renders_via on the access model. |
sharing_mode | VARCHAR | FIXED_DATE when sharing_date binds, REALTIME otherwise; null for same_firm rows, and always null for LPPA rows (a PaperFund carries no sharing window). |
sharing_date | DATE | Set only when the SHARED window actually clamps. Null for same_firm rows, unclamped real-time sharing, and always for LPPA rows. |
ownership_fraction | NUMBER | The parent's ownership fraction in the underlying fund, in force across this row's whole [effective_date, next_effective_date) window. NULL means no proration -- GL metrics are passed through unprorated, not zeroed -- and on a CARTA row happens only when the pair has no fraction series at all (a same-firm position held through no Partner row), never because the holding predates the parent's first commitment. |
is_prorated | BOOLEAN | Whether this row's metrics were multiplied by an ownership fraction. FALSE on a CARTA row means the parent's share could not be derived and the underlying fund's full position is shown, matching the app. FALSE on an LPPA row means the paper fund's LP ownership percentage could not be resolved, in which case the metric columns are NULL rather than unprorated. |
firm_investments_lookthrough_enabled | BOOLEAN | Descriptive only, NOT a gate on this table -- the parent firm's "firm investments soi lookthrough" configuration, which governs a different surface. |
currency_code | VARCHAR | Currency denomination of the underlying investment. |
asset_class_type | VARCHAR | Classification of the underlying investment (e.g. PREFERRED_EQUITY, COMMON_EQUITY, FUND_INVESTMENT, ...). NULL for LPPA rows -- PaperFund holdings have no equivalent classification. |
count_remaining_shares | NUMBER | Number of remaining shares of the underlying investment, prorated by ownership_fraction. |
total_cost_basis | NUMBER | Remaining cost basis of the underlying investment, prorated by ownership_fraction. |
total_unrealized_gain_loss | NUMBER | Unrealized gain/loss on the underlying investment, prorated by ownership_fraction. |
remaining_value | NUMBER | total_cost_basis + total_unrealized_gain_loss (already prorated). |
remaining_value_per_share | NUMBER | remaining_value / count_remaining_shares. |
_pk | VARCHAR | Primary key for this history table. |
firm_id | VARCHAR | UUID of the PARENT (fund-of-funds) firm. The row access policy authorization key -- never the underlying fund's firm. |
fund_uuid | VARCHAR | UUID of the PARENT (fund-of-funds) fund. The row access policy authorization key. |
parent_issuer_id | VARCHAR | FK to general_ledger_issuer.id -- the parent's own fund-investment row. |
underlying_fund_uuid | VARCHAR | UUID of the underlying fund. In scope for the API payload (unlike the underlying firm, which never appears anywhere in this table). NULL for LPPA rows -- a PaperFund is not itself a Carta fund; see paper_fund_id. |
underlying_issuer_id | VARCHAR | FK to general_ledger_issuer.id for a CARTA row's underlying holding, or PaperFundHoldingIssuer.id for an LPPA row's holding issuer. |
underlying_fund_investment_key | VARCHAR | fund_investment_key of the underlying holding on fundadmin_datashare_aggregate_investments_history. NULL for LPPA rows -- see paper_fund_holding_id. |
general_ledger_asset_id | VARCHAR | FK to the underlying holding's general ledger asset. NULL for LPPA rows. |
paper_fund_id | VARCHAR | FK to the PaperFund this row's holding belongs to. NULL for CARTA rows. |
paper_fund_holding_id | VARCHAR | FK to the specific PaperFundHolding this row describes. NULL for CARTA rows. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed during dbt execution. |
is_underlying_fund_churned | BOOLEAN | Whether the underlying fund had churned as of this row's effective_date. NULL for rows frozen before the MV-replication cutover (see the archive source) -- the old SQL kernel never surfaced this; populated on every row the live pipeline produces. |
has_carta_company_link | BOOLEAN | Whether the underlying issuer has a linked Carta company or corporation. NULL for rows frozen before the MV-replication cutover (see the archive source) -- the old SQL kernel never surfaced this; populated on every row the live pipeline produces. |
fund_lookthrough_enabled | BOOLEAN | Whether the parent fund's "SOI lookthrough for fund of funds" configuration was on as of this row's effective_date. Unlike firm_investments_lookthrough_enabled, this IS a gate -- fund-admin only materializes rows for funds where this was true. |
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.LPPA Documents
Customer-facing denormalized view of documents uploaded to LPPA. One row per document with resolved document type label, friendly inbox/feed/archive bucket, and cached names of upload/validation/review users. document_location computed from is_staged/is_archived flags. Status NONE excluded. Row-access policy on tenant_key applied in ds-airflow. Pagination sort: tenant_name, received DESC, _pk
| Column | Type | Description |
|---|---|---|
tenant_name | TEXT | Name of the LPPA tenant. |
document_name | TEXT | Name of the document. |
received | TIMESTAMP_NTZ | Timestamp when the document was received. |
document_location | TEXT | Computed bucket: inbox, feed, or archive, derived from is_staged/is_archived flags. |
status | TEXT | Processing status of the document. Rows with status NONE are excluded. |
document_type | TEXT | Resolved document type label. |
period | TIMESTAMP_NTZ | Reporting period the document covers. |
report_period | TEXT | Human-readable reporting period string. |
assigned_to | TEXT | Name of the user the document is assigned to. |
validated_by | TEXT | Name of the user who validated the document. |
reviewer | TEXT | Name of the reviewing user. |
source | TEXT | Source of the document upload. |
file_hash | TEXT | Hash of the document file. |
updated | TIMESTAMP_NTZ | Timestamp of the last update to the document. |
completed | TIMESTAMP_NTZ | Timestamp when processing was completed. |
_pk | TEXT | Surrogate key generated from document.id. |
tenant_key | TEXT | LPPA tenant ID. Used to enforce row access policy. |
id | NUMBER | Internal document identifier. |
document_id_string | TEXT | Document identifier as a string. |
fund_id | NUMBER | ID of the associated fund. |
general_partner_id | NUMBER | ID of the associated general partner. |
investor_id | NUMBER | ID of the associated investor. |
asset_id | NUMBER | ID of the associated asset. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed. |
LPPA Entity With Entity Metric
Entity-level metric facts joined with parent entity. One row per entity–metric–date combination. Row-access policy on tenant_key applied in ds-airflow. Pagination sort: tenant_key, name, metric_name, date DESC
| Column | Type | Description |
|---|---|---|
tenant_key | TEXT | LPPA tenant ID. Used to enforce row access policy. |
_key | TEXT | Surrogate key for the entity. |
name | TEXT | Entity name. |
fund_vintage_year | TEXT | Vintage year of the fund. |
fund_gp | TEXT | General partner of the fund. |
fund_geography | TEXT | Geographic focus of the fund. |
fund_size | FLOAT | Size of the fund. |
asset_class_level_1 | TEXT | Top-level asset class classification. |
investor_type | TEXT | Type of investor. |
country_code | TEXT | ISO country code. |
country | TEXT | Country name. |
gics_sector_code | NUMBER | GICS sector code. |
gics_sector | TEXT | GICS sector name. |
gics_industry_group_code | NUMBER | GICS industry group code. |
gics_industry_group | TEXT | GICS industry group name. |
gics_industry_code | NUMBER | GICS industry code. |
gics_industry | TEXT | GICS industry name. |
entity_type | TEXT | Type of entity (e.g. fund, asset). |
currency | TEXT | Currency of the entity. |
metric_name | TEXT | Name of the metric. |
date | DATE | Date of the metric observation. |
period | TEXT | Period the metric covers (e.g. quarterly, annual). |
metric_currency | TEXT | Currency in which the metric is expressed. |
currency_symbol | TEXT | Symbol for the metric currency. |
value_type | TEXT | Type of value (e.g. absolute, percentage). |
value_double | FLOAT | Numeric metric value. |
display_name | TEXT | Display name for the metric. |
metric_url | TEXT | URL linking to the metric source or definition. |
update_date | TIMESTAMP_LTZ | Timestamp of the last update. |
LPPA Events
Customer-facing view of LPPA domain events (commitments, investments, management events). One row per event. Type-discriminated convenience columns resolve entity names by event type. commitment_size is available as both raw text and a parsed numeric. Row-access policy on tenant_key applied in ds-airflow. Pagination sort: tenant_name, entry_date DESC, _pk
| Column | Type | Description |
|---|---|---|
tenant_name | TEXT | Name of the LPPA tenant. |
public_id | TEXT | Public-facing event identifier. |
entry_date | DATE | Date the event was entered. |
client_ref | TEXT | Client-supplied reference for the event. |
event_type | TEXT | Type of event (e.g. commitment, investment, management). |
event_status | TEXT | Current status of the event. |
investor_name | TEXT | Name of the investor. Populated when the event involves an investor. |
fund_name | TEXT | Name of the fund. Populated when the event involves a fund. |
gp_name | TEXT | Name of the general partner. |
portfolio_asset_name | TEXT | Name of the portfolio asset. |
portfolio_asset_type | TEXT | Type of the portfolio asset. |
vehicle_name | TEXT | Name of the vehicle. |
vehicle_entity_type | TEXT | Entity type of the vehicle. |
asset_name | TEXT | Name of the underlying asset. |
asset_entity_type | TEXT | Entity type of the underlying asset. |
deal_type | TEXT | Deal type classification. |
sub_deal_type | TEXT | Sub-classification of deal type. |
investment_type | TEXT | Type of investment. |
commitment_type | TEXT | Type of commitment. |
commitment_name | TEXT | Name of the commitment. |
commitment_size | TEXT | Commitment size as raw text (may include currency symbols or formatting). |
commitment_size_numeric | NUMBER | Commitment size as a parsed numeric value. |
alias | TEXT | Alias for the event. |
associated_data | BOOLEAN | Whether the event has associated data attached. |
exit_date | DATE | Exit date, if applicable. |
created | TIMESTAMP_NTZ | Timestamp when the event was created. |
last_updated | TIMESTAMP_NTZ | Timestamp of the last update. |
_pk | TEXT | Surrogate key generated from event.id. |
tenant_key | TEXT | LPPA tenant ID. Used to enforce row access policy. |
id | NUMBER | Internal event identifier. |
vehicle_id | NUMBER | ID of the vehicle. |
asset_id | NUMBER | ID of the asset. |
document_id | NUMBER | ID of the associated document. |
share_class_uuid | TEXT | UUID of the share class. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed. |
LPPA Fund Underlying
Fund-to-underlying-asset relationships with associated metric observations. One row per fund–asset–metric–date combination. Row-access policy on tenant_key applied in ds-airflow. Pagination sort: tenant_key, fund_name, asset_name, metric_name, date DESC
| Column | Type | Description |
|---|---|---|
tenant_key | TEXT | LPPA tenant ID. Used to enforce row access policy. |
fund_key | TEXT | Surrogate key for the fund. |
event_key | TEXT | Surrogate key for the associated event. |
parent_key | TEXT | Surrogate key for the parent entity. |
parent_event_key | TEXT | Surrogate key for the parent event. |
asset_key | TEXT | Surrogate key for the asset. |
investment_key | TEXT | Surrogate key for the investment. |
entry_date | DATE | Date the investment was entered. |
exit_date | DATE | Exit date of the investment, if applicable. |
investment_type | TEXT | Type of investment. |
investment_deal_type | TEXT | Deal type of the investment. |
fund_name | TEXT | Name of the fund. |
fund_currency | TEXT | Currency of the fund. |
asset_name | TEXT | Name of the underlying asset. |
asset_currency | TEXT | Currency of the asset. |
asset_type | TEXT | Type of the asset. |
sector | TEXT | Sector of the asset. |
asset_country_code | TEXT | ISO country code of the asset. |
asset_country | TEXT | Country of the asset. |
asset_gics_sector_code | NUMBER | GICS sector code of the asset. |
asset_gics_sector | TEXT | GICS sector name of the asset. |
asset_gics_industry_code | NUMBER | GICS industry code of the asset. |
asset_gics_industry | TEXT | GICS industry name of the asset. |
asset_gics_industry_group_code | NUMBER | GICS industry group code of the asset. |
asset_gics_industry_group | TEXT | GICS industry group name of the asset. |
gics_sub_industry_code | NUMBER | GICS sub-industry code. |
gics_sub_industry | TEXT | GICS sub-industry name. |
metric_name | TEXT | Name of the metric. |
date | DATE | Date of the metric observation. |
period | TEXT | Period the metric covers. |
metric_currency | TEXT | Currency in which the metric is expressed. |
currency_symbol | TEXT | Symbol for the metric currency. |
value_type | TEXT | Type of value (e.g. absolute, percentage). |
value_double | FLOAT | Numeric metric value. |
display_name | TEXT | Display name for the metric. |
event_status | TEXT | Status of the associated event. |
metric_url | TEXT | URL linking to the metric source or definition. |
currency_type | TEXT | Currency type classification. |
update_date | TIMESTAMP_LTZ | Timestamp of the last update. |
LPPA General Partners
GP-level summary metrics: commitment, contributions, distributions, account balance, and unfunded commitment. One row per GP–date combination. Row-access policy on tenant_key applied in ds-airflow. Pagination sort: tenant_key, name, date DESC
| Column | Type | Description |
|---|---|---|
tenant_key | TEXT | LPPA tenant ID. Used to enforce row access policy. |
_key | TEXT | Surrogate key for the general partner entity. |
name | TEXT | Name of the general partner. |
entity_type | TEXT | Entity type of the general partner. |
date | DATE | Date of the metric observation. |
metric_currency | TEXT | Currency in which metrics are expressed. |
value_type | TEXT | Type of value (e.g. absolute, percentage). |
total_commitment | FLOAT | Total committed capital to this GP. |
capital_contributions | FLOAT | Total capital contributions made. |
capital_distributions | FLOAT | Total capital distributions received. |
account_balance | FLOAT | Current account balance. |
unfunded_commitment | FLOAT | Remaining unfunded commitment. |
number_of_funds | FLOAT | Number of funds associated with this GP. |
number_of_commitments | FLOAT | Number of commitments associated with this GP. |
tenant_currency | TEXT | Base currency of the tenant. |
tenant_currency_symbol | TEXT | Symbol for the tenant's base currency. |
update_date | TIMESTAMP_LTZ | Timestamp of the last update. |
LPPA Linked Investors
Document–event–investor link table. One row per linked-investor record. Tenant is resolved via the linked document. Row-access policy on tenant_key applied in ds-airflow. Pagination sort: tenant_name, _pk
| Column | Type | Description |
|---|---|---|
tenant_name | TEXT | Name of the LPPA tenant. |
_pk | TEXT | Surrogate key generated from linked_investor.id. |
tenant_key | TEXT | LPPA tenant ID, resolved via the linked document. Used to enforce row access policy. |
id | TEXT | Internal linked-investor identifier. |
event_id | NUMBER | ID of the associated event. |
document_id | NUMBER | ID of the associated document. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed. |
LPPA Metrics
Extracted metric values from LPPA documents. Combines asset-level metrics (metric_source_type = 'ASSET') and security-level metrics (metric_source_type = 'SECURITY') in a single table. Some columns are null depending on the source type. Row-access policy on tenant_key applied in ds-airflow. Pagination sort: tenant_name, metric_name, date DESC, _pk
| Column | Type | Description |
|---|---|---|
metric_source_type | TEXT | ASSET or SECURITY — discriminates the underlying source table. |
tenant_name | TEXT | Name of the LPPA tenant. |
tenant_key | TEXT | LPPA tenant ID. Used to enforce row access policy. |
id | TEXT | Internal metric identifier. |
metric_id | NUMBER | Numeric metric identifier. |
metric_type | TEXT | Type of metric. Null for SECURITY rows. |
source_metric_uuid | TEXT | UUID of the source metric record. |
security_details_uuid | TEXT | UUID of the security details record. Null for ASSET rows. |
document_id_string | TEXT | Associated document identifier as a string. |
document_name | TEXT | Name of the source document. |
document_type | TEXT | Type of the source document. |
document_source | TEXT | Source of the document. |
metric_name | TEXT | Name of the metric. |
event_id | NUMBER | ID of the associated event. |
event_type | TEXT | Type of the associated event. |
event_date | TEXT | Date of the associated event. |
vehicle_name | TEXT | Name of the vehicle. |
vehicle_type | TEXT | Type of the vehicle. |
asset_name | TEXT | Name of the asset. |
asset_type | TEXT | Type of the asset. |
currency | TEXT | Currency of the metric value. |
period | TEXT | Period the metric covers. |
type | TEXT | Metric type classification. |
date | DATE | Date of the metric observation. |
value | TEXT | Metric value as raw text. |
confidence | FLOAT | Extraction confidence score. |
payment_type | TEXT | Type of payment. |
payment_date | DATE | Date of the payment. |
payment_reference | TEXT | Payment reference string. |
beneficiary_account_name | TEXT | Beneficiary account name. |
beneficiary_sort_code | TEXT | Beneficiary sort code. |
beneficiary_account_number | TEXT | Beneficiary account number. |
beneficiary_bank | TEXT | Beneficiary bank name. |
beneficiary_iban | TEXT | Beneficiary IBAN. |
beneficiary_swift | TEXT | Beneficiary SWIFT/BIC code. |
beneficiary_aba | TEXT | Beneficiary ABA routing number. |
correspondent_account_name | TEXT | Correspondent bank account name. |
correspondent_sort_code | TEXT | Correspondent sort code. |
correspondent_account_number | TEXT | Correspondent account number. |
correspondent_bank | TEXT | Correspondent bank name. |
correspondent_iban | TEXT | Correspondent IBAN. |
correspondent_swift | TEXT | Correspondent SWIFT/BIC code. |
correspondent_aba | TEXT | Correspondent ABA routing number. |
stated_category | TEXT | Stated category of the metric. |
in_commitment | BOOLEAN | Whether the metric value is included in the commitment. |
recallable | BOOLEAN | Whether the amount is recallable. |
included_in_payment | BOOLEAN | Whether the metric is included in a payment. |
investment_asset__id | NUMBER | ID of the investment asset. |
investment_asset__name | TEXT | Name of the investment asset. |
investment_asset__client_id | TEXT | Client-supplied ID of the investment asset. |
investment_asset__reference | TEXT | Reference for the investment asset. |
value_position | VARIANT | Structured position data for the value. |
value_absolute_position | VARIANT | Absolute position data for the value. |
comments | VARIANT | Structured comments on the metric. |
audits | VARIANT | Audit trail for the metric record. |
extraction_date | TIMESTAMP_NTZ | Date the metric was extracted from the document. |
created | TIMESTAMP_NTZ | Timestamp when the record was created. |
updated | TIMESTAMP_NTZ | Timestamp of the last update. |
_pk | TEXT | Surrogate key from metric_source_type + id. |
last_refreshed_at | TIMESTAMP_LTZ | Timestamp indicating when this data was last refreshed. |
LPPA Securities
Security-level dimension with associated metric observations. One row per security–metric–date combination. Row-access policy on tenant_key applied in ds-airflow. Pagination sort: tenant_key, asset_name, security_name, metric_name, date DESC
| Column | Type | Description |
|---|---|---|
security_id | TEXT | Unique identifier for the security. |
security_name | TEXT | Name of the security (share class or instrument). |
security_description | TEXT | Description of the security. |
security_class | TEXT | Class of the security. |
security_currency | TEXT | Currency of the security. |
security_type | TEXT | Type of the security. |
debt_seniority | TEXT | Seniority level for debt instruments. |
investment_round | TEXT | Investment round associated with the security. |
is_secured | BOOLEAN | Whether the security is secured. |
coupon_type | TEXT | Type of coupon (e.g. fixed, floating). |
maturity_date | DATE | Maturity date of the security. |
fixed_rate | FLOAT | Fixed coupon rate, if applicable. |
reference_rate | TEXT | Reference rate for floating-rate instruments. |
pik_spread | FLOAT | PIK (payment-in-kind) spread. |
floor | FLOAT | Interest rate floor. |
security_entry_date | DATE | Date the security was entered. |
event_key | TEXT | Surrogate key for the associated event. |
fund_key | TEXT | Surrogate key for the fund. |
fund_name | TEXT | Name of the fund. |
fund_currency | TEXT | Currency of the fund. |
asset_key | TEXT | Surrogate key for the asset. |
asset_name | TEXT | Name of the underlying asset. |
asset_currency | TEXT | Currency of the asset. |
security_client_ref | TEXT | Client-supplied reference for the security. |
security_exit_date | DATE | Exit date of the security, if applicable. |
number_of_shares | FLOAT | Number of shares. |
tenant_key | TEXT | LPPA tenant ID. Used to enforce row access policy. |
metric_name | TEXT | Name of the metric. |
date | DATE | Date of the metric observation. |
period | TEXT | Period the metric covers. |
metric_currency | TEXT | Currency in which the metric is expressed. |
value | FLOAT | Numeric metric value. |
value_type | TEXT | Type of value (e.g. absolute, percentage). |
metric_url | TEXT | URL linking to the metric source or definition. |
source | TEXT | Source of the metric. |
update_date | TIMESTAMP_LTZ | Timestamp of the last update. |