# Runway plan, 2027: the sweep

This is the model used in chapter 31 of [the VisiMark tutorial](../tutorial.md):
the runway plan of chapters 29 and 30, with two of its assumptions declared as
ranges to sweep and a sheet of readings for `visimark simulate`. Every number
below that follows from another number is written by `visimark fmt`.

## Team

| Team        | Heads |   Salary |     Cost |
|-------------|------:|---------:|---------:|
| Engineering |     6 | 11000.00 | 67980.00 |
| Sales       |     3 |  9000.00 | 27810.00 |
| Operations  |     2 |  7500.00 | 15450.00 |

```vmark #team
param raise precision 3 in [0%, 6%] lattice 2% = default 3%

Cost = ROUND(Heads * Salary * (1 + raise), 2)

headcount = SUM(Heads)
payroll   = SUM(Cost)
```

The team of **11**<!--vmark=team.headcount--> people costs
**111240.00**<!--vmark=team.payroll--> PLN a month, after a
**3.0%**<!--vmark=team.raise|percent--> raise.

## Runway

```vmark #runway
param cash      precision 2 = default 2000000.00
param overhead  precision 2 = default 21000.00
param new_hires precision 0 integer in [0, 6] lattice 1 = default 2
param hire_cost precision 2 = default 10500.00

burn = team.payroll + overhead + new_hires * hire_cost
months precision 1 = cash / burn

assert months >= 12
```

With **2**<!--vmark=runway.new_hires--> new hires the company spends
**153240.00**<!--vmark=runway.burn--> PLN a month, so the cash lasts
**13.1**<!--vmark=runway.months--> months. The plan requires at least twelve.

## Sweep

```vmark #sweep
report ledger assertions broken
report deltas on runway.months among all
report gates
report best scalar runway.new_hires direction max among feasible
report forbidden
```
