Forecast API
Forecasting answers the question monetr exists to answer: given what I've committed to and when I get paid, what does the next few months look like? It walks forward day by day, firing your funding schedules and your spending due dates in order, and reports the balance at each step.
Nothing here writes anything. All four endpoints are pure calculation, including the two that are POSTs. They're POSTs because they take a body describing a hypothetical, not because they change anything.
Forecasting can be slow on an account with a lot of spending objects, so the handlers have their own timeouts. Exceed them and you get a 408 rather than a hung request.
GET Get a forecast
Projects the account's balance forward from now, returning an event for each day something happens. This is what draws the timeline charts in the app.
In the app: The timeline charts on the funding and goals pages.
Auth: API key, subscription required.
Path parameters
Query parameters
Example
This account has two envelopes: a Coffee expense with 1315 in it, due on the 1st, and a New Laptop goal with 45000 in it. One funding schedule pays every other Friday, next on August 30th.
Two events: payday, where both envelopes get filled, and the 1st, where the Coffee envelope empties because that's when it comes due. The goal doesn't appear in the second event because nothing happened to it that day.
startingBalance is not your bank balance
It's the total currently sitting in your expenses and goals, 1315 + 45000 here. Paused spending objects are left out
of the sum entirely. The forecast projects how allocated money moves, not how much is in the account, so plotting these
numbers against the balances from Get balances will not line up.
Response attributes
Each event:
Each funding event:
Each spending event:
Errors
QUERY Estimate the cost of a new spending object
Answers "if I added this expense, what would it cost me per paycheck?" without creating anything. Use it to show someone the damage before they commit.
In the app: Nothing in the app uses this today. The new expense and goal forms work out their estimate another way.
The POST version of this endpoint is deprecated and will be removed in a future release. Send the same body with
QUERY instead.
Auth: API key, subscription required.
Path parameters
Body
The rule field is called recurrenceRule here, not ruleset like it is everywhere else on spending. Same
format, different key. It's an inconsistency in the API, not a typo in these docs.
This endpoint doesn't run the shared validation, so mistakes come back as plain messages rather than a problems tree.
Example
estimatedCost is how much a single funding event would need to put aside, in the currency's smallest unit. Here that's
80 monthly expense, which checks out: this schedule pays every other Friday, so roughly
two paychecks cover each month.
Despite what the underlying function is called, this is the most common per-event contribution over the next two years, not the mean. Contributions vary from period to period, and the mode is the number you would actually quote someone, where an average would land between two amounts that never occur.
History
- Switched to the
QUERYmethod, since this only reads data and never changes anything. - Deprecated the
POSTversion. It still works the same for now, but will be removed in a future release.
Errors
QUERY Estimate the next contribution
Answers "how much of my next paycheck is already spoken for?" It adds up what every spending object on one funding schedule will take at its next funding event.
In the app: The committed amount shown next to each funding schedule in the funding list.
The POST version of this endpoint is deprecated and will be removed in a future release. Send the same body with
QUERY instead.
Auth: API key, subscription required.
Path parameters
Body
Example
Compare that against the schedule's estimatedDeposit from Get a funding
schedule to work out what's left over.
History
- Switched to the
QUERYmethod, since this only reads data and never changes anything. - Deprecated the
POSTversion. It still works the same for now, but will be removed in a future release.
Errors
QUERY Estimate the starting amount for a recurring expense
Answers "if I'd been budgeting for this all along, how much would already be set aside for it today?" Give it a
recurring transaction and the funding schedule that would pay for it, and it works out what
an expense for that charge would have in it right now. Use the result as the currentAmount when you create the
expense, so it starts out where it would be instead of at zero.
In the app: Nothing in the app uses this yet.
Auth: API key, subscription required.
Path parameters
Body
The expense it imagines uses the recurring transaction's ruleset for its due dates and its lastAmount as the target.
It starts from the last time that charge was due, then adds up what the funding schedule would have put in since then,
the same way a real expense gets funded. Whatever's in there today is the answer.
If the funding schedule is newer than that last charge, it gets treated like it has always existed, with its paydays carried back on the same days. So a funding schedule you set up yesterday still gives you a real number.
Example
This account has an $8 GitHub charge on the 15th of every month, and gets paid every other Friday. The request was made on October 26th, 2026.
There's been one payday since the charge on the 15th, October 16th, and there are three paydays before the next charge on November 15th. So each one puts aside a third of the 2.66 set aside.
Response attributes
A recurring transaction's ruleset lands on the earliest day the charge usually happens. If the charge tends to post a
few days after that, you'll get close to zero during those few days, since this assumes the charge already happened.