An SME's cash forecast comes from three sources: receivables aging (when money is expected to arrive), payables aging (when bills must be paid), and recurring items (salaries, social contributions, fixed-fee services, loan amortisation). The Netorigo Finance module produces a 90-day rolling cashflow forecast, recomputed minute by minute.
What the module computes
For every day in the 90-day window we compute four numbers: inflow (receivables plus recurring revenue), outflow (payables plus recurring expense), net (in minus out), and cumulative (the running net stacked on top of the opening cash position). The cumulative chart is the most-used view because it visually answers the only question a CFO actually asks: when does cash go negative?
Receivables aging is run through a probability weighting: 0-30 days at 95%, 30-60 at 80%, 60-90 at 55%, 90+ at 25%. These weights are derived per partner from the last 12 months of actual payment behaviour and recomputed monthly. A partner with chronically slow payers gets a more conservative projection automatically.
Recurring items (payroll, social contributions, insurance, equipment lease, bank fees) live in a recurring_schedule table with a cron-style date rule, amount, currency and a bidirectional link to the source contract. Payroll on the 5th, contributions on the 12th, bank fees on the 1st.
The four chart views
The dashboard renders four charts: inflow (green bars), outflow (red bars), net (a blue line straddling the zero axis), and cumulative (a purple area chart over the cash position). All four span 90 days forward. The x-axis is working-day-aware (weekends collapse), the y-axis auto-scales to the actual range.
The cumulative chart highlights two thresholds: a yellow band where the position drops below the configured safe_buffer (default: 30% of average monthly outflow), and a red band where it goes negative. Both bands are marked with bullets and a tooltip showing the exact crossing date.
The cash journal
A daily cash journal (penztari naplo) is a mandatory document in Hungary. Every working day must record the day's cash-register inflows and outflows, bank transactions, the opening and closing cash position, and a per-category subtotal (cash register, bank, card, loan, income, expense). The Netorigo module generates the journal automatically from imported bank statements plus any manual cash entries, and exports it daily to PDF for the bookkeeper.
The cash journal also feeds the forecast's 'today's opening position' value. The forecast looks forward, the journal documents the past, and both read from the same database. That consistency is the reason the whole flow feels coherent.
What we exclude
Two categories are explicitly excluded from the forecast. First, intercompany transfers. One partner has four subsidiaries, and the 14 million HUF in monthly internal transfers between them does not represent real cash movement at the group level. Items flagged transfer are filtered out. Second, audit-locked items (audit_status = LOCKED on the journal entry). Once a closed VAT period is involved, the entry cannot move, so for forecast purposes it is constant.
The hardest part
Client-supplied off-cycle salary advances. One partner runs a small cash retail business where the owner hands out informal mid-month advances to staff. These do not fit a recurring template because they have no fixed date. The fix: their payroll system (a local product called BlackPay) sends a webhook on every advance transaction, and the Finance module subtracts the matched amount from the regular payroll due on the 5th. This is the only integration that depends on a third-party system, and it is wired in only for partners who explicitly request it.
Cashflow forecasting is not divination. It is data, rules, visualisation. The 90-day horizon is far enough out that the CFO has time to draw on a credit line or call the dunning desk — and not so far out that the noise drowns the signal.