Plan — nothing built yet 2026-08-24 ~15–21 dev-days once shaped

One chat for the whole portfolio.

A demo sub-version of LiveCEO, built from scratch for a family-office owner: five portfolio companies, one knowledge graph with drill-down, pre-built P&L and status dashboards, and the production voice interface on top — all on mock data engineered to hold up under real questions.

This page is the deliverable. It's a build plan with 10 open questions for you at the bottom. Your answers shape what gets built; no code has been changed and nothing gets built until then.
portfolio.liveceo.ai — Portfolio Home
FUND Vortex Games Portside Software Solstice Outdoor Northlane Financial Meridian Labs
Portfolio revenue
$212M
Agg. EBITDA
$31.4M
Risk flags
4 open
Companies
5
“Give me a one-line health check across the portfolio.”
The concept

What this demo is

You play the family-office owner. The demo answers the question every PE associate asks daily — “what's actually going on inside our companies?” — from five surfaces built on the same knowledge base per company that LiveCEO builds for real customers. It is a separate app built fresh, lifting LiveCEO's proven parts, not an adaptation of production.

01 · Portfolio Home

The top-level picture

A force-directed graph of the fund: 5 company nodes sized by revenue and colored by health, plus the cross-company connections (a board member on three boards, a shared vendor). An aggregate KPI strip and the voice dock live here.

02 · Company drill-down

Each company's knowledge graph

Click a company → its own full entity graph (LiveCEO's real 964-line GraphCanvas, lifted verbatim). Every node opens a real wiki page — teams, decisions, products, accounts — with citations. No dead ends.

03 · Pre-built dashboards

P&L, pipeline, dev status…

Deterministic, pixel-identical charts per company (not LLM-generated) — P&L, sales pipeline, dev status, credit book, integration ops. Numbers are guaranteed to match what chat cites, by construction.

04 · Chat

Ask anything, get citations

The real LiveCEO agent engine (claude-agent-sdk, Sonnet, Read/Grep/Glob over the wiki — no RAG), lifted unmodified. Curated “killer question” chips guide the associate; every answer carries citation pills into source pages.

05 · Voice

Talk to your portfolio

The exact production voice stack: OpenAI Realtime over WebRTC (voiceClient.ts, zero changes needed). Scoped to the page you're on — ask the portfolio from home, ask Vortex from Vortex's page. Spoken summary + written cited answer on screen.

00 · The foundation

Mock data that doesn't crack

Every company gets a canonical financial model first; wikis and dashboards are both derived from it and lint-checked for agreement. If a dashboard says $4.2M ARR, chat says $4.2M. Details in Architecture.

The cast

Five companies, five kinds of PE anxiety

Chosen so the portfolio reads as a real book — each company carries a different risk flavor and a genuinely different KPI vocabulary (ARR/NRR vs. CAC/LTV vs. delinquency vs. TAT/accreditation), which is what makes the graph and the question bank feel real. Names and domains are proposals — Q4.

CompanyDomainHealthThe story
Vortex Gamespreserved anchor customer Mobile & console games studio
DAU/retentionmilestoneslive-ops
Amber The anchor asset: a profitable live-ops hit aging out (DAU down 2 quarters), racing a new title to a holiday launch that has to reignite growth.
Portside Softwareinvented Vertical B2B SaaS — freight TMS
ARR/NRRpipelinecoverage
Green The growth story: ARR +38% YoY on a strong new-logo motion — but NRR slid 118%→109% as the smallest-customer segment frays.
Solstice Outdoorinvented D2C + wholesale outdoor gear
CAC/LTVchannel mixcohorts
Amber The margin story: paid acquisition stopped paying for itself, and the wholesale fallback is now concentrated in one big-box partner (~34% of revenue).
Northlane Financialinvented Fintech — invoice lending for SMB manufacturers
delinquencycharge-offscovenants
Red / Watch The risk story: real loan-book growth, but 60+ day delinquency just crossed the 3.5% covenant-relevant threshold. The board needs to see it now.
Meridian Clinical Labsinvented Healthcare — diagnostic-lab roll-up (platform + 2 add-ons)
TATpayer mixsynergies
Green, ops flag The integration story: on-plan financially — except the newest site is behind on systems migration and its CLIA recertification clock is ticking.
Killer user stories

The five scenes the demo is built around

Each scene defines exactly what the mock data must be able to support: the question, the surfaces it touches, and the citation trail it must produce. These are the demo script.

Scene 1 — “Why did delinquency spike?”

DashboardChat

Northlane Financial. The associate opens the Credit & Loan Book dashboard; the 60+ day delinquency tile is red — 4.2% against the 3.5% covenant threshold.

“Why did 60+ day delinquency spike this quarter at Northlane?”

The agent segments the loan book by origination cohort, finds the Q2-2026 manufacturing-vertical cohort driving it, and surfaces the credit-committee memo that had already flagged underwriting-model drift — answer in 2–3 sentences with citation pills into entities/decisions/q2-credit-policy-review.md and the board-deck raw dump.

Scene 2 — “Which company is most exposed?”

GraphChatCross-portfolio

All five companies. From the portfolio graph:

“Which of our five companies has the highest customer or channel concentration risk, and what should I ask management first?”

The agent compares Solstice's top-wholesale-account concentration (~34% of revenue) against Portside's healthiest-in-book 6%, ranks all five, cites both companies' wikis — one agent turn across the whole portfolio. This scene is why the architecture uses a single wiki root with five company subtrees.

Scene 3 — “Will the new title ship?”

DashboardChat

Vortex Games. The Development & Live-Ops dashboard shows Beta slipped two weeks.

“Is the new title still on track for the holiday launch window?”

The agent answers from milestone dates and burndown, cites the title's entity page and a Jira-shaped raw dump documenting the certification-blocking crash bug, and gives a calibrated answer: still inside the window, nine days of buffer.

Scene 4 — “What's our biggest bookings risk?”

DashboardChat

Portside Software. On the Sales Pipeline dashboard, an $820K “Committed” deal sits 45 days past its expected close.

“What's our biggest risk to hitting Q4 bookings?”

The agent surfaces that exact deal, cites the email thread where the champion went quiet, and the account entity page noting a leadership change at the prospect. Numbers, narrative, and next action in one answer.

Scene 5 — “One-line portfolio health check”

VoiceCross-portfolio

Portfolio-wide, away from the screen. The associate taps the mic on Portfolio Home:

“Give me a one-line health check across the portfolio.”

The Realtime voice session calls ask_portfolio_brain — the demo's portfolio-scoped sibling of production's ask_company_brain — and speaks: “Four of five are on track. Northlane's delinquency crossed the 3.5% covenant threshold this month — worth a call this week. Vortex's new title slipped two weeks but still has runway to the holiday date.” The full written, cited answer renders on screen simultaneously — the production voice persona rules (never read tables aloud) carry over unchanged.

Pre-built dashboards

Six dashboards, one honest number set

Recommended shape (see Q3): every company gets a P&L dashboard with an identical widget set — a PE owner wants financials comparable across the book — plus one domain-flavored dashboard each, and a portfolio roll-up above them. All deterministic React charts themed on LiveCEO's design tokens; the production LLM-generated dashboard pipeline is deliberately not used here (a sales demo needs pixel-identical output every run).

Portfolio Overview — sits above the five

Portfolio Home
  • Health heatmap — 5 companies × Financial / Ops / Risk
  • Aggregate revenue & EBITDA roll-up, stacked by company
  • Cross-portfolio risk & milestone watchlist
  • Entry point into the portfolio knowledge graph

P&L

All five companies — identical widgets, comparable at a glance
  • Revenue trend (18–24 mo) with YoY overlay
  • Gross margin % + EBITDA margin trend
  • Opex breakdown (COGS / S&M / R&D / G&A)
  • Cash, monthly burn, runway tile
  • Budget-vs-actual variance, current quarter
  • KPI scorecard row incl. headcount

Sales Pipeline

Portside Software
  • Funnel with stage-conversion %
  • ARR bridge (new / expansion / contraction / churn)
  • NRR trend + win-rate trend
  • Pipeline coverage vs. quarter target
  • Top-10 open deals table

Development & Live-Ops

Vortex Games
  • New-title milestone timeline (preprod → cert → launch)
  • Sprint burndown / velocity
  • Bug backlog by severity
  • DAU/MAU, D1/D7/D30 retention, ARPDAU
  • Platform certification tracker

Marketing & Unit Economics

Solstice Outdoor
  • Revenue by channel (DTC / wholesale / marketplace)
  • CAC by channel + LTV:CAC trend
  • Contribution margin per order
  • Cohort repeat-purchase curve
  • Top-5 wholesale concentration tile

Credit & Loan Book

Northlane Financial
  • Originations trend (volume + count)
  • Outstanding balance by risk tier
  • Delinquency 30/60/90+ with covenant line
  • Net charge-offs + yield / NIM
  • Compliance flags (licensing, open audits)

Integration & Compliance Ops

Meridian Clinical Labs
  • Revenue & test volume by site
  • Turnaround-time trend per site
  • Integration milestone tracker
  • CLIA/CAP accreditation traffic lights
  • Synergy capture: realized vs. target

The 30-question bank

The canonical questions PE associates ask — the mock data is generated specifically so every one of these is answerable with citations. They double as suggested-prompt chips in chat and voice.

Cross-portfolio (10)
  1. Give me a one-paragraph health check across all five portfolio companies.
  2. Which company has the lowest EBITDA margin this quarter, and why?
  3. Rank the five companies by revenue growth YoY.
  4. Which companies are burning cash, and what's their runway?
  5. Which portfolio company has the highest customer or channel concentration risk?
  6. What's aggregate portfolio EBITDA this quarter vs. last quarter?
  7. Which company had the biggest negative surprise this month?
  8. Are any covenant thresholds at risk anywhere in the portfolio?
  9. Which company has had recent leadership turnover, and does it correlate with performance?
  10. Summarize the single biggest risk in the portfolio right now.
Per-company financials — template applies to any company (5)
  1. What was [Company]'s revenue and EBITDA last month vs. plan?
  2. What's driving the gross-margin change at [Company] this quarter?
  3. What's [Company]'s cash runway at current burn?
  4. Where is [Company]'s opex growing fastest?
  5. Is [Company] on track to hit its annual budget?
Portside — SaaS pipeline (4)
  1. What's Portside's pipeline coverage ratio against the Q4 target?
  2. Which deals in Portside's pipeline are stalled or at risk?
  3. What's driving the change in Portside's net revenue retention?
  4. Who are Portside's top 3 at-risk renewal accounts this quarter?
Vortex Games — development status (4)
  1. Is the new title on track for its planned launch window?
  2. Is DAU/retention on the live title still declining, and by how much?
  3. What are the top open blockers in the current development milestone?
  4. Which platform certifications are still pending for the new title?
Solstice — D2C economics (3) · Northlane — credit (2) · Meridian — integration (2)
  1. What's Solstice's CAC trend by channel — is paid acquisition still profitable?
  2. How concentrated is Solstice's revenue in its top wholesale accounts?
  3. What's the repeat-purchase rate for the last two acquisition cohorts?
  4. What's driving the change in Northlane's net charge-off rate this quarter?
  5. What's Northlane's loan-book concentration by industry vertical?
  6. Is Meridian on schedule for synergy capture?
  7. Are all three Meridian sites in good CLIA/CAP standing?
Architecture

Built fresh — from proven parts

A new standalone app (recommended: its own repo — Q10) on the same stack: Next.js 16, React 19, Tailwind v4, TypeScript strict. No WorkOS, no Postgres multi-tenancy, no connectors, no gVisor sandbox — the demo carries none of production's SaaS weight. The research pass confirmed every lifted part below by reading the actual code.

Lifted from LiveCEO, near-verbatim

  • The whole agent engineagentCore.ts (~1,700 lines): claude-agent-sdk turn assembly, wiki-navigation system prompt, Read/Grep/Glob-only tool surface. Unmodified.
  • The path jailwikiContainment.ts: every file read realpath-checked against the wiki root. Works identically without gVisor.
  • The voice stackvoiceClient.ts (~300-line WebRTC / OpenAI Realtime driver, framework-free) + the ephemeral-secret minting route. The research confirmed the tool-callback seam needs zero client changes.
  • The graph rendererGraphCanvas / GraphView / graphTheme + buildGraph(). Entity types are emergent strings, so PE vocabulary (company, covenant, deal) needs no renderer change.
  • CitationsMarkdown.tsx wiki-pill rendering, repointed at a filesystem-backed wiki route.
  • Design systemglobals.css @theme tokens, Cal Sans/Inter/JetBrains Mono, landing/shared.tsx primitives, AppShell/TabRail as visual template.
  • Wiki conventions — index + entities/<type>/<slug>.md + raw/<system>/… layout, frontmatter and linking rules, so the unmodified agent prompt still describes reality.

New engineering (nothing like it exists yet)

  • Mock-corpus generator — authors 4 synthetic company wikis (raw dumps first, then curated entities) conforming to LiveCEO's wiki conventions. The central missing piece; no “synthesize a company” tool exists today.
  • Canonical-numbers pipeline — the honesty machinery below. Numbers decided once, everything derived.
  • Portfolio graph layer — fund → companies → bridge people. Confirmed by four independent research passes: no cross-company aggregation exists anywhere in the codebase.
  • Dashboard components — LiveCEO has no charting library at all (production dashboards are LLM-generated HTML). New deterministic React charts (Recharts + the dataviz conventions), themed on the same tokens.
  • Trimmed ask route — SSE streaming + citations only; production's 781-line chat route sheds admission queues, plan allowances, access policies, write-tools.
  • PE question bank + scenes content — no PE/finance vocabulary exists anywhere in the product today.
  • Vortex preservation pass — export via the existing backup tool, then the existing anonymization pipeline, gated by human review (see Risk 1 / Q2).

Why the numbers can't disagree

The single hardest requirement: a dashboard saying ARR is $4.2M while chat cites $3.8M kills the demo in one click. So numbers are decided exactly once, and everything else is derived:

Canonical financial model per company. A seeded, deterministic generator produces each company's numbers as structured JSON — with identities enforced in code: EBITDA = revenue − COGS − opex, funnel stages sum, retention compounds, delinquency buckets total the loan book.
Dashboards read those exact numbers. Static JSON per company/dashboard — no LLM, no variance, instant render.
The wiki is narrated around them. Slack threads, Jira tickets, board-deck excerpts and entity pages are LLM-written with the canonical figures passed as hard constraints — the model never invents a number.
An offline consistency lint gates the build. Every numeric mention in generated prose is diffed against the canonical values; drift fails the corpus build. A wrong number becomes a build bug, never a live-demo risk.

One wiki root, five subtrees

All five companies live as subtrees under one wiki root. That's what lets a single agent turn answer “which company has the worst margin trend?” by walking across companies — and it reuses the agent engine, the path jail, and the graph builder with zero modification. Production-style per-tenant isolation is a story this demo doesn't need to tell: none of the data is real (and the Vortex copy is gated — Q2).

liveceo-pe-demo/ src/app/ page.tsx # Portfolio Home — graph + KPI strip + voice dock company/[slug]/page.tsx # header + tabs: Dashboards | Graph | Chat api/ask/route.ts # NEW — trimmed SSE agent route (scope: portfolio | company) api/voice/session/route.ts # lifted — PE persona, ask_portfolio_brain tool api/wiki/[...path]/route.ts # serves wiki pages from the filesystem src/lib/ agentCore.ts · wikiContainment.ts · voiceClient.ts · graph.ts # lifted unmodified portfolioGraph.ts # NEW — fund/company/bridge-people graph src/components/ graph/* · Markdown.tsx · shared.tsx # lifted dashboards/* # NEW — deterministic charts × 6 types data/ wikis/{vortex-games,portside,solstice,northlane,meridian}/ # generated corpora dashboards/<slug>/*.json # canonical numbers, same source as wiki prose killer-questions.ts # the 30-question bank as prompt chips scripts/ generate-mock-wiki.mjs # NEW — numbers-first corpus generator anonymize-vortex.mjs # wraps the existing anonymization pipeline (gated)
Build sequence

Every phase is something you can click

~15–21 developer-days total (3–4 calendar weeks for one engineer; content generation parallelizes with UI once the wiki file shape is fixed). Each phase ends in a walkthrough you can react to before the next begins.

PhaseYou get to clickEffort
0 · FoundationsFresh app scaffold, design tokens ported, fonts, deploy pipeline smoke-tested. (Not independently demoable.)1–1.5 d
1 · “Here's your empire”App shell + portfolio graph with 5 company nodes → click through to each company's own knowledge graph → every node opens a real wiki page. Runs on the first thin corpus.3–4 d
2 · “Here's the numbers”All six dashboards live on canonical mock numbers; portfolio roll-up tile on home.3–4 d
3 · “Ask it anything”Chat with the real agent over the mock wikis — killer-question chips, streaming answers, citation pills opening the reader.2–3 d
4 · “Talk to your portfolio”Voice dock on every page, scoped to where you are. This completes the MVP.1.5–2 d
5 · Corpus depth + VortexDeepen the four synthetic corpora to a few hundred pages each; run the gated Vortex export → anonymize → human-review pass and swap it in. Ships on its own timeline, never blocks 1–4.3–5 d
6 · StretchAd-hoc “ask a follow-up, get a fresh chart” LLM artifacts; shareable dashboard links; dictation in the composer.deferred
Risks

What could sink it, and the mitigation

Ranked. The first one is the only one with real-world blast radius.

1 · Vortex Games data leaking into a demo shown to outsiders — highest severity

Vortex is a real customer. The repo's own anonymization pipeline documents that on a comparable prior run, the automated scrub still left 71 real leaks (names, a plaintext auth token, staging IPs, an address inside a base64 calendar id) — caught only by two human adversarial review passes.

Mitigation: hard release gate, not a checklist item. MVP ships with a synthetic Vortex-styled stand-in; the real corpus enters only after export → automated rewrite → leak scan → two independent human passes → written sign-off. Decision is yours — Q2.

2 · Mock data feels fake or doesn't reconcile

One mismatched number between a dashboard and a chat answer collapses credibility in a single click.

Mitigation: the canonical-numbers-first pipeline plus the offline consistency lint (Architecture §) — agreement is mechanical, not hoped-for. Plus a golden-question regression run of all 30 bank questions before any important showing.

3 · The graph reads as a toy

A force graph with a dozen generic nodes signals “demo,” not “the AI actually ingested this company.”

Mitigation: generate real depth (target ~150–300 information-dense pages per company, deepening in Phase 5), reuse the deterministic hub pages (org chart, decision log) as high-degree anchors, and enforce no dead ends — every clickable node opens a substantive cited page.

4 · Voice quality in the actual room

Realtime WebRTC on venue wifi, laptop-mic echo, and a 30–120s research-tool window can produce dead air mid-pitch.

Mitigation: rehearse on the venue network with a dedicated headset mic; the typed composer sits right next to the mic toggle and routes through the identical answer pipeline, so falling back mid-demo costs nothing.

5 · Live-agent cost and safety if the link escapes

Every turn is a real Sonnet call; every voice minute is metered Realtime. Fine when operator-driven; unbounded if a public link circulates.

Mitigation: shared-passcode gate + per-session turn caps by default (Q6/Q7). If unsupervised prospect access is ever wanted, that's a scope change: hard caps and sandbox revisited first.

Your call

Ten open questions that shape the build

Each comes with a recommended default — answer with a number and “yes” or a correction. Q1 and Q2 matter most; everything else has a safe default.

1

Who sees this demo, and how? Live pitch you drive · self-serve link for PE firms · internal/investor storytelling?

Drives the auth model, cost guardrails, whether unsupervised strangers hit live LLM/voice sessions, and how hard the Vortex privacy gate must be.

RecommendedOperator-driven live pitch for v1 — lowest risk, fastest build, matches how PE tools are actually sold. Self-serve becomes a deliberate v2 with hard caps.

2

Vortex Games: real anonymized copy of the production wiki, or a fully synthetic Vortex-styled company?

“Preserve the copy of Vortex Games” can mean either. Real data is maximally authentic but is a real customer's data — the prior anonymization run's 71 post-scrub leaks make this the project's only genuine incident risk, and it needs your sign-off plus review time.

RecommendedSynthetic Vortex-styled stand-in for the MVP; run the gated export → anonymize → two-human-pass pipeline in parallel (Phase 5) and swap the real corpus in only after written sign-off.

3

Dashboards: P&L for every company + one domain dashboard each (11 views), or literally one dashboard type per company (5 views)?

Your brief reads either way. Comparable financials across the whole book is the stronger PE story, but it's roughly double the dashboard build.

RecommendedP&L everywhere + one specialty each — the P&L component is built once and themed per company, so the real extra cost is data generation, not five new UIs.

4

Are the four invented companies right? Portside Software (freight SaaS) · Solstice Outdoor (D2C) · Northlane Financial (SMB lending) · Meridian Clinical Labs (healthcare roll-up)

Names and domains propagate into hundreds of generated pages, dataset labels, and voice transcripts — renaming after generation means regenerating the corpus, not find-and-replace.

RecommendedProceed with these four (each carries a distinct PE risk flavor: retention, margin/concentration, credit/covenant, integration/compliance), with a quick trademark sanity check before the first generation run.

5

Live agent answers, or scripted/canned ones?

Live = the real “it's actually reasoning over the wiki” effect, plus graceful handling when an associate goes off-script; costs latency and a small hallucination risk. Canned = 100% reliable, but collapses the moment anyone asks their own question.

RecommendedLive agent for both chat and voice. The corpus is small and fully known, and the golden-question regression run before each showing is the safety net.

6

Data plumbing: filesystem-only (static JSON dashboards, no database), or stand up the SQL dataset lane so the agent runs real queries?

Filesystem-only keeps the entire demo self-contained — no Postgres anywhere — and dashboards render instantly. The SQL lane (production's query_dataset) adds a “watch it write real SQL” demo beat and numeric verification, at the cost of a database and the dataset machinery.

RecommendedFilesystem-only for v1; the numbers already agree by construction. Add a per-company SQLite file later only if you want the live-SQL moment on stage.

7

Access: open link, single shared passcode, or full WorkOS login?

Production's WorkOS + org-claim machinery is heavy for a fixed-cast demo; a bare public URL risks the link (and any Vortex-derived content) leaking or being crawled.

RecommendedSingle shared passcode — one gate, no accounts, revocable by rotating it.

8

Where does it run — and at what address?

Same Hetzner box as production (new subdomain, fully separate container, zero shared DB) reuses proven Caddy/TLS ops with near-zero new infra. A separate host (Vercel/Fly) gives total isolation but new deploy tooling. The name also sets the demo's framing (e.g. portfolio.liveceo.ai vs. a standalone brand).

RecommendedSame Hetzner box, separate container, portfolio.liveceo.ai — proven ops, zero production coupling.

9

Corpus depth: thin-but-real first (~40–80 pages per company for Phases 1–4), or full depth (~150–300+) before you first click through?

Content generation is the longest pole (3–5 days at full depth). Thin-first gets you clicking a week earlier and lets you correct the shape before deep investment; but the graph impresses in proportion to its density.

RecommendedThin-but-real for the first walkthrough, then deepen in Phase 5 once you've confirmed the shape — the generator makes depth a re-run, not a rebuild.

10

Repo strategy: fresh repo (liveceo-pe-demo) or a folder inside the main product repo?

A fresh repo makes “zero coupling to production auth/DB/tenancy” structural and matches “built from scratch”; a folder keeps everything in one place but invites entanglement and would need monorepo tooling the repo doesn't have.

RecommendedFresh repo, with one-time file copies from LiveCEO (free to diverge) rather than submodules.

Fastest way to unblock the build

Reply in chat with something like: “1 live-pitch · 2 synthetic-first · 3 P&L-everywhere · 4 yes · 5 live · 6 filesystem · 7 passcode · 8 portfolio.liveceo.ai · 9 thin-first · 10 fresh repo” — or correct any line. Accepting all recommendations as-is also works: “all defaults”.