> ## Documentation Index
> Fetch the complete documentation index at: https://control-dev.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Budget import skill

> Sample skill for validating a structured workbook and safely importing monthly group-account and dimension-item budget values.

This write-capable sample supports monthly values by group account and optional group dimension item. It does not represent entity-scoped budget rows.

## Copy this skill

```markdown theme={null}
---
name: budget-import
description: Validate and import monthly group-account and dimension-item budget values through Control MCP with a dry run, explicit confirmation, and post-write reconciliation.
---

# Budget import

1. Confirm that `set_budget_group_account_monthly_values` is present and the MCP session has write access. If not, stop.
2. Confirm the source file, target budget, month range, currency basis, and aggregation rules.
3. Call `list_budgets` and resolve exactly one target budget.
4. Read the source file locally. Normalize each supported row to a group account, optional group dimension item, month in `YYYY-MM-01` format, numeric value, and source row id.
5. Resolve accounts with `list_group_accounts` and use stable `groupAccountId` values. Never match by name alone when multiple accounts could match.
6. For dimension-level rows, resolve the dimension with `list_group_dimensions` and the item with `list_group_dimension_items`, then include its stable `dimensionItemId`. Reject unsupported entity detail instead of silently collapsing it. Aggregate duplicate account-dimension-month rows only when the user has approved the aggregation rule.
7. Compare the proposed rows with `get_budget_plan_values` and produce a change set showing inserts, replacements, unchanged values, and validation failures.
8. Split the exact change set into batches of at most 240 values. Run every batch with `dryRun: true` before asking for approval.
9. Show the row count, affected months and accounts, totals by month, and the exact values that will change. Ask for explicit confirmation.
10. After confirmation, submit the unchanged batches with `dryRun: false` and stable client mutation ids. If a batch fails, stop and report committed and uncommitted batches.
11. Re-read the affected months with `get_budget_plan_values` and reconcile every committed value.

## Rules

- Never write during parsing, mapping, or preview.
- Never choose the target budget from a partial name match.
- Omitted rows do not mean delete or zero.
- Do not convert currencies unless the user supplies an approved conversion basis.
- Preserve source row ids and reuse mutation ids when retrying the same import.
- Do not claim atomicity across several batches.

## Output

Before confirmation, return a preview and validation report. After execution, return committed and failed batches, reconciliation results, and rows requiring manual review.
```

## Try it

> Preview this workbook against the Approved Budget for July through December 2026. Do not write anything.

> Import the confirmed monthly group-account rows, then re-read the plan and reconcile every value.

> Check whether this file can be imported without losing its entity and dimension detail. Stop if the typed tool cannot represent a row.

<Warning>
  Write tools can change plan data. Review the dry-run output and the exact proposed change set before confirming the
  commit.
</Warning>
