Skip to content

Latest commit

 

History

History
353 lines (231 loc) · 10.5 KB

File metadata and controls

353 lines (231 loc) · 10.5 KB

Monopolia — Project Overview

0) Working Title + Positioning

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.


1) Product Concept

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

2) Target Visualizations (Core Charts)

A) “Consolidation Lines” (Primary)

  • 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)

B) “Concentration Metrics” (Secondary / Overlay)

  • CR4/CR8/etc. series per industry
  • HHI series where available
  • Industry-level trend lines (no company-level breakdown needed)

C) Optional Views (later)

  • Sankey / alluvial “ownership flows” showing consolidation waves
  • Treemap by year for top firms and “others”
  • Map view for banking concentration (FDIC) or broadband (geographic)

3) Data Strategy (Two-tier)

Tier 1: Universal “Concentration Backbone” (broad coverage)

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.

Tier 2: Sector-specific “Company Share” datasets (for the sexy line merges)

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.

4) Initial Industry List (10–20)

Recommended list (18) with rationale:

  1. Health insurance
  2. Banking (deposit share)
  3. Airlines
  4. Broadband ISPs
  5. Wireless carriers
  6. Oil refining
  7. Meatpacking (beef/pork/poultry processing)
  8. Agricultural seeds / agrochem
  9. Defense primes (federal contracting)
  10. Semiconductors (chips)
  11. Automobile manufacturers
  12. Retail pharmacies (chains)
  13. PBMs
  14. Grocery / big-box retail
  15. Freight railroads
  16. Cloud infrastructure (IaaS)
  17. Search / browsers / mobile OS (usage-share style category)
  18. Digital advertising / ad-tech

MVP bias: prioritize industries with clean public datasets: Census CR tables + FDIC + BTS + EIA + USAspending + NAIC.


5) Metrics to Support

Industry-level metrics

  • CR4 / CR8 / CR20 / CR50 (Concentration Ratios)
  • HHI (where available OR derived when shares exist)
  • Optional: number of firms, top firm share, “Others” share

Company-level metrics

  • 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)

6) Merger / Event Layer

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

7) UX / Interaction Design

Primary Controls

  • 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

Display Behaviors

  • 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

Time Resolution Strategy

  • Economic Census: 5-year ticks
  • FDIC/NAIC/BTS/EIA/USAspending: annual or better Options:
  1. unify everything to 5-year ticks for consistency, OR
  2. allow “fine resolution” only when those industries are selected.

8) Visual/Animation Requirements (The “Fancy/clean” part)

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”)

Wobble Implementation Ideas

  • D3 transitions with elastic/back easing
  • Add subtle per-line noise on intermediate frames
  • Optional force-like relaxation step to avoid overlapping labels/lines

Merge Animation

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

9) Data Sources (Explicit Targets)

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)

10) Data Pipeline + Normalization

Ingestion

  • Scheduled ETL scripts pull and cache raw data into normalized tables
  • Each datapoint includes: source, methodology notes, timestamp, unit

Normalization Problems to solve

  • 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)

Approach

  • Create a canonical entity table (company/parent)
  • Maintain entity_aliases for name changes + dataset-specific IDs
  • Create merger_events that define lineage edges

11) Proposed Data Model (Minimal, extensible)

Core tables

  • industries

    • id, name, naics_codes[], description, region_scope
  • metrics

    • id, name (CR4, CR8, HHI, MARKET_SHARE, CAPACITY_SHARE, DEPOSIT_SHARE, etc.), unit, notes
  • sources

    • id, name, url, license_notes, retrieved_at
  • entities

    • id, canonical_name, type (company, parent, refinery, airline, bank), ticker?
  • entity_aliases

    • entity_id, alias, source_id, external_key?, valid_from, valid_to
  • observations

    • industry_id, metric_id, entity_id? (null for industry-level metrics)
    • date (year or full date), value, source_id, methodology, confidence
  • events

    • id, industry_id, date, type (MERGER, REGULATION, SHOCK), title, description, source_id
  • mergers

    • event_id, acquirer_entity_id, target_entity_id, price?, notes

Computed artifacts

  • computed_hhi (optional derived table)
  • top_n_snapshots for faster UI rendering

12) MVP Definition (Fast, impressive, credible)

MVP Goal

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)

13) Roadmap (Post-MVP)

  1. Add curated merger/event layer across more industries
  2. Expand company-level market share datasets (PBMs, retail pharmacy, grocery, chips, cloud)
  3. Add geography modes (banking, broadband)
  4. Add “story chapters” (scroll-driven narrative essays per industry)
  5. Improve lineage merging logic and parent/sub mapping over time
  6. Add export/share: permalink state, embed, CSV export

14) Engineering Notes / Constraints

  • 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

15) Branding / Copy Guidance

Tone options (pick later):

  • neutral/academic (“market structure explorer”)
  • editorial/dystopian (“where competition disappears”) Monopolia brand leans cinematic + slightly dystopian.

16) Deliverable Expectations (What another AI should produce next)

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