# Monte Carlo

> Run Monte Carlo simulations for Finance Guru portfolio strategy. USE WHEN user mentions monte carlo OR run simulation OR stress test portfolio OR probability analysis OR income projections OR margin safety analysis. Supports a 4-layer portfolio (Growth, Income, Hedge, GOOGL) with operator-supplied starting values.

- Skill: `aojdevstudio/monte-carlo` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add aojdevstudio/monte-carlo`
- Raw SKILL.md: https://api.skillmd.com/api/skills/aojdevstudio/monte-carlo/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Marketing & Growth
- Author: aojdevstudio (https://skillmd.com/u/aojdevstudio)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/aojdevstudio/monte-carlo

---


# MonteCarlo

Monte Carlo simulation engine for Finance Guru's 4-layer dividend income + margin living strategy. Runs 10,000 market scenarios to project income probabilities, margin safety, and portfolio outcomes over 28 months.

## Workflow Routing

| Workflow | Trigger | File |
|----------|---------|------|
| **RunSimulation** | "run monte carlo", "simulate portfolio", "stress test" | `workflows/RunSimulation.md` |
| **IncorporateBuyTicket** | "include buy ticket", "add ticket to simulation" | `workflows/IncorporateBuyTicket.md` |

## Examples

**Example 1: Run standard Monte Carlo simulation**
```
User: "Run the monte carlo simulation with current portfolio"
-> Invokes RunSimulation workflow
-> Derives current values, then updates the hard-coded inputs in run_single_scenario()
-> Runs 10,000 scenarios with v3.0 4-layer model
-> Outputs JSON summary + full CSV + Excel to analysis/
```

**Example 2: Incorporate a buy ticket into simulation**
```
User: "Run monte carlo with my new buy ticket from 12-31"
-> Invokes IncorporateBuyTicket workflow
-> Reads buy ticket from tickets/buy-ticket-2025-12-31-*.md
-> Parses YAML frontmatter + Execution Summary table from the canonical ticket format
-> Adjusts starting portfolio values based on ticket allocations
-> Runs simulation with updated positions
```

**Example 3: Stress test margin safety**
```
User: "What's my margin call probability?"
-> Invokes RunSimulation workflow
-> Focuses on margin_call_rate and margin_ratio metrics
-> Reports 5th percentile (worst case) margin ratio
```

## Key Metrics Produced

### Success Metrics
- **P($100k income)** - Probability of reaching $100k annual dividend income
- **P($75k income)** - Probability of reaching $75k annual dividend income
- **P($50k income)** - Probability of reaching $50k annual dividend income
- **Margin call rate** - % of scenarios triggering margin call (<3:1 ratio)
- **Backstop usage rate** - % of scenarios requiring business income injection

### Portfolio Metrics
- **Total portfolio value** - Median, P5, P95 at month 28
- **Layer 1 (Growth)** - PLTR, TSLA, VOO, etc. (no new deployment)
- **Layer 2 (Income)** - Dividend funds (recurring W2-funded monthly deployment)
- **Layer 3 (Hedge)** - SQQQ ($800/month deployment)
- **GOOGL position** - Scale-in ($1,000/month deployment)

### Risk Metrics
- **Margin ratio** - Portfolio / Margin debt (must stay >3:1)
- **Max drawdown** - Worst peak-to-trough decline
- **Break-even timing** - When dividends cover margin draws

## Output Files

All outputs saved to `analysis/`:
- `monte-carlo-v3-{date}.json` - Summary statistics
- `monte-carlo-v3-full-results-{date}.csv` - All 10,000 scenarios
- `monte-carlo-v3-analysis-{date}.xlsx` - Excel workbook with charts

## Configuration

The instance-local script at `strategies/dividend_margin_monte_carlo.py` reads starting portfolio values that are hard-coded in `run_single_scenario()`. It does not auto-detect values from CSV. Before each run, follow the `RunSimulation` workflow to derive current values and edit those assignments.

Simulation parameters include:
- Starting portfolio values (manually set in `run_single_scenario()`)
- Monthly deployment amounts
- Bucket allocations and yields
- Margin schedule
- Market regime probabilities

## Model Version

**v3.0** (Jan 2026) - Full 4-layer portfolio:
- Layer 1: Growth portfolio (market returns only, no new deployment)
- Layer 2: Income portfolio (5-bucket dividend allocation)
- Layer 3: Hedge (SQQQ for crisis protection)
- GOOGL: Scale-in position (diverted from Layer 2)

Fixes applied:
- Floor at $0 for all positions (stocks can't go negative)
- Full portfolio margin ratio (all layers count toward Fidelity margin)
- Operator-supplied starting values derived from current portfolio data

