See it in action
From open invoices and bills to a projected cash curve over the coming months — in a couple of clicks.
Spot a cash squeeze before it happens
Your invoices and bills already carry due dates. This app turns them into a forward cash projection — opening balance, expected inflows and outflows, your manual items, and a running balance you can chart — so a shortfall never takes you by surprise.
Your cash, on a curve
Watch the balance dip and recover across the horizon — the squeeze jumps off the chart.
Everything you need to see ahead
Running projection
Opening balance plus each period's net rolls forward into a projected closing balance — the number treasury actually cares about.
From real due dates
Open invoices and bills are bucketed by their due date, honouring payment terms and installments automatically.
Manual known items
Add payroll, rent, tax or a loan drawdown that isn't an invoice yet — positive in, negative out, bucketed by date.
Weekly or monthly
Project over the cadence that fits your business, for as many periods as you need.
Compute opening
Pull the current balance of your bank and cash accounts with one click, or set the starting figure yourself.
Overdue handling
Lump amounts already past due into the first period, or exclude them to forecast only what is coming due.
Table & chart
Read the full period breakdown, then plot the projected balance as a line chart that makes a squeeze obvious.
Snapshots & cron
Save forecasts and let an optional weekly job roll the latest one forward to today automatically.
Multi-company
Each forecast is scoped to one company's receivables, payables and cash.
Up and running in four steps
New forecast
Start date, cadence and horizon.
Set opening
Compute from bank & cash accounts.
Add manual items
Payroll, rent, loans — anything known.
Compute
Read the table and the chart.
Real screens, real data
Every screenshot below is the actual app running on Odoo 19 — no mockups.
The full period breakdown
Opening, expected in and out, manual items, net and projected balance for every period — with totals and an audit trail.
Add what Odoo doesn't know yet
Known future movements — payroll, rent, a loan — go on the Manual Items tab and flow straight into the projection.
Never be surprised by a cash shortfall again
Install in seconds. No Enterprise, no external libraries, no lock-in. Works on Odoo 19 Community and Enterprise.
Full manual included. The app ships with a complete in-app documentation page (Apps > this module > Documentation) covering setup, the projection, opening balance, manual items and FAQs. Questions? bambooforge.labs@gmail.com
BambooForge Cash Flow Forecast
See where your cash is heading. This app buckets your open customer invoices and vendor bills by due date over a horizon you choose, adds any manual known items, and projects a running cash balance — with a chart — so you can spot a squeeze before it happens.
This page is the complete manual. Follow it top to bottom and you can install, build a forecast, read the projection and fix the common issues without contacting support.
Overview
A forecast is built from three sources, period by period:
- Expected in — the open (unpaid) amounts on your customer invoices, placed in the period of their due date.
- Expected out — the open amounts on your vendor bills, by due date.
- Manual items — known future movements not yet in Odoo (payroll, rent, a loan drawdown), positive for money in, negative for money out.
Starting from your opening cash, each period's net (in − out + manual) rolls forward into a projected balance, shown as a table and a line chart.
It honours payment terms: an invoice paid in installments is split across the periods of each installment's due date.
Requirements
- Odoo 17.0.
- The Invoicing/Accounting app (account). Installing this app pulls it in automatically.
No Enterprise modules and no external Python libraries are required.
Installation
- Copy bambooforge_cash_forecast into your addons path.
- Update the apps list (Apps > Update Apps List).
- Search for Cash Forecast and click Install.
A new top-level Cash Forecast app appears, and a Cash Flow Forecast entry is added under Accounting > Reporting.
Quick start
- Open Cash Forecast > Forecasts and click New.
- Set the Start Date, the Period (weekly or monthly) and the Number of Periods to project.
- Click Compute Opening to pull the current balance of your bank and cash accounts (or type an opening figure).
- Optionally add Manual Items on the second tab.
- Click Compute.
The forecast switches to Computed. The Projection tab shows each period's opening, expected in/out, manual, net and projected balance; the Projection Chart button plots the balance over time.
Reading the projection
Each period row shows:
- Opening — the projected balance carried in from the previous period.
- Expected In / Out — open receivables and payables due in the period.
- Manual — your manual items for the period.
- Net — In − Out + Manual.
- Projected Balance — Opening + Net, carried forward.
A negative projected balance is highlighted, and the chart makes a coming squeeze obvious at a glance.
Opening balance
Compute Opening sums the balance of your liquidity (bank and cash) accounts up to the start date. You can override the figure if you want to forecast from a different starting position.
Overdue amounts
With Include Overdue on (the default), amounts already past due are lumped into the first period — they are cash you still expect to collect or pay. Turn it off to forecast only amounts coming due from the start date onward.
Manual items
On the Manual Items tab, add a date, a description and a signed amount for any known future movement that is not yet an invoice or bill — payroll, rent, tax payments, a planned loan drawdown. Positive amounts are inflows, negative are outflows. They are bucketed by date like everything else.
Automating refreshes
A scheduled action Cash Forecast: Recompute Latest ships disabled. Enable it under Settings > Technical > Scheduled Actions to roll the most recent forecast forward to today and recompute on a schedule (weekly by default).
Frequently asked questions
- Amounts are split across several periods.
- That is the payment terms at work: an invoice paid in installments contributes to the period of each installment's due date. This is the realistic behaviour.
- Items beyond my horizon don't appear.
- Correct — only amounts due within the projected periods are shown. Increase the number of periods to look further ahead.
- The opening balance looks wrong.
- Compute Opening uses your bank and cash accounts. If you keep cash elsewhere, type the opening figure manually.
- Does it forecast in foreign currency?
- Figures are presented in your company currency, summed from the company-currency amounts of each entry.
- Does it work with multiple companies?
- Yes. Each forecast is scoped to one company's receivables, payables and cash.
Support
Questions or ideas: bambooforge.labs@gmail.com.
Usage
This section walks through the day-to-day treasury routine: how a controller builds a forecast on Monday morning, reads it, keeps it honest through the week, and re-uses it every period. It assumes the app is installed and that you have the Billing access right (account.group_account_invoice), which the menu requires.
Where to find it
Two menu paths open the same list of forecasts:
- Cash Forecast > Forecasts — the dedicated top-level app.
- Accounting > Reporting > Cash Flow Forecast — for accountants who live in the Accounting app.
Both open the Cash Flow Forecasts list. Computed forecasts show a green Computed badge; a projected ending balance below zero is shown in red so a looming shortfall is visible before you even open the record.
Building the weekly forecast
- Click New. The name is assigned automatically from the Cash Forecast sequence (e.g. CF/2026/0007) and is read-only.
- Under Scope, set the Start Date (typically today), the Period (Weekly for a rolling 13-week treasury view, or Monthly for a longer horizon), and the Number of Periods. Leave Include Overdue on so amounts already past due are collected into the first period — they are still cash you expect to move.
- Press Compute Opening. This sums the posted balance of your bank and cash accounts (account type Bank and Cash) dated before the start date and writes it into Opening Balance. If you hold cash the ledger does not know about, type the figure over it.
- Open the Manual Items tab and add any known movement that is not yet an invoice or bill — payroll run, quarterly VAT payment, rent, a planned loan drawdown. Enter a Date, a Description and a signed Amount (positive = money in, negative = money out).
- Press Compute. The record moves to Computed, the Projection tab fills with one row per period, and a chatter note records how many periods were projected.
Reading the result
The Projection tab lists, for each period: Opening, Expected In (open receivables due in the period), Expected Out (open payables), Manual, Net (In − Out + Manual) and Projected Balance (Opening + Net, carried into the next row). Any period whose projected balance turns negative is highlighted in red. The Position group at the top summarises Total Inflow, Total Outflow and the final Ending Balance.
Click the Projection Chart stat button to open the same data as a line graph (with a supporting list view) so the trajectory — and any dip below the line — is obvious at a glance.
A worked example
A distributor with €40,000 opening cash builds a weekly forecast over eight periods. Open customer invoices total €95,000 spread across their due dates; open vendor bills total €78,000. On the Manual Items tab the controller adds -12,000 on the 28th (monthly payroll) and +20,000 mid-month (an expected grant). After Compute, week 4 shows Expected In €8,000, Expected Out €22,000 and the €12,000 payroll, giving a Net of −€26,000 and a Projected Balance that dips red. The controller pulls two large customer payments forward and re-runs the forecast to confirm the dip is cleared.
Keeping it current
Through the week, edit the Manual Items or change the Scope and press Recompute — the period rows are rebuilt from scratch each time. Use Reset to Draft to clear the projection and start over. To roll your latest forecast forward automatically, enable the scheduled action Cash Forecast: Recompute Latest under Settings > Technical > Scheduled Actions; it re-bases the most recent computed forecast per company to today and recomputes on its schedule.
Upgrading & version compatibility
This build targets Odoo 19.0. Each Odoo major series (17.0, 18.0, 19.0) has its own dedicated build of this module — always install the build that matches your Odoo version. Mixing a build with a different Odoo series is not supported.
Patch upgrades (same series, e.g. 19.0.1.0.0 → later)
Back up your database and filestore first.
Replace the module folder with the newer build.
Restart Odoo with the module updated:
./odoo-bin -c your.conf -u bambooforge_cash_forecast -d your_db
Odoo applies any schema/data changes automatically. Your existing records and configuration are preserved.
Cross-version migration (e.g. Odoo 17 → 18)
Upgrading Odoo itself is a database migration handled by Odoo's standard upgrade tooling. When you migrate the database to the next Odoo series, install the matching build of this module for that series. Data created by this module carries over with the database migration.
After any upgrade the module's scheduled actions resume on their normal cadence — no manual re-activation is required.
Uninstallation
You can remove this module at any time from Apps → (this module) → Uninstall, or from the command line. Uninstalling is clean and reversible by reinstalling — but note what is and is not deleted.
What is removed
- The module's own tables and every record in them (3 models, prefixed cash.*) — this is the data this module created.
- The menus, actions, views and reports this module installed.
- Its scheduled actions (cron jobs) — they stop immediately on uninstall.
What is preserved
- Your standard Odoo data (partners, products, sales, invoices, inventory moves) is not deleted — this module only reads and annotates it; the underlying records stay.
- Attachments and chatter messages on standard records are kept.
As always, take a database backup before uninstalling in production.
Changelog
19.0.1.0.0
Current release for Odoo 19.0. This build includes:
- Project your cash position over the coming weeks or months from open receivables and payables (by due date), plus manual known items.
- With a running projected balance, pivot and chart.
Feature additions and fixes ship as new builds on the Odoo Apps store; this page and the module's version reflect the current published release. Always keep the build matched to your Odoo series (see Upgrading & version compatibility).
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module