Skip to content

Equity recipe

Rendered

matter
app.mattermode.com / entities / ent_a7f3 / equity⌘K

Equity

Authorized vs. issued vs. reservedthe fundamental capacity check — gates every issuance
Authorized10,000,000
Issued4,200,000
Reserved1,000,000
Common StockRestated Charter Art. IV §A
HolderShares% out
Alex Kim (founder)2,000,00047.6%
Jordan Patel (founder)2,000,00047.6%
Sam Lee (early advisor)200,0004.8%

Goal

When a founder, board secretary, or counsel opens the equity dashboard, they need (1) current ownership at a glance, (2) the share-class breakdown (authorized / issued / reserved), (3) recent grants and their state, and (4) any in-flight grants needing approval. The equity recipe gives them all of this in one screen, with the live donut at the top, the share-class capacity gauge below, and the grants table at the bottom.

Layout breakdown

Three vertical sections inside the authenticated dashboard shell. Region map:

┌─ AppBreadcrumb ──────────────────────────────────────────────────┐
│  Entities › Waypoint Holdings › Equity                             │
├─ Section: Hero ───────────────────────────────────────────────────┤
│  Eyebrow: EQUITY                                                    │
│  DisplayHeading: Cap table, Q3 2026                                 │
│  SlidingPill: [Now] [Round-modeled] [Historic]                      │
├─ Section: Snapshot (2 columns) ───────────────────────────────────┤
│  ┌── CapTableSnapshotCard (8/12) ──┐ ┌── Capacity gauge (4/12) ──┐ │
│  │  Live donut + holder list        │ │  Authorized: 10,000,000    │ │
│  │                                  │ │  Issued:    7,847,210      │ │
│  │                                  │ │  Reserved:    980,400      │ │
│  │                                  │ │  Available:  1,172,390     │ │
│  └──────────────────────────────────┘ └────────────────────────────┘ │
├─ Section: Share classes (table) ──────────────────────────────────┤
│  Card: Share class breakdown                                        │
│   | Class          | Authorized | Issued | Reserved | Available |  │
│   | Common         |  6,000,000 | …      | …        | …         |  │
│   | Pref Series A  |  3,000,000 | …      | …        | …         |  │
│   | Option Pool    |  1,000,000 | …      | …        | …         |  │
├─ Section: Pending + Recent ───────────────────────────────────────┤
│  ┌── Pending grants (one OptionGrantCard per draft) ──┐ ┌── Feed ──┐│
│  │   <OptionGrantCard>  for each draft grant           │ │ Timeline.* │
│  │                                                     │ │ filtered  │
│  └─────────────────────────────────────────────────────┘ └──────────┘│
└────────────────────────────────────────────────────────────────────┘

Every value cell uses var(--font-geist-mono) + font-variant-numeric: tabular-nums so columns line up across rows.

Component manifest

RegionComponentWhy over alternatives
BreadcrumbAppBreadcrumbEntity → Equity context
Hero eyebrowEyebrowSection anchor
Hero headingDisplayHeading as="h1" size="hero"Page-outline top
View-mode switchSlidingPill size="md"Three views (Now / Round-modeled / Historic); the indicator slide reads as "same surface, different lens"
Cap-table snapshotCapTableSnapshotCardThe canonical live ownership view
Capacity gaugeCard + tabular-num value rowsPlain card; values right-aligned with tabular-nums
Share-class tableCard + HTML <table>The canonical table treatment; mono + tabular numerals
Pending grantsOptionGrantCardOne per draft grant; the canonical drafted-grant surface
Activity feedTimeline.* (Timeline)Equity-scoped event stream

Responsive behaviour

BreakpointSnapshotPending + Feed
< 768pxSingle column (donut above gauge)Single column (pending grants above feed)
768–1023pxSingle column with wider cardsSame
≥ 1024pxTwo columns (8/12 + 4/12)Two columns (8/12 + 4/12)

States

StateTriggerBehaviour
DefaultPage loadAll cards hydrate; "Now" view active
Round-modelingSlidingPill switches to Round-modeledDonut shows projected ownership; capacity gauge shifts to "post-round" numbers; banner identifies the round
HistoricSlidingPill switches to HistoricDonut shows ownership at a chosen past date; date picker appears in hero
Empty (no grants yet)No Grant rowsPending region hidden; cap table shows founder-only ownership
LoadingFirst navCardSkeleton placeholders in each card; AppBreadcrumb hydrates first

Implementation

Source: apps/app/app/(authenticated)/entities/[id]/equity/page.tsx. Server component; CapTable view fetched server-side via @matter/api-client. Round-modeled view runs the modeling math in a server action triggered by the SlidingPill change.

Source

apps/app/app/(authenticated)/entities/[id]/equity/page.tsx

On this page