Skip to content

maekass/Lacuna

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

125 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lacuna

Educational demo — women's health M&A visualization & descriptive analytics

Curated dataset · n=58 verified deals · Not live market data · Scores are descriptive, not forecasts.

The live app reads src/data/dataset.verified.json by default. Server-side LLM calls use Vercel AI Gateway only. TensorFlow code is quarantined (not in the app). See MODEL_CARD.md before citing any score.

Lacuna — educational FemTech M&A network visualization from a curated verified dataset

Next.js 16 React 19 TypeScript D3.js v7 Verified JSON dataset BSL 1.1 Live demo

Table of Contents


Overview

Lacuna is a research and education demo: a curated, source-linked snapshot of women's health M&A (58 verified deals), rendered as D3 network views and descriptive analytics with published methodology.

Claim Reality
Deal data Static dataset.verified.json (manual verification from SEC, press, filings)
Scores & “predictors” Deterministic rules and small-n statistics — MODEL_CARD.md
“ML” / TensorFlow Quarantined under src/lib/ml/_quarantine/not imported by the app
Server LLM INFERENCE.md — Vercel AI Gateway (+ OpenAI fallback for local dev)
Clinical trials panel Live ClinicalTrials.gov search; M&A panels still use the curated dataset
Production intelligence No — not PitchBook, not a data SLA, not investment advice

Open source under BSL 1.1 for coursework, journalism, and self-hosted exploration. Commercial competitive products need a separate license — mps5cy@virginia.edu.

Portfolio project by Mae Kass.

Deployment: The analytics product runs on Vercel (this repo). A separate Framer site is for brand and narrative only, with one primary CTA into the live demo — see SITE_ARCHITECTURE.md and the framer/ build kit.


What is Lacuna?

An open-source educational sandbox for exploring verified women's health / FemTech M&A:

  • D3.js force-directed acquirer–target graphs
  • Deal flow & valuation charts (curated counts and disclosed values)
  • Descriptive scoring (factor weights, cosine similarity, k-means — no trained forecast models in the UI)
  • ClinicalTrials.gov lookup (live API; separate from deal JSON)
  • Health-equity context with cited disparity statistics (descriptive, not allocation advice)

Every analytical panel in the app shows the provenance line above.


Live Demo

lacuna-maekass.vercel.app

Resource Link
Application lacuna-maekass.vercel.app
Repository github.com/maekass/Lacuna
Methodology docs/MODEL_CARD.md
License BSL 1.1 → Apache 2.0 May 2030

Core Features

Verified deal explorer

  • 58 verified acquisitions (fertility, oncology, diagnostics, menopause, pelvic health, precision medicine)
  • Acquirers include Hologic, KKR, Pfizer, Gilead, Boston Scientific, and others named in sources
  • Dataset v5 · updated per provenance.lastUpdated in JSON
  • Sources: SEC EDGAR, press releases, investor relations (see DATA_CURATION_CHECKLIST.md)

Interactive network (ForceNetwork.tsx)

D3 force-directed graph: sector colors, deal-type edges, valuation-scaled nodes. Methodology: NETWORK_ANALYSIS_METHODOLOGY.md.

Deal flow (DealFlowChart.tsx)

Year-over-year counts from verified announcedDate — animated bars, no synthetic deal generator.

Valuation matrix (ValuationMatrix.tsx)

Sector × stage heatmap using disclosed values only; cells show company counts and averages.


Descriptive analytics (heuristics, not trained models)

Curated dataset · n=58 verified deals · Not live market data · Scores are descriptive, not forecasts.

Acquisition likelihood indicators (ExitPredictor.tsx)

Transparent factor scoring for non-acquired companies in the verified set. Fixed weights, full disclosure in UI and MODEL_CARD.md. Not a predictive model; no TensorFlow.

Company similarity (CompanySimilarity.tsx)

8-D feature vectors, cosine similarity via ml-matrix — “companies like this” for exploration.

Clustering (ClusteringAnalysis.tsx)

k-means on valuation × employees — descriptive segments (Emerging / Growth / Late-stage labels).

Optional server narratives (INFERENCE.md)

  • UI blurbs via POST /api/ai/insights → Vercel AI Gateway (anthropic/claude-sonnet-4 slug).
  • Exploratory copy only — heuristic scores on the curated dataset remain authoritative.

Health Equity & Black Women's Health

Descriptive context on disease areas with documented disparities and public market-size estimates — for learning, not buy/sell recommendations:

Disease Disparity (cited in docs) Public market-size estimate
Maternal Health Higher mortality disparity $12B
Uterine Fibroids High prevalence $34B
Lupus Higher prevalence $8B
Sickle Cell Disease Population concentration $5B
Cardiovascular Disease Higher mortality $15B

See OAIS_METHODOLOGY.md for scoring limits.


Clinical Trials Integration

  • Live: /api/clinical-trials → ClinicalTrials.gov API v2 (search, batch lookup)
  • Curated M&A: unchanged — still dataset.verified.json

Do not conflate live trial search volume with verified deal coverage.


Academic Frameworks

Six frameworks with explicit small-n limits documented in docs/ (causal DAG, fairness audit, network concentration, etc.). We state what cannot be claimed with n≈58 deals — see methodology files linked from the app.


Technology Stack

Layer Used in production UI
Next.js 16, React 19, Tailwind v4 App shell
D3.js v7, Framer Motion Visualization
simple-statistics, ml-matrix Descriptive stats / similarity
Verified JSON (getVerifiedDataset()) Default data path
PostgreSQL Optional LACUNA_DATA_MODE=db ingest only
Vercel AI Gateway + AI SDK Optional narratives + SEC classification (INFERENCE.md)
TensorFlow.js Quarantined — devDependency for Vitest only

Quick Start

git clone https://github.com/maekass/Lacuna.git
cd Lacuna
npm install
npm run dev
npm run validate:dataset
npm run infra:check
npm test

Open http://localhost:3000. Data loads from src/data/dataset.verified.json unless LACUNA_DATA_MODE=db is set and Postgres is provisioned.

Optional local Postgres: docker compose up -d → copy .env.example to .env.localnpm run db:migrate && npm run db:import. See INFRASTRUCTURE.md.


Data Curation

Manual verification — no synthetic maDeals. Workflow: DATA_CURATION_CHECKLIST.md, npm run validate:dataset, optional npm run sec:scan.


Documentation

Doc Purpose
MODEL_CARD.md Start here — what each score is and is not
INFERENCE.md Server-side LLM (AI Gateway)
DATA_CURATION_CHECKLIST.md Schema, validation, staging
NETWORK_ANALYSIS_METHODOLOGY.md Graph metrics, small-n
OAIS_METHODOLOGY.md Health impact scoring limits
INFRASTRUCTURE.md CI, Vercel, Postgres, cron, /api/health
PRODUCTION_SETUP.md Vercel env vars and migrations
SEC_INGESTION.md SEC EDGAR cron pipeline
SITE_ARCHITECTURE.md Vercel product vs Framer marketing (no analytics in Framer)
framer/BUILD_GUIDE.md Framer marketing site — copy, tokens, HTML prototype
AGENTS.md Contributor conventions

License

BSL 1.1 — research/education production use allowed; Competitive Offerings (commercial women's-health M&A intelligence products) require a separate agreement. Converts to Apache 2.0 May 2030.

mps5cy@virginia.edu for commercial licensing.


Author

Mae Kass — open educational tools for women's health data literacy and honest analytics.

About

PhD-level, investor-friendly interactive M&A visualization platform tracking women's health acquisitions, FemTech exits, digital health deal flow, and strategic buyer networks. D3.js network graphs, valuation matrices, and temporal deal analytics.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages