Name: Monopolia (Monopoly + dystopia) One-liner: A time-slider visualization that shows how industries consolidate over time—lines wobble into place as the year changes and merge at merger events. Core experience: User scrubs a time slider (or scrolls) to watch market share / concentration evolve, with company “lineages” visually merging when acquisitions happen.
Build a web app with a timeline (slider + scroll-driven playback) that visualizes industry consolidation across 10–20 major industries.
Users can:
-
Select industries (toggle on/off categories)
-
Choose metrics (CR4/CR8, HHI, market share %, optionally valuations/revenue)
-
Scrub through time (year-by-year or 5-year steps) and watch:
- lines animate/wobble to the new year’s values
- lines merge at acquisition/merger events
- tooltips/annotations appear for significant mergers, regulations, shocks
- X-axis: time (year)
- Y-axis: market share % (or proxy metric)
- Each company = a line
- At merger events: acquired line merges into acquirer line (animated)
- CR4/CR8/etc. series per industry
- HHI series where available
- Industry-level trend lines (no company-level breakdown needed)
- Sankey / alluvial “ownership flows” showing consolidation waves
- Treemap by year for top firms and “others”
- Map view for banking concentration (FDIC) or broadband (geographic)
Use the U.S. Census Bureau Economic Census “Concentration of Largest Firms” tables (CR4/CR8/CR20/CR50) across NAICS industries.
- Strengths: consistent, public, covers many industries
- Weakness: 5-year cadence; doesn’t show individual company shares
Use case: Industry-level concentration time series powering a broad “atlas” mode.
Use public or public-ish datasets where you can get company-level market shares over time, plus merger metadata.
Sectors with the cleanest public data for company-level series:
- Banking deposits: FDIC Summary of Deposits / market share tooling
- Airlines: BTS TranStats market share
- Oil refining capacity: EIA refinery capacity / ownership proxies
- Defense contracting concentration: USAspending API (share of obligations)
- Health insurance: NAIC market share reports (annual-ish, varies)
Sectors likely requiring more curation (later):
- semiconductors, cloud, grocery, PBMs, retail pharmacy chains, autos, etc.
Recommended list (18) with rationale:
- Health insurance
- Banking (deposit share)
- Airlines
- Broadband ISPs
- Wireless carriers
- Oil refining
- Meatpacking (beef/pork/poultry processing)
- Agricultural seeds / agrochem
- Defense primes (federal contracting)
- Semiconductors (chips)
- Automobile manufacturers
- Retail pharmacies (chains)
- PBMs
- Grocery / big-box retail
- Freight railroads
- Cloud infrastructure (IaaS)
- Search / browsers / mobile OS (usage-share style category)
- Digital advertising / ad-tech
MVP bias: prioritize industries with clean public datasets: Census CR tables + FDIC + BTS + EIA + USAspending + NAIC.
- CR4 / CR8 / CR20 / CR50 (Concentration Ratios)
- HHI (where available OR derived when shares exist)
- Optional: number of firms, top firm share, “Others” share
- Market share % (or proxy like capacity share, deposit share, contract share)
- Optional: revenue, valuation/market cap (from public financials later)
- Optional: geography (state/county for FDIC)
A dedicated “events” dataset that stores:
- Mergers & acquisitions (A acquires B)
- Major regulatory changes
- Industry shocks (e.g., deregulation, crises, policy)
- Optional: anti-trust actions / blocked mergers
Event behavior in UI:
- At year t: acquired line visually merges into acquirer line
- Tooltip appears with acquisition details (date, price if known, note)
- Optional animated “knot/glow” node at merge point
-
Industry selector panel (multi-select toggles)
-
Metric selector (CR4/CR8/HHI vs Company Market Share)
-
Time control:
- Slider that snaps to valid data points (annual or 5-year)
- Scroll-driven story mode (optional): scrolling advances time
-
Lines wobble/relax into new positions as the year changes (smooth, premium)
-
Major mergers cause line fusions (animated)
-
Hover:
- highlights line
- shows data tooltip (share, rank, source, notes)
-
Filters:
- show top N only
- show/hide “Others”
- choose scale and smoothing
- Economic Census: 5-year ticks
- FDIC/NAIC/BTS/EIA/USAspending: annual or better Options:
- unify everything to 5-year ticks for consistency, OR
- allow “fine resolution” only when those industries are selected.
Desired “feel”:
- premium, crisp typography and whitespace
- smooth motion with subtle physicality
Suggested charting + scroll stack:
- D3.js for custom path transitions + merging behaviors
- Scrollama (or GSAP ScrollTrigger) for scroll → time mapping
- Optional: Visx if building in React but still want D3 power
- Use easing + slight noise/relaxation effect per transition (“wobble”)
- D3 transitions with elastic/back easing
- Add subtle per-line noise on intermediate frames
- Optional force-like relaxation step to avoid overlapping labels/lines
At merger event:
- acquired line end point interpolates onto acquirer line
- acquired line fades/width shrinks after merge
- acquirer line may thicken slightly or show node/halo at merge point
Backbone (concentration across industries):
- U.S. Census / data.census.gov “Concentration Ratio” tables (CR4/CR8/etc.)
Sector-specific sources:
- FDIC Summary of Deposits / market share (bank deposit concentration)
- BTS TranStats (airline market share)
- EIA refinery capacity / ownership (refining capacity shares as proxy)
- USAspending API (defense contractor share of obligations)
- NAIC market share reports (insurance; variable granularity)
Curated later (not guaranteed open CSV):
- chips, cloud, PBMs, retail pharmacy, grocery, autos (likely mix of filings + public reports)
- Scheduled ETL scripts pull and cache raw data into normalized tables
- Each datapoint includes: source, methodology notes, timestamp, unit
- Company name changes over time
- M&A causes entity lineage changes (parent/subsidiary)
- Industry definitions shift (NAICS changes, category mapping)
- Mixed resolution (annual vs 5-year)
- Create a canonical
entitytable (company/parent) - Maintain
entity_aliasesfor name changes + dataset-specific IDs - Create
merger_eventsthat define lineage edges
-
industriesid,name,naics_codes[],description,region_scope
-
metricsid,name(CR4, CR8, HHI, MARKET_SHARE, CAPACITY_SHARE, DEPOSIT_SHARE, etc.),unit,notes
-
sourcesid,name,url,license_notes,retrieved_at
-
entitiesid,canonical_name,type(company, parent, refinery, airline, bank),ticker?
-
entity_aliasesentity_id,alias,source_id,external_key?,valid_from,valid_to
-
observationsindustry_id,metric_id,entity_id?(null for industry-level metrics)date(year or full date),value,source_id,methodology,confidence
-
eventsid,industry_id,date,type(MERGER, REGULATION, SHOCK),title,description,source_id
-
mergersevent_id,acquirer_entity_id,target_entity_id,price?,notes
computed_hhi(optional derived table)top_n_snapshotsfor faster UI rendering
Ship a demo that already feels like the final product.
MVP content:
-
6–8 industries (mostly clean data sources)
- Economic Census concentration for several industries
- FDIC banking deposit share
- Airlines (BTS)
- Oil refining (EIA)
- Defense contracting (USAspending)
- Insurance (NAIC) if feasible
MVP features:
- Industry toggle panel
- Metric switcher (industry-level CR4/CR8 + at least one company-level share chart)
- Time slider
- Smooth animated transitions (“wobble”)
- Merger events on at least one dataset (even if seeded manually initially)
- Source citations in UI (per chart / per datapoint)
- Add curated merger/event layer across more industries
- Expand company-level market share datasets (PBMs, retail pharmacy, grocery, chips, cloud)
- Add geography modes (banking, broadband)
- Add “story chapters” (scroll-driven narrative essays per industry)
- Improve lineage merging logic and parent/sub mapping over time
- Add export/share: permalink state, embed, CSV export
- Time slider must handle mixed cadence (annual vs 5-year)
- Must be transparent about data limitations and proxies
- Avoid vendor lock-in where possible
- UI should remain fast with caching + precomputed snapshots
Tone options (pick later):
- neutral/academic (“market structure explorer”)
- editorial/dystopian (“where competition disappears”) Monopolia brand leans cinematic + slightly dystopian.
A builder AI should be able to:
-
propose tech stack (e.g., Next.js + D3 + Scrollama/GSAP + Postgres)
-
implement schema + ETL scripts for at least FDIC/BTS/EIA/USAspending
-
create the chart components with:
- animated transitions per year
- merge events rendering
-
create a seed dataset for merger events for one industry as proof of concept
-
produce a clean MVP UI with toggles, slider, tooltips, and citations