KachiFlow Forecast: a forecast you can check
Monthly trial balances in, a balanced three-statement forecast out, every method tested on its own history before it is used.
KachiFlow Forecast turns monthly year-to-date trial balances into a 6 to 24 month forecast of the income statement, balance sheet and cash. It proves each method on past months before trusting it, and adds machine learning and simulation only where they measurably help. It is the forecasting side of KachiFlow: an approved forecast becomes a client's budget.
The problem
An accountant with monthly trial balances should get a forecast that balances, that they can explain line by line, and that has been tested against what actually happened. Spreadsheet forecasts usually fail on the last two: the drivers are guesses and nobody checks them.
- Accounting first. Every statement line is forecast by an accounting driver: days of revenue, margin, % of revenue, roll-forward, fixed amount. Machine learning only for lines no driver explains, and only when it wins.
- Prove before trusting. A method is used only after it has reproduced past months to the cent and been scored month by month on history it hadn't seen.
- Every month balances. Cash is the balancing line, and an indirect cash flow bridge has to land on it, or the forecast stops.
- People decide. Suggestions are one click; nothing switches by itself. Every change is logged with who made it.
How it works
- Load. Year-to-date trial balances, many months at once, and the chart of accounts. Hard stops: debits not equal to credits, duplicate accounts, non-numeric amounts.
- Map. Each account to a standard statement line. An unmapped account stops every calculation.
- Rebuild. Work out a month's drivers from the month itself, roll it forward, compare: it must reproduce the actuals to the cent.
- Backtest. Forecast each past month from the months before it only. Misses per line, worst first.
- Driver map. Per line: candidate drivers, how stable each ratio is, how well it tracks revenue, and a suggested method. The user picks.
- Inputs. What no ratio predicts: dividends, equipment purchases (with a useful life), a monthly sales plan.
- Forecast. Statements and cash bridge by month, scenarios, and versions frozen for approval. Export to Excel on the company's own template.
- Check and simulate. A machine learning check per income statement line, and Monte Carlo ranges on cash, net income and revenue.
Backtest: does the method work on this company?
On 28 testable months of a synthetic manufacturer (revenue about 450k a month), the 3-month average, three driver choices and a useful life for new equipment cut the average monthly cash miss from 35.6k to 22.7k, with equipment exact to the cent.
Average absolute cash miss per month, CAD. Lower is better.
- The 3-month average is better on every working-capital line (receivables -23%, inventory -32%) and slower on step changes: a salary raise shows up a month late.
- Same month last year catches the March year end but loses April, and one prior year is a noisy guide. It ships as an option, not the default.
Machine learning: only where it wins
Each test month is predicted by a model fitted only on earlier months, then compared with the accounting method over the same 14 months. It is offered only at a 10% or bigger improvement.
| Line | Method in force | Its miss | Ridge | Neural net | Offered |
|---|---|---|---|---|---|
| Repairs in G&A (2nd entity) | fixed amount | 2,998 | 1,830 (-39%) | 2,563 (-15%) | Ridge |
| Freight | % of revenue | 282 | 246 (-13%) | 344 (+22%) | Ridge |
| Salaries | fixed amount | 714 | 672 (-6%) | 864 (+21%) | No |
| Cost of sales | margin | 1,605 | 2,171 (+35%) | 4,373 (+172%) | No |
Average absolute miss per month, CAD, 14 test months.
A small regularised linear model won only where a lagged pattern existed; the neural net never beat it. With 30 monthly points that is the expected answer, and the check makes it visible instead of assumed.
Monte Carlo: how wrong could it be?
The forecast runs 500 times in under two seconds. Each simulated month borrows how one real past month went (collection days, margins, fixed costs, revenue) all together, so the middle of the range is the forecast and the width is the company's own history.
| Lowest month-end cash in a run | CAD |
|---|---|
| 1 run in 10 at or below | -77,328 |
| Middle run | -48,591 |
| 9 runs in 10 at or below | 8,674 |
With a 1.08M dividend planned for March, 87% of runs close a month below zero.
What it can't show: a shock that never happened in the months it draws from. That is what scenarios are for, and a scenario can be simulated too.
Controls
- Every number traces back to an accepted trial balance by its SHA-256 fingerprint. Original files are kept unchanged.
- Every change that moves a forecast is logged per user: mappings, driver choices, inputs, scenarios, versions.
- Second-person approval: changing an account's mapping, or approving a forecast version, takes someone other than the person who made it.
- Approved versions are frozen and checked against their fingerprint every time they are opened.
- Every sign-in needs a password and an authenticator code.
Limits and next
- Every result above is from synthetic data built for testing. Next is a real, scrubbed trial balance.
- 30 months of history: results are indicative, not conclusive.
- Revenue is one monthly number. A sales plan by product group is next.
- One company at a time, no consolidation yet.
Get the monthly update by email and early access when it opens.