# plan

> Reference for the plan tool of Business Plan: models, scenarios, plan documents and exports, with every action.

Source: https://bizplan.geenius.io/docs/reference/plan/

The financial model (assumptions in; monthly profit and loss, cash flow, balance sheet and KPIs out) and the business plan that quotes it. Money is whole cents. Numbers in the plan come only from the model: write {{pl.revenue.Y1}}, never typed digits. Unknown arguments are refused by name and nothing is half-done.

Call it as `geenius_bizplan(tool: "plan", action: "<action>", args: {...})` through Geenius OS.

## Actions

| Action | What it does |
|---|---|
| `plan_templates` | The model templates, markets (NL, DE, English international), designs, lengths and statuses. |
| `plan_model_create` | Start a model from a template (country NL, DE or OTHER; start month; horizon 1, 2, 3 or 5 years). Every cell the template cannot know is flagged needs_owner_value, illustrative or to_verify. |
| `plan_model_list` | The workspace's models. |
| `plan_model_read` | View summary (default), cells, open (what still needs the owner) or scenarios. |
| `plan_model_update_assumption` | Set one number by path, for example streams[pro].priceCents. Money is in cents. The cell becomes confirmed unless the status says otherwise. An invalid model is not saved. |
| `plan_model_set_cells` | Set several numbers at once, at most 200. All or nothing: one bad cell saves nothing. |
| `plan_model_item` | Add, replace or remove a whole line: streams, payroll, opex, capex, equity, loans or grants. |
| `plan_model_run` | Run the model: integrity, flags, one line per year, break-even and lowest cash; refs asks for named cells such as pl.revenue.Y2. |
| `plan_model_scenarios` | List, save or remove scenarios (overrides by path). "base" is the inputs as they are. |
| `plan_model_compare` | Scenarios side by side for named results: revenue, EBITDA, net income, lowest cash, funding, break-even. |
| `plan_model_sensitivity` | Move inputs one at a time by plus or minus a percentage and show what a result does, largest swing first. |
| `plan_model_export_markdown` | The statements as Markdown (language en, nl or de; granularity annual, quarterly, monthly or mixed). |
| `plan_model_versions` | The model's saved revisions, newest first. |
| `plan_model_restore` | Put the model back to an earlier revision, saved as a new revision so the restore can itself be undone. |
| `plan_content_create` | Start a plan document for a model in a market (nl, de or en): the market's sections, empty. |
| `plan_content_list` | The workspace's plan documents. |
| `plan_content_read` | The outline (sections and block ids), or one block. |
| `plan_content_set_block` | Add or replace a block (text, table or kpis) with variants and refs. Figures are written as {{pl.revenue.Y1}}; typed digits must match a listed ref. |
| `plan_content_remove_block` | Remove a block. |
| `plan_content_update` | Change the title, design, language, market or the pitch slide order. A design change never changes a word or a number. |
| `plan_content_check` | The truth guard and the market's section list: which figures do not match the model, which required sections are missing. |
| `plan_content_versions` | The plan's saved revisions, newest first. |
| `plan_content_restore` | Put the plan back to an earlier revision, saved as a new revision. |
| `plan_content_export_markdown` | The plan as Markdown (concise, short or long). Refused when a figure does not match the model; marked DRAFT while inputs are unconfirmed; final needs everything confirmed and approved. |

> [!TIP]
> Ask for the exact arguments of any action with `action: "help", of: "plan_templates"`. The server answers from its own definitions, so that answer is always current.

> [!NOTE]
> Edits name the revision they read (expect_rev) or simply win. An AI that writes a section writes placeholders for every figure, so a made-up number is refused by the truth guard. The lender and subsidy checks run in the app; they are not an action of this tool.

