Synthetic demo data

About this demo

What ProductPulse is, and how it's built

A read-only executive product-analytics demo built on synthetic data — every number on every screen is fictional, and every status is computed, never asserted.

Product context

ProductPulse is an executive product-analytics dashboard for a fictional B2B SaaS product. It tracks adoption, engagement, and revenue — and, critically, maintains an initiative registry that connects specific shipped work (AI features and standard product work alike) to the metric movement that followed. Most growth dashboards answer what happened; ProductPulse also answers what did we ship that caused it, and did it work?

ProductPulse is the natural second half of AgentOps: AgentOps asks “is this AI initiative safe to launch?” before it ships. ProductPulse asks “did it actually work?” after. Governance before, accountability after.

Architecture

  • Next.js App Router with TypeScript strict mode; every route is statically prerendered.
  • No backend, no database, no APIs — a fully typed synthetic dataset lives in src/data/.
  • Impact statuses come from a deterministic pure function in src/lib/impact.ts, covered by a vitest suite. Same inputs, same status, always — no AI calls, no scoring drift.
  • Tailwind CSS with shadcn/ui components and Recharts, deployed on Vercel from GitHub main.

Security posture

  • Read-only by design: no forms, no write paths, no authentication, no uploads, no cookies.
  • All data is synthetic and labeled as such in the UI.
  • No secrets, no API keys, no environment variables exposed to the browser.
  • A STRIDE threat model and security policy ship with the repo — see docs/threat-model.md and SECURITY.md.

Fischer Product Lab

Glossary

Every metric on these screens, in plain language. The same definitions power the tooltips on the stat cards.

DAU
Daily Active Users — unique users who took a meaningful action on a given day.
WAU
Weekly Active Users — unique users active in the last 7 days.
MAU
Monthly Active Users — unique users active in the last 30 days.
Stickiness
DAU ÷ MAU — the share of monthly active users who show up on a given day; a measure of how habitual the product is.
Activation rate
The share of signed-up accounts that reached their first core workflow.
Habit rate
The share of activated accounts that made the product part of their regular routine.
Adoption lift
Percentage-point change in adoption of the relevant workflow, from the pre-launch baseline to today.
MRR
Monthly Recurring Revenue — subscription revenue normalized to one month.
Net new MRR
The total change in Monthly Recurring Revenue this month: new + expansion − contraction − churned.
NRR
Net Revenue Retention — recurring revenue kept from the existing customer base after expansion, contraction, and churn. Above 100% means the base grows even with zero new sales.
AI cost savings
Hours of manual work eliminated by AI initiatives, valued at a blended fully-loaded hourly rate ($95/hr in this demo).
Impact status
Deterministic rating of every shipped initiative: Strong Impact (adoption lift ≥25 pts plus a measurable business outcome), Underperforming (lift under 5 pts), Monitor (everything between). Computed by a pure function — never asserted.
Cohort retention
Of the users who activated in a given month, the share still active N months later. Each row of the cohort table follows one activation class through time.
Churn risk
Deterministic per-segment rating from usage signals: High (inactive 30+ days, or under 0.5 sessions/week while inactive 14+ days), Elevated (under 2 sessions/week, inactive 7+ days, or seat utilization under 30%), Low otherwise.
Seat utilization
The share of purchased seats that are actively used across a segment's accounts.
Attribution caveat
A flag raised when another initiative launched within six weeks of this one — adoption movement inside that shared window may belong to either launch, so neither can claim it cleanly.