# Startup Financial Model Reference

This reference provides the methodology for generating a 12-month revenue projection, cost structure analysis, and combined Profit & Loss (P&L) statement for early-stage startups.

**Disclaimer:** All outputs generated by this model are **not financial advice**. They are planning tools for directional guidance only. Consult a qualified financial professional before making business decisions based on these projections.

---

## Input Validation and Required Fields

Before generating any projection, all required inputs must be collected and validated. Do not write partial output if any required field is missing.

### Required Inputs

| Field | Description | Validation |
|-------|-------------|------------|
| **Initial revenue** | Starting monthly revenue (Month 1) | Must be numeric; zero allowed with confirmation |
| **Growth rate** | Month-over-month growth percentage | Must be numeric; 0% allowed (flat projection) |
| **Start month/year** | Projection start date (e.g., January 2026) | Must be valid month/year combination |
| **Cost items** | List of fixed and variable costs | Optional (see EC-005 below) |

### Missing Input Behavior

If any required field is missing, **prompt the user for the missing input** using AskUserQuestion. Halt generation until all required fields are provided. No partial output should be written to disk.

**Rule:** Do not write partial projections. If inputs are incomplete, halt generation and request the missing values before proceeding.

---

## Revenue Projection Methodology

Generate a 12-month revenue projection table based on user-provided assumptions.

### Assumptions

Document all assumptions clearly above the revenue table:

- **Initial monthly revenue:** The revenue amount for Month 1
- **Monthly growth rate:** The MoM (Month-over-Month) percentage applied each month
- **Growth model:** Compound growth (each month builds on previous month)

**Uncertainty range:** Actual results will vary. Early-stage projections carry a wide uncertainty range, typically +/- 30-50% from projected values. For growth rates above 100% MoM, the uncertainty range widens significantly and a warning label should be added.

### Revenue Formula

```
revenue[month_1] = initial_revenue
revenue[month_n] = revenue[month_n-1] * (1 + growth_rate / 100)
cumulative_revenue[month_n] = sum(revenue[month_1..month_n])
```

### Revenue Table Template

```
| Month   | Revenue    | MoM Growth | Cumulative Revenue |
|---------|------------|------------|--------------------|
| Month 1 | $5,000.00  | -          | $5,000.00          |
| Month 2 | $5,500.00  | 10.0%      | $10,500.00         |
| Month 3 | $6,050.00  | 10.0%      | $16,550.00         |
| ...     | ...        | ...        | ...                |
| Month 12| $12,853.05 | 10.0%      | $107,178.82        |
```

All monetary values are rounded to 2 decimal places.

---

## Cost Structure Analysis

Categorize all business costs as fixed or variable, then project the 12-month total for each.

### Cost Types

- **Fixed costs:** Costs that remain constant regardless of revenue (e.g., rent, salaries, subscriptions)
- **Variable costs:** Costs that scale with revenue or units sold (e.g., COGS, payment processing fees, commissions)

### Cost Table Template

```
| Cost Category       | Type     | Monthly Amount | 12-Month Total |
|---------------------|----------|----------------|----------------|
| Office Rent         | Fixed    | $2,000.00      | $24,000.00     |
| Salaries            | Fixed    | $8,000.00      | $96,000.00     |
| COGS                | Variable | $1,000.00      | $12,000.00     |
| Marketing           | Variable | $500.00        | $6,000.00      |
|---------------------|----------|----------------|----------------|
| **Summary Total**   |          | **$11,500.00** | **$138,000.00**|
```

The summary row at the bottom aggregates all cost line items. Variable costs may fluctuate month-to-month if tied to revenue; in the simplified model, use the average or base-month amount for the Monthly Amount column.

---

## Combined P&L Statement

Assemble revenue and cost data into a monthly Profit & Loss table. The Cash Position column tracks cumulative net cash flow as a running total across all months.

### P&L Table Template

```
| Month   | Revenue    | Costs      | Net P&L     | Cash Position |
|---------|------------|------------|-------------|---------------|
| Month 1 | $5,000.00  | $11,500.00 | -$6,500.00  | -$6,500.00    |
| Month 2 | $5,500.00  | $11,500.00 | -$6,000.00  | -$12,500.00   |
| Month 3 | $6,050.00  | $11,500.00 | -$5,450.00  | -$17,950.00   |
| ...     | ...        | ...        | ...         | ...           |
| Month 12| $12,853.05 | $11,500.00 | $1,353.05   | -$35,041.13   |
```

**Formulas:**
- `Net P&L[month] = Revenue[month] - Costs[month]`
- `Cash Position[month] = Cash Position[month-1] + Net P&L[month]` (cumulative running total)

### Output File

Write the complete projection to: `devforgeai/specs/business/financial/projections.md`

The output file must begin with the disclaimer line: "**Disclaimer:** This is not financial advice."

Create the output directory if it does not exist.

---

## Edge Cases

| Scenario | Behavior |
|----------|----------|
| Zero or negative initial revenue | Prompt user to confirm; proceed with $0 as floor; document as assumption |
| 0% monthly growth rate | Generate flat revenue line; MoM Growth column shows 0.0% for all months |
| Variable costs exceed 100% of revenue | Net P&L shows negative values; Cash Position tracked cumulatively showing growing deficit |
| Very high growth rate (> 100% MoM) | Compute projection normally; widen uncertainty range note with explicit warning label |
| No cost items provided | Omit cost structure table; P&L shows revenue-only view with note that costs were not provided |

---

## Output Format Rules

1. All monetary values rounded to 2 decimal places
2. Tables use ASCII pipe-delimited format for terminal compatibility
3. Percentage values displayed with 1 decimal place (e.g., 10.0%)
4. Negative values prefixed with minus sign (e.g., -$6,500.00)
5. Each section separated by horizontal rule (`---`)
6. Assumptions documented before their corresponding table
