budgets.scenarios.run
Test whether the company can afford founder or staff pay hourly (hours per week required), biweekly (every 14 days) or monthly for a chosen number of weeks or months. Uses the same dated cash-flow calculation as Budgets > Scenarios and the terminal, protects accrued tax reserves, includes recurring and one-off costs, employer burden, a cash buffer, an optional pay ramp, and explicit monthly revenue assumptions. Returns the proposal, no-pay baseline, smaller/delayed/ramp alternatives, first cash shortfall, affordable duration, maximum rate, earliest feasible start within a bounded search and required monthly revenue. Scenario-only cash and source overrides do not edit books; source IDs must come from budgets.scenarios.context. Missing data remains incomplete. Rerun this action for every follow-up comparison instead of inventing calculations. Does not create payroll, approve pay, pay tax or transfer funds.
/api/v1/accounting/budgets.scenarios.runPermissions
Who can call it
Retries
MCP
accounting_budgets_scenarios_runFields
currencystringRequiredThree-letter currency code, such as CAD or USD.
personNamestring1–160 characters
rateobjectRequiredNo other fields
startsOnstring (date)RequiredA date, as YYYY-MM-DD.
durationobjectRequiredNo other fields
employerBurdenBpsinteger0 to 10000
minimumCashMinorstringAn amount in cents (the currency's smallest unit), written as a whole-number string such as "1250" for $12.50.
Matches ^\d{1,15}$
monthlyRevenueMinorstringAn amount in cents (the currency's smallest unit), written as a whole-number string such as "1250" for $12.50.
Matches ^\d{1,15}$
monthlyExpenseMinorstringAn amount in cents (the currency's smallest unit), written as a whole-number string such as "1250" for $12.50.
Matches ^\d{1,15}$
cashOverrideMinorstringAn amount in cents (the currency's smallest unit), written as a whole-number string such as "1250" for $12.50.
Matches ^\d{1,15}$
obligationOverridesarray of objectsat most 100 items
extraExpensesarray of objectsat most 100 items
rampobjectNo other fields
Example
curl https://app.getoatmilk.com/api/v1/accounting/budgets.scenarios.run \
-H "Authorization: Bearer $OATMILK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"currency": "CAD",
"rate": {
"basis": "hourly",
"amountMinor": "1250",
"hoursPerWeek": 1
},
"startsOn": "2026-09-01",
"duration": {
"value": 1,
"unit": "weeks"
}
}'{
"data": { … }
}Try it
Try it
Checks your input with this action’s real schema and answers like the API, with synthetic data. No key needed, and nothing changes.
curl https://app.getoatmilk.com/api/v1/accounting/budgets.scenarios.run \
-H "Authorization: Bearer $OATMILK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"currency": "CAD",
"rate": {
"basis": "hourly",
"amountMinor": "1250",
"hoursPerWeek": 1
},
"startsOn": "2026-09-01",
"duration": {
"value": 1,
"unit": "weeks"
}
}'More in Budgets and reserves.