SPEC 014 — Reports
1. Feature Purpose
Reports provide organization administrators and stakeholders with tabular views of cap table data. Three report types are available: Holder Report (per-member ownership summary), Pools Report (option pool and convertible instrument utilization), and Holdings Report (individual certificate-level detail). All reports support dynamic filtering, sortable columns, and footer totals. Reports are read-only views over existing cap table data — no dedicated backend module exists.2. Current State (Verified)
2.1 Holder Report
2.2 Pools Report
2.3 Holdings Report
2.4 Module Exports
3. Data Model
Reports do not maintain their own data model. They consume data from:Source: Cap Table Dashboard (GetCaptableDashboardResponse)
Source: Pools Report (GetPoolsReportResponse)
Source: Holdings Query (QueryResponse)
Enums Referenced
4. API Endpoints
Reports consume existing cap table endpoints — no dedicated report endpoints exist.5. Frontend Components
Module: equa-web/src/modules/reports/
Shared Dependencies
6. Business Rules
- Permission gating: All three reports require either
viewCapTableorviewSelfpermission. Users withviewSelfsee only their own holdings in the data. - Holder Report excludes members who have no holdings AND no voided records (i.e., members with zero equity involvement are hidden).
- Holdings Report excludes records of type
convertibleInstrument,pool, andorgAsset— these appear in their own dedicated views. - Pools Report classifies pools as either
Incentive(ESOP plans) orConvertible(convertible instruments). - Ownership percentages are displayed to 2 decimal places (
.toFixed(2)). - Investment values are formatted as USD using
optionalUsdString. - Share counts use
toCommaFloatfor comma-separated formatting. - Footer totals aggregate across all visible rows (post-filter).
- All links from reports open in a new browser tab (
target='_blank'). - Page size is set to 100,000 across all reports — effectively no client-side pagination.
7. Acceptance Criteria
- Holder Report displays all members with equity involvement, with correct investment, outstanding, ownership, and fully diluted values
- Holder Report footer shows accurate totals for all numeric columns
- Pools Report displays incentive pools and convertible instruments with correct metrics
- Pools Report filter by Equity and Type works correctly
- Holdings Report displays individual certificates with all metadata fields
- Holdings Report filter by Holder, Class, and Type works correctly
- All percentage columns display 2 decimal places
- All USD columns are properly formatted
- Links to members, securities, pools, and certificates open in new tabs
- Users without
viewCapTableorviewSelfpermission cannot access reports - Reports load successfully for organizations with large cap tables (1000+ holdings)