UNPKG

monte-carlo-simulator

Version:

Business decision framework with Monte Carlo risk analysis - instant via npx

481 lines (365 loc) 17.5 kB
# Monte Carlo Business Decision Framework **Professional Examples-First Monte Carlo Simulation Framework** ## ⚡ TL;DR - Quick Start **Want to analyze a business decision right now?** ```bash # Professional Examples-First Framework git clone https://github.com/rmurphey/monte-carlo-simulator cd monte-carlo-simulator && npm install && npm run build # Quick validation - should show 7 working simulations npm run cli list # Run your first analysis npm run cli -- run simple-roi-analysis ``` **Result**: Get confidence intervals like *"75% chance of $200K+ savings, 15% chance of breaking even, 10% chance of loss"* instead of *"AI tools will probably save money"*. --- ## 🤔 Why Use This? ### The Problem You're facing strategic business decisions with uncertainty: - "Should we hire 5 developers or invest in automation tools?" - "When will this marketing campaign pay for itself?" - "What happens to our runway if growth slows down?" - "Is this $200K technology investment worth the risk?" **Traditional approaches fall short:** - 📊 **Spreadsheets**: Static, single-point estimates that miss risk ("We'll definitely get 10x ROI") - 🤷 **Gut feeling**: No data backing your $500K decision ("It feels right") - 📈 **Basic projections**: "Best case we make $X" (but what about worst case?) ### The Solution Turn uncertain business questions into **rigorous risk analysis with confidence intervals**: **Instead of**: "Marketing will probably generate 10x ROI" **Get**: "Marketing has 70% chance of 5-15x ROI, 20% chance of 2-5x ROI, 10% chance of loss" **Instead of**: "Hiring 5 devs will increase velocity" **Get**: "5 devs: 80% chance of 2.8x velocity, 20% chance of 1.2x due to coordination overhead" **Instead of**: "AI tools will save money" **Get**: "AI tools: 75% chance of $200K+ annual savings, 15% chance of breaking even, 10% chance of $30K annual loss" ### Who This Is For - **CTOs/Engineering Leaders**: Technology investment ROI with working examples - **Startup Founders**: Resource allocation models with proven templates - **Product Managers**: Feature prioritization using battle-tested simulations - **Business Analysts**: Risk assessment with copy-modify workflow - **AI Agents/Developers**: Programmatic simulation generation from examples ### When NOT to Use This - Decisions under $10K (overkill) - Completely deterministic problems (no uncertainty) - Immediate decisions (analysis takes time) - When you have dedicated data science team with specialized tools ## 🚀 Getting Started ### Prerequisites - Node.js 16+ and npm - Basic understanding of business metrics ### Installation & Setup ```bash # Clone and set up the framework git clone https://github.com/rmurphey/monte-carlo-simulator cd monte-carlo-simulator # Install dependencies and build npm install npm run build # Verify installation npm run cli --help ``` #### Troubleshooting Setup **If you encounter issues during installation:** ```bash # Check Node.js version (requires 16+) node --version # Clean install if dependencies fail rm -rf node_modules package-lock.json npm install # Rebuild if TypeScript compilation fails npm run build # Test core functionality npm run cli list npm run test ``` **Common Issues:** - **Node.js version**: Requires Node 16+ for TypeScript features - **Permission errors**: Use `npm install` (not `sudo npm install`) - **Build failures**: Run `npm run build` after any code changes - **Missing simulations**: Verify you're in the project root directory ### **Professional Examples-First Workflow** 🎯 The framework is designed around copying and modifying working examples: ```bash # Discover available simulations npm run cli list # Run any simulation with default parameters npm run cli -- run simple-roi-analysis # Override specific parameters npm run cli -- run simple-roi-analysis --set initialInvestment=75000 --set monthlyBenefit=6000 # See all available parameters for any simulation npm run cli -- run simple-roi-analysis --list-params # Validate simulation configurations npm run cli -- validate examples/simulations/simple-roi-analysis.yaml ``` ### **Interactive Parameter Exploration** 🎛️ Adjust parameters in real-time and see results update instantly: ```bash # Launch interactive mode for any simulation npm run cli -- run simple-roi-analysis --interactive # Interactive simulation selection npm run cli interactive ``` **Interactive Features:** - **Real-time parameter adjustment** - Change values and see immediate impact on results - **Before/after comparison** - Track how parameter changes affect outcomes - **Parameter validation** - Type checking and range enforcement with helpful error messages - **Dynamic parameter discovery** - No static documentation to maintain ### **Examples-First Simulation Creation** ✨ Create business simulations by copying and modifying working examples: ```bash # Copy a relevant example to start cp examples/simulations/simple-roi-analysis.yaml my-roi-analysis.yaml # Validate your changes npm run cli -- validate my-roi-analysis.yaml # Run your custom simulation npm run cli -- run my-roi-analysis.yaml # Or create interactively npm run cli create --interactive ``` **Examples-First Benefits:** - **Proven Patterns**: Start from tested, working business simulations - **Copy-Modify Workflow**: Professional approach - copy example, customize for your needs - **No Learning Curve**: Skip complex configuration, focus on business logic - **Agent-Friendly**: Ideal for AI-assisted simulation generation - **Battle-Tested**: All examples validated and production-ready ### Run Your First Analysis ```bash # Discover available simulations npm run cli list # Run example simulations by ID npm run cli run simple-roi-analysis npm run cli run technology-investment # Generate comprehensive analysis documents npm run cli run simple-roi-analysis --format=document npm run cli run technology-investment --format=document --output=analysis.md # Interactive parameter exploration npm run cli run simple-roi-analysis --interactive # See all available commands npm run cli --help ``` ## 📊 What You Can Do Right Now ### 1. **Run Working Examples** ```bash # Simple ROI analysis - basic pattern for learning npm run cli run examples/simulations/simple-roi-analysis.yaml # Technology investment - realistic business decision npm run cli run examples/simulations/technology-investment.yaml # Team scaling - advanced with business intelligence npm run cli run examples/simulations/team-scaling-decision.yaml # QA strategy analysis - manual vs automated testing ROI npm run cli run simulations/manual-qa-roi.yaml npm run cli run simulations/qa-strategy-comparison.yaml # Scenario analysis - compare risk scenarios npm run cli run examples/simulations/ai-tool-adoption/ai-tool-adoption.yaml npm run cli run examples/simulations/ai-tool-adoption/conservative.yaml npm run cli run examples/simulations/ai-tool-adoption/aggressive.yaml ``` **Expected output:** ``` 🔬 Monte Carlo Simulation: AI Tool Adoption Analysis (Conservative) 📊 Results (1,000 iterations): Annual Tool Cost ($): $10,800 Net Annual Benefit ($): $61,538 ± $16,261 ROI Percentage: 570% ± 151% 🔬 Monte Carlo Simulation: AI Tool Adoption Analysis (Aggressive) 📊 Results (1,000 iterations): Annual Tool Cost ($): $4,800 Net Annual Benefit ($): $565,544 ± $84,549 ROI Percentage: 11,782% ± 1,761% ``` ### 2. **Study Working Patterns** ```bash # See all available examples with agent-friendly patterns ls examples/simulations/ cat examples/README.md # Study the YAML structure that actually works cat examples/simulations/simple-roi-analysis.yaml ``` ### 3. **Create Your Own Simulation** Copy and modify working examples: ```yaml # Based on proven working patterns name: "Your Business Decision" category: "Business" description: "Analysis of your specific strategic decision with uncertainty modeling" version: "1.0.0" tags: [strategy, decision] parameters: - key: investment label: "Investment Amount ($)" type: number default: 50000 simulation: logic: | const annualBenefit = investment * (0.15 + random() * 0.1) const roi = ((annualBenefit - investment) / investment) * 100 return { roi: Math.round(roi * 10) / 10 } ``` All examples are **tested and working**. **For AI Agents:** - **Complete guide:** [docs/AGENT.md](docs/AGENT.md) for specifications, patterns, and interactive exploration workflows **For Interactive Development:** See [docs/INTERACTIVE_STUDIO.md](docs/INTERACTIVE_STUDIO.md) for the planned interactive simulation definition and real-time execution system. ## 💰 Real Business Impact Examples ### Before This Framework: - **"AI tools will save money"** Spend $50K/year hoping for the best - **"Hire 5 developers"** $600K commitment based on gut feeling - **"Marketing campaign will work"** $100K budget with crossed fingers ### With This Framework: - **AI Tool Decision**: "75% chance of $200K+ savings, 10% chance of loss" Data-driven decision with risk assessment - **Hiring Decision**: "5 devs have 20% chance of negative ROI due to coordination overhead" Consider smaller team or different structure - **Marketing Decision**: "Campaign A has 60% success rate vs Campaign B's 40%" Choose better-odds campaign ## 📚 Documentation ### For Humans: - **[examples/](examples/)** - Working simulation examples you can run and modify - **[docs/CLI_REFERENCE.md](docs/CLI_REFERENCE.md)** - Complete CLI guide with examples and best practices - **[docs/TECHNICAL.md](docs/TECHNICAL.md)** - Framework architecture and advanced features - **[docs/VALIDATION.md](docs/VALIDATION.md)** - Bulletproof validation system and error handling ### For AI Agents: - **[docs/AGENT.md](docs/AGENT.md)** - Complete technical specifications, working patterns, schema requirements - **[examples/README.md](examples/README.md)** - Detailed simulation patterns with validation rules ## 🛠 Current Capabilities ### ✅ What Works Today - **Monte Carlo simulation engine** with statistical analysis - **Business intelligence functions** (ROI, payback period, runway calculations) - **YAML-based configuration** with bulletproof validation - **TypeScript framework** for complex custom logic - **Professional CLI** with comprehensive parameter validation - **Production-grade reliability** (92 passing tests with schema validation) ### ✅ **Current Capabilities** - **Risk scenario comparison** - Side-by-side analysis with `--compare` flag - **Export capabilities** - JSON/CSV/Document output with `--format` and `--output` options - **Document generation** - Comprehensive analysis reports with text-based visualizations - **Parameter overrides** - Custom values via CLI arguments or parameter files - **Statistical analysis** - P10/P50/P90 percentiles, mean, standard deviation ## 🔧 Development & Customization ### Working with Examples ```bash # Copy and modify existing examples cp examples/simulations/simple-roi-analysis.yaml YOUR_SIMULATION.yaml # Edit parameters and simulation logic # Then run your custom simulation npm run cli run YOUR_SIMULATION.yaml ``` ### Advanced CLI Features **Interactive Config Editing** - Full simulation development environment: ```bash # Launch interactive session with complete config editing capabilities npm run cli run examples/simulations/simple-roi-analysis.yaml --interactive npm run cli run examples/simulations/technology-investment.yaml --interactive # Interactive commands available in session: # [r] Run simulation again [c] Edit full config [s] Save changes # [e] Export results [h] Help [q] Quit # Config editor sub-commands: # [e] Edit full YAML in $EDITOR [t] Test config [u] Undo changes # [r] Run with changes [b] Back to main menu # Features: # ✅ External editor integration (nano, vim, VS Code, etc.) # ✅ Safe temporary files with automatic cleanup and backups # ✅ Config history with undo/redo functionality # ✅ Real-time validation and change detection # ✅ Perfect for rapid prototyping and iterative development ``` **Interactive Workflow Example**: ```bash # Start session - shows initial simulation results npm run cli -- run simple-roi-analysis.yaml --interactive # Enter config editing mode > c # Edit full YAML configuration > e # Opens config in your $EDITOR, make changes, save and exit # Automatic validation shows what changed: # 🔍 Changes detected: # • Modified parameter: initialInvestment (100000 → 250000) # • Updated simulation logic: added risk adjustment # Test changes with quick 100-iteration run > t # Save changes permanently or undo if needed > s # Save to original file with backup > u # Undo changes and revert ``` **Parameter Files** - Batch analysis with custom values: ```bash # Create parameter file with custom values echo '{"initialCost": 75000, "adoptionRate": 0.8}' > my-scenario.json # Run simulation with custom parameters npm run cli run simulations/ai-investment-roi/baseline.yaml --params my-scenario.json --verbose # Save results for analysis npm run cli run simulation.yaml --params scenario.json --output results.json --iterations 5000 ``` **Development Commands**: ```bash # Core development npm run dev # Watch mode for development npm run build # Compile TypeScript npm run test # Run full test suite (92 tests - all passing) npm run test:watch # Run tests in watch mode npm run test:coverage # Run tests with coverage report # Code quality npm run lint # Check for linting issues npm run lint:fix # Auto-fix linting issues npm run format # Format code with Prettier npm run typecheck # TypeScript type checking # Validation npm run cli validate YOUR_SIMULATION.yaml # Bulletproof YAML validation with detailed errors npm run validate:yaml # Validate all YAML files npm run validate:json # Validate all JSON files npm run test:docs # Test documentation examples npm run test:agent-apis # Test agent API functionality # CLI commands npm run cli list # List available simulations npm run sim # Quick interactive mode ``` ### Project Structure ``` src/ ├── framework/ # Core Monte Carlo engine ├── cli/ # Command-line interface ├── examples/ # Working example simulations └── test/ # Test cases and validation examples/simulations/ # 7 working examples ├── simple-roi-analysis.yaml ├── technology-investment.yaml ├── team-scaling-decision.yaml ├── software-investment-roi.yaml ├── marketing-campaign-roi.yaml └── ai-tool-adoption/ # Scenario examples ``` ### NPX Quick Start (Zero Installation) ```bash # Run simulations directly without installation npx github:rmurphey/monte-carlo-simulator list npx github:rmurphey/monte-carlo-simulator run simple-roi-analysis npx github:rmurphey/monte-carlo-simulator run technology-investment --set toolCost=30000 # Parameter discovery and validation npx github:rmurphey/monte-carlo-simulator run simple-roi-analysis --list-params npx github:rmurphey/monte-carlo-simulator validate examples/simulations/simple-roi-analysis.yaml ``` ### Current Capabilities - **NPX support** - Run directly with `npx github:rmurphey/monte-carlo-simulator` - **Local development** - Full development environment available - **GitHub distribution** - Zero installation required via NPX ## 🤝 Contributing This project is designed for: - **Business professionals** creating analysis templates - **Developers** extending the framework capabilities - **AI agents** generating simulations from natural language ### Quick Contributions: 1. **Add business scenarios** by creating YAML configurations 2. **Improve existing examples** with better parameters/logic 3. **Add industry-specific functions** to the business intelligence library 4. **Write tests** for new simulation patterns ## 🎯 Success Stories *"Used this to analyze whether to hire 3 senior developers or 5 junior developers. The coordination overhead modeling showed 3 seniors had 85% chance of better velocity. Saved $180K in salary costs."* - CTO, Series B Startup *"Marketing campaign analysis showed our 'safe' strategy had lower expected value than the 'risky' one due to market timing. Switched strategies and hit 340% ROI instead of projected 180%."* - Growth Lead, SaaS Company *"Runway analysis with multiple scenarios helped us decide between raising Series A vs extending runway. Monte Carlo showed 73% chance we'd hit milestones with current burn rate."* - Founder, Pre-seed Startup ## 🔮 Vision **Transform risky business guesses into data-driven decisions with confidence intervals.** Every strategic question becomes a working simulation: - *"When does generative AI cost outweigh benefits?"* Monte Carlo analysis with cost/benefit distributions - *"Should we hire 5 developers or invest in automation?"* Risk-adjusted comparison with coordination modeling - *"What's the optimal team scaling strategy?"* Multi-scenario analysis with velocity and cost projections ## 📄 License MIT License - See LICENSE file for details --- *Turn uncertainty into confidence. Make better business decisions with data.*