idea39-vizforge-interactive.../README.md

2.1 KiB

idea39-vizforge-interactive-economic

VizForge is a Python scenario studio for startup economics. It lets founders describe a business in a declarative YAML DSL, run stochastic simulations across macro shocks, and generate investor-facing markdown and SVG artifacts with a reproducible seed and source digest.

What it does

  • Parses a versioned business model DSL with typed validation.
  • Simulates revenue, cash runway, dilution, and LTV/CAC under macro uncertainty.
  • Compares scenarios such as recession, supply shocks, or tighter funding.
  • Generates an investor brief with KPI tables and slide-ready SVG charts.
  • Exposes a CLI for exporting reports from a YAML model file.

Package layout

  • src/idea39_vizforge_interactive_economic/models.py - typed model schema.
  • src/idea39_vizforge_interactive_economic/dsl.py - YAML parser and serializer.
  • src/idea39_vizforge_interactive_economic/simulation.py - Monte Carlo engine and sensitivity analysis.
  • src/idea39_vizforge_interactive_economic/artifacts.py - markdown report and SVG generation.
  • src/idea39_vizforge_interactive_economic/cli.py - command-line entry point.

DSL example

name: Acme AI
horizon_months: 12
starting_cash: 250000
macro:
  gdp_growth: 0.02
  inflation: 0.03
  consumer_confidence: 102
revenue_streams:
  - name: core
    starting_customers: 100
    price_per_customer: 120
    monthly_growth_rate: 0.06
    monthly_churn: 0.04
    gross_margin: 0.82
    acquisition_rate: 15
costs:
  - name: cloud
    monthly_amount: 10000
financing:
  - month: 0
    instrument: equity
    amount: 150000
    valuation: 3000000

CLI

vizforge path/to/model.yaml --output-dir vizforge-output --sims 1000 --seed 7

This writes report.md plus SVG charts into the output directory.

Development

  • Install the package in editable mode: python3 -m pip install -e .
  • Run tests: python3 -m pytest
  • Build the distribution: python3 -m build

Reproducibility

Every simulation bundle records a deterministic seed and SHA-256 digest of the parsed DSL text so the same assumptions can be replayed later.