Skip to content

Plan ahead

Goal: know whether the money lasts, and when it would run out, before it does.

Tools: forecast_balance, then set_category_budget. Prompt: plan_next_month.

  1. Ask, with what you know.

    You: If I earn 3,200 a month, will my accounts go below zero before the end of the year?

  2. The agent projects. forecast_balance with {"until": "2026-12", "monthly_income": 3200} — two YNAB requests:

    forecast_balance (excerpt)
    {
    "message": "The balance stays above zero until 2026-12. This rests on the assumptions listed: check them with the user.",
    "accounts": [
    "Checking",
    "Savings"
    ],
    "start_balance": 3928.5,
    "assumptions": {
    "recurring": [
    {
    "payee": "MARKET FRESH",
    "amount": -182.58,
    "day": 14,
    "months_seen": 3
    },
    {
    "payee": "RAIL CO",
    "amount": -45.0,
    "day": 18,
    "months_seen": 3
    },
    {
    "payee": "STREAMFLIX",
    "amount": -13.49,
    "day": 15,
    "months_seen": 3
    },
    {
    "payee": "TENNIS CLUB - PRELEV",
    "amount": -22.0,
    "day": 20,
    "months_seen": 3
    }
    ],
    "variable_monthly": -68.7,
    "monthly_income": 3200.0,
    "one_offs": [],
    "scheduled": [
    {
    "scheduled_id": "sch-rent",
    "date": "2026-10-03",
    "amount": -950.0,
    "account": "Checking",
    "category": "Rent",
    "payee": "LANDLORD SARL",
    "memo": null,
    "frequency": "monthly",
    "transfer": false
    },
    {
    "scheduled_id": "sch-internet",
    "date": "2026-10-06",
    "amount": -29.99,
    "account": "Checking",
    "category": "Internet",
    "payee": "FIBERNET - PRELEV",
    "memo": null,
    "frequency": "monthly",
    "transfer": false
    },
    {
    "scheduled_id": "sch-phone",
    "date": "2026-10-08",
    "amount": -19.99,
    "account": "Checking",
    "category": "Phone",
    "payee": "TELCO MOBILE - PRELEV",
    "memo": null,
    "frequency": "monthly",
    "transfer": false
    },
    {
    "scheduled_id": "sch-power",
    "date": "2026-10-12",
    "amount": -64.2,
    "account": "Checking",
    "category": "Electricity",
    "payee": "POWERCO ENERGIE",
    "memo": null,
    "frequency": "monthly",
    "transfer": false
    },
    {
    "scheduled_id": "sch-insurance",
    "date": "2026-10-20",
    "amount": -420.0,
    "account": "Checking",
    "category": null,
    "payee": "HOMESAFE INSURANCE",
    "memo": null,
    "frequency": "yearly",
    "transfer": false
    },
    {
    "scheduled_id": "sch-rent",
    "date": "2026-11-03",
    "amount": -950.0,
    "account": "Checking",
    "category": "Rent",
    "payee": "LANDLORD SARL",
    "memo": null,
    "frequency": "monthly",
    "transfer": false
    },
    "… 7 more"
    ]
    },
    "months": [
    {
    "month": "2026-09",
    "start": 3928.5,
    "inflows": 3200.0,
    "outflows": 0.0,
    "end": 7128.5,
    "lowest": 3928.5
    },
    {
    "month": "2026-10",
    "start": 7128.5,
    "inflows": 3200.0,
    "outflows": -1815.95,
    "end": 8512.55,
    "lowest": 6481.56
    },
    {
    "month": "2026-11",
    "start": 8512.55,
    "inflows": 3200.0,
    "outflows": -1395.95,
    "end": 10316.6,
    "lowest": 7875.69
    },
    {
    "month": "2026-12",
    "start": 10316.6,
    "inflows": 3200.0,
    "outflows": -1395.95,
    "end": 12120.65,
    "lowest": 9669.66
    }
    ],
    "first_shortfall": null
    }
  3. The agent reads the assumptions to you before the conclusion:

    Claude: Starting from 3,928.50 across Checking and Savings, with 3,200 a month in, your recurring charges (rent 950, groceries about 182.58, electricity 64.20, the train 45, tennis 22, internet 29.99, phone 19.99, Streamflix 13.49) and about 69 of other spending, the balance keeps growing: the lowest point, 3,928.50, is today. Anything coming I should add?

  4. You correct. Add what the history cannot know:

    You: The property tax, 1,426, on 15 October.

    The agent calls again with one_offs: [{"date": "2026-10-15", "amount": -1426, "label": "property tax"}].

Assumption Where it comes from Change it with
Starting balance today’s balance of the open on-budget accounts account_ids
Recurring charges and income the same payee in 3 of the last 4 full months, each month within 20 % of its median — (returned in assumptions.recurring)
Other spending average of the last 3 full months, recurring charges excluded variable_monthly
Income what you give; otherwise the last 3 months’ average monthly_income
One-off amounts only what you give one_offs

Details: Forecasting.

  • months[].start, inflows, outflows, end: the month’s balance and flows.
  • months[].lowest: the lowest point within the month, day by day — the one that tells you whether a payment would bounce.
  • first_shortfall: the first month whose lowest point is below zero, or null.

Ask “what am I subscribed to, and what does it cost a year?”: find_recurring_charges lists what the plan pays at about the same amount most months (3 of the last 4), costliest over a year first, with its category and whether a YNAB schedule already covers it. Regular spending at one merchant counts too (groceries, here); a charge paid once a year does not, unless it has a schedule.

find_recurring_charges
{
"charges": [
{
"payee": "LANDLORD SARL",
"monthly_amount": -950.0,
"yearly_amount": -11400.0,
"day": 3,
"months_seen": 3,
"category": "Rent",
"scheduled": true
},
{
"payee": "MARKET FRESH",
"monthly_amount": -182.58,
"yearly_amount": -2190.96,
"day": 14,
"months_seen": 3,
"category": "Groceries",
"scheduled": false
},
{
"payee": "POWERCO ENERGIE",
"monthly_amount": -64.2,
"yearly_amount": -770.4,
"day": 12,
"months_seen": 3,
"category": "Electricity",
"scheduled": true
},
{
"payee": "RAIL CO",
"monthly_amount": -45.0,
"yearly_amount": -540.0,
"day": 18,
"months_seen": 3,
"category": "Transport",
"scheduled": false
},
{
"payee": "FIBERNET - PRELEV",
"monthly_amount": -29.99,
"yearly_amount": -359.88,
"day": 6,
"months_seen": 3,
"category": "Internet",
"scheduled": true
},
{
"payee": "TENNIS CLUB - PRELEV",
"monthly_amount": -22.0,
"yearly_amount": -264.0,
"day": 20,
"months_seen": 3,
"category": "Tennis",
"scheduled": false
},
{
"payee": "TELCO MOBILE - PRELEV",
"monthly_amount": -19.99,
"yearly_amount": -239.88,
"day": 8,
"months_seen": 3,
"category": "Phone",
"scheduled": true
},
{
"payee": "STREAMFLIX",
"monthly_amount": -13.49,
"yearly_amount": -161.88,
"day": 15,
"months_seen": 3,
"category": "Subscriptions",
"scheduled": false
}
],
"yearly_total": -15927.0,
"months_looked_at": [
"2026-05",
"2026-06",
"2026-07",
"2026-08"
]
}

You: Prepare October’s budget from this.

The agent proposes next month’s amounts category by category — recurring charges first, then the rest from recent spending — and applies those you accept with set_category_budget, one previewed change each.

Unofficial project. We are not affiliated, associated, or in any way officially connected with YNAB or any of its subsidiaries or affiliates. The official YNAB website can be found at https://www.ynab.com. The names YNAB and You Need A Budget, as well as related names, tradenames, marks, trademarks, emblems, and images are registered trademarks of YNAB. avenir-mcp is provided as is, without warranty, and is not financial advice. Legal notice · Privacy