How to Monitor current Cashflow and Future Cashflow

Cashflow management is critical for SMEs. Knowing your current cash position and forecasting future cashflow helps you make informed financial decisions, avoid liquidity crises, and plan for growth. Odoo's enhanced dashboard and accounting features make it easier than ever to visualize your company's financial health in real-time.

This guide walks you through creating two powerful dashboards:

  • Cashflow Dashboard: Real-time view of current cash position, bank balances, and recent transactions
  • Future Cashflow Dashboard: Forecast upcoming cash movements based on invoices, payments, and projections

Both dashboards use Odoo's native reporting tools and can be customized for your specific needs—no advanced technical knowledge required.

Part 1: Understanding Odoo's Cashflow Capabilities

What's New in Odoo for Finance

Odoo introduced significant improvements to financial reporting and dashboard functionality:

  • Refined Dashboards: Create dashboards from scratch, switch to full-screen chart views, and apply global filters across widgets
  • Real-Time Data: All dashboards pull live data from your accounting module, updating instantly as transactions post
  • Interactive Widgets: Drill-down capabilities let you click on metrics to see detailed transaction-level data
  • Cash Flow Statement: Native reporting under Accounting → Reporting → Financial Reports → Cash Flow Statement
  • Flexible Filtering: Apply date filters, compare periods (month/quarter/year), and customize date ranges

Key Accounting Reports to Know

Before building dashboards, familiarize yourself with Odoo's built-in financial reports:
Report Purpose Location
Cash Flow Statement Historical cash flows categorized by operating, investing, and financing activities Accounting → Reporting → Financial Reports
Aged Receivables Outstanding customer invoices by due date Accounting → Reporting → Aged Reports
Aged Payables Outstanding vendor bills by due date Accounting → Reporting → Aged Reports
Bank Journal Summary Current cash and bank balances Accounting → Bank Journal Widget
Profit & Loss Revenue and expenses for a period Accounting → Reporting → Financial Reports

Part 2: Creating Your First Dashboard – Cashflow (Current Position)

Step 1: Navigate to the Dashboard App

  1. From the Odoo main menu, click Dashboards
  2. You'll see pre-built dashboards in the left sidebar categorized by app (Sales, Accounting, HR, etc.)
  3. Click + Create to start building a new dashboard
  4. Give it a descriptive name: "Current Cashflow" or "Daily Cashflow Snapshot"

Step 2: Add Your First Widget – Bank Balance Overview

Start with the most critical metric: how much cash you have right now.

To add a Bank Balance widget:

  1. In your new dashboard, click Edit (pencil icon)
  2. Click + Add Widget
  3. Select Gauges or Number chart type
  4. Configure the widget:
    1. Data Source: Select the Accounting module
    2. Model: account.journal
    3. Filter: Journal type = Bank
    4. Measure: balance (or use a filter for cash-only accounts)
    5. Name: "Total Bank Balance"
  5. Click Save and Close

Pro Tip: If you have multiple bank accounts, create separate widgets for each to see individual balances at a glance.

Step 3: Add Cash Position by Account

Show a breakdown of your cash across different accounts (e.g., Primary Bank Account, Petty Cash, Payroll Account).

To add a Bank Account Breakdown widget:

  • Click + Add Widget
  • Select Bar Chart or Pie Chart
  • Configure:
    • Data Source: Account module
    • Model: account.account
    • Filter: Account type = Bank (or Cash)
    • Group By: Account name
    • Measure: Account balance
    • Name: "Bank Accounts Breakdown"
  • This creates a visual showing your cash distributed across accounts
  • Save and Close

Step 4: Add Recent Transactions Feed

Show the 10 most recent bank transactions to spot incoming payments or outgoing expenses.

To add a Recent Transactions widget:

  • Click + Add Widget
  • Select List chart type (best for transaction feeds)
  • Configure:
    • Data Source: Accounting module
    • Model: account.move.line
    • Filter: Journal type = Bank
    • Sort: Date (descending – newest first)
    • Columns to Display: Date, Description, Account, Debit, Credit, Balance
    • Limit: 10 rows
    • Name: "Recent Bank Transactions"
  • Save and Close

Step 5: Add KPI Cards for Quick Insights

Create summary cards showing key metrics at a glance.

To add KPI Cards:

  1. Click + Add Widget
  2. Select KPI Card (Number chart type with color coding)
  3. Create three cards: Card 1 – Today's Cash In
    1. Measure: Sum of debits (money received)
    2. Filter: Date = Today, Type = Bank Receipt
    3. Display: "RM 12,500 (Example)"
  4. Card 2 – Today's Cash Out
    1. Measure: Sum of credits (money paid)
    2. Filter: Date = Today, Type = Bank Payment
    3. Display: "RM 3,200 (Example)"
  5. Card 3 – Net Daily Cashflow
    1. Calculated: Today's In – Today's Out
    2. Display: "RM 9,300 (Example)" (shown in green if positive, red if negative)

Part 3: Creating Your Second Dashboard – Future Cashflow (Forecasting)

The Future Cashflow dashboard helps you predict cash needs 30–90 days ahead by factoring in:

  • Outstanding customer invoices (Accounts Receivable)
  • Outstanding vendor bills (Accounts Payable)
  • Manual sales projections
  • Expected payroll and expense payments

Step 1: Create a New Dashboard

  • Go to Dashboards → + Create
  • Name it: "Cashflow Forecast" or "90-Day Cashflow Projection"

Step 2: Add Aged Receivables by Due Date

This shows when you can expect money from customers.

To add Aged Receivables widget:

  • Click Edit → + Add Widget
  • Select Stacked Area Chart or Line Chart
  • Configure:
    • Data Source: Accounting module
    • Model: account.move.line (or use Aged Receivables report)
    • Filter: Document type = Customer Invoice, State = Posted
    • Group By: Due date (or use date buckets: 0–30 days, 31–60 days, 61+ days)
    • Measure: Sum of invoice amounts
    • Name: "Expected Cash Inflows (AR by Due Date)"
  • This visualizes when customer payments are expected to arrive
  • Save and Close

Step 3: Add Aged Payables by Due Date

This shows when you need to pay suppliers and bills.

To add Aged Payables widget:

  1. Click + Add Widget
  2. Select Stacked Area Chart or Line Chart
  3. Configure:
    1. Data Source: Accounting module
    2. Model: account.move.line (or use Aged Payables report)
    3. Filter: Document type = Vendor Bill, State = Posted
    4. Group By: Due date (use same date buckets as receivables)
    5. Measure: Sum of bill amounts
    6. Name: "Expected Cash Outflows (AP by Due Date)"
  1. Save and Close

Step 4: Add Net Cashflow Forecast (30, 60, 90 Days)

Create a timeline showing projected net cashflow over the next 3 months.

To add Net Cashflow Forecast:

  1. Click + Add Widget
  2. Select Column Chart or Combo Chart
  3. Configure:
    • Create calculated measures:
      • Cash In (30 days): Sum of AR due in next 30 days
      • Cash Out (30 days): Sum of AP due in next 30 days
      • Net (30 days): Cash In – Cash Out
    • Repeat for 60 and 90-day periods
    • Display as grouped columns showing positive (green) and negative (red) values
    • Name: "Net Cashflow Forecast – Next 90 Days"
  4. Save and Close

 

Visual Example:
Month 1: Cash In RM 50,000 | Cash Out RM 35,000 | Net RM 15,000 ✓
Month 2: Cash In RM 42,000 | Cash Out RM 48,000 | Net (RM 6,000) ✗
Month 3: Cash In RM 65,000 | Cash Out RM 40,000 | Net RM 25,000 ✓

Step 5: Add Manual Sales Projection Input

If you have a custom sales forecast not yet in invoices, add a widget to factor in projected orders.

Note: In Odoo, you can:

  •   Create a custom field on Sales Orders to mark "Projected" orders
  •   Filter for projected orders and display expected revenue
  •   Or use the native Cash Flow Forecast Report (if available in your module set)

To add Projected Sales:

  1. Click + Add Widget
  2. Select List or Pivot Table
  3. Configure:
    • Model: sale.order
    • Filter: State = Draft (projected), Expected delivery date within next 90 days
    • Columns: Customer, Amount, Expected Delivery Date
    • Name: "Projected Sales (Not Yet Invoiced)"
  4. Save and Close

Step 6: Add Cash Runway Indicator

Show how many days of operations you can sustain with current cash plus expected inflows.

To add Cash Runway widget:

  1. Click + Add Widget
  2. Select Gauge Chart or KPI Card
  3. Configure:
    • Measure: (Current Bank Balance + Expected 30-day inflows) / Average Daily Burn Rate
    • Formula: If you spend RM 5,000/day on average, and have RM 200,000 cash + RM 80,000 expected inflows = 56 days of runway
    • Name: "Cash Runway (Days)"
    • Color: Green if > 60 days, Yellow if 30–60 days, Red if < 30 days
  4. Save and Close

Part 4: Advanced Features & Customization

Adding Global Filters

Make your dashboards interactive by allowing users to filter by date range, company, or cost center.

To add a global filter:

  1. In Edit mode, click + Add Filter (usually at the top)
  2. Select the filter type:
    • Date Range Filter: For comparing different periods
    • Company Filter: If multi-company setup
    • Cost Center Filter: To see cashflow by department
    • Salesperson/Manager Filter: For individual forecasts
  1. Configure which widgets the filter applies to
  2. Save

Example: A date range filter lets managers quickly compare "Current Quarter" vs. "Last Quarter" cashflow.

Using Drill-Down to Investigate Details

Odoo dashboards support drill-down: click a chart bar to see underlying transactions.

Example Workflow:

  1. Manager sees "Receivables Past Due" showing RM 75,000 in red
  2. Clicks the red bar
  3. Odoo opens a detailed list of overdue invoices with customer names, amounts, and due dates
  4. Manager can then click an individual invoice to see full details and take action

Creating Dashboards from Pivot Tables & Spreadsheets

For advanced users, Odoo allows building dashboards from:

  •   Pivot Tables: Create a pivot view (Reporting → Pivot), then save it as a dashboard widget
  •   Spreadsheets: Use Odoo Spreadsheets to create formulas that pull live data, then insert into dashboards

Advantage: Greater flexibility for custom calculations not available in standard widgets.

Setting Up Automated Alerts

Configure your dashboard to send alerts when cashflow metrics hit thresholds.

Example Alerts:

  •   "Bank balance fell below RM 50,000"
  •   "Aged receivables > 30 days exceeded RM 100,000"
  •   "Cash runway dropped below 30 days"

To set up alerts (requires Odoo Automation or third-party integration):

  1. Go to Settings Automation Automated Actions
  2. Create a new automation rule
  3. Trigger: When a condition is met (e.g., balance < 50,000)

4. Action: Send email, create task, or post to Slack/Teams

Part 5: Best Practices for Effective Cashflow Dashboards

  1. Define Your KPIs First

Before building, ask: What decisions will this dashboard help me make?

Key cashflow KPIs:

  •   Current bank balance and trend
  •   Days of cashflow (runway)
  •   Overdue receivables
  •   Upcoming bill payments
  •   Working capital ratio
  1. Keep It Simple

Cluttered dashboards overwhelm. Aim for:

  •   5–7 main widgets per dashboard
  •   Group related metrics together
  •   Use color coding (green = healthy, yellow = caution, red = action needed)
  1. Refresh Regularly

Odoo dashboards auto-update, but:

  •   Schedule manual reviews (daily for high-velocity businesses, weekly for others)
  •   Set up email digest summaries to share with stakeholders
  •   Use mobile dashboard access to check key metrics on-the-go
  1. Link Dashboards to Action

A good dashboard prompts action:

  •   See overdue AR → Click to view invoices → Send follow-up emails
  •   See low cash runway → Adjust payment schedule or collect deposits faster
  •   See negative forecast → Plan for credit line or reduce expenses
  1. Audit Data Quality

Before relying on dashboards:

  •   Verify all invoices are properly posted
  •   Confirm bank journals are set up correctly
  •   Reconcile bank accounts monthly (Odoo made this faster with OCR & PDF previews)

·   Check that payment terms are accurate

Part 6: Troubleshooting Common Issues

Issue: Dashboard Shows No Data

Cause: No transactions posted or filters are too restrictive.

Solution:

  1. Verify transactions exist in the Accounting module
  2. Check filters (date range might be wrong)
  3. Ensure the right accounts/journals are selected
  4. Go to Accounting Chart of Accounts to confirm accounts exist

Issue: Cashflow Numbers Don't Match Manual Records

Cause: Unposted journal entries, draft invoices, or bank reconciliation issues.

Solution:

  1. Ensure all invoices are Posted (not Draft)
  2. Check for unposted journal entries (Accounting Journal Entries → Filter by Posted = False)
  3. Reconcile your bank account (Accounting Bank Reconciliation)
  4. Verify currency if using multi-currency

Issue: Dashboard Loads Slowly

Cause: Too much data or complex filters.

Solution:

  1. Limit date ranges (show last 90 days, not all historical data)
  2. Use pre-aggregated reports instead of live lists
  3. Separate dashboards by type (Daily, Weekly, Monthly)
  4. Archive old transactions if they're no longer needed

Issue: Filter Doesn't Apply to All Widgets

Cause: Widgets aren't linked to the filter.

Solution:

  1. In Edit mode, click the filter
  2. Ensure "Apply to" includes the widgets you want to filter

3. Save and reload

Part 7: Sample Dashboard Layouts

Small SME Layout (Fast & Essential)

For a 10–20 person company that needs quick daily cashflow visibility:

┌─────────────────────────────────────────┐
│ CURRENT CASHFLOW DASHBOARD │
├─────────────────────────────────────────┤
│ [Current Bank Balance] [Today's Net] │
│ RM 250,000 RM +8,500 │
├─────────────────────────────────────────┤
│ Bank Accounts (Pie Chart) │
│ • Primary Bank: RM 200,000 │
│ • Petty Cash: RM 15,000 │
│ • Payroll Account: RM 35,000 │
├─────────────────────────────────────────┤
│ Recent Transactions (List) │
│ Dec 12: Invoice #1234 Paid +RM 45,000 │
│ Dec 12: Vendor Bill #5678 Due -RM 12,300 │
│ Dec 11: Payroll Posted -RM 65,000 │
└─────────────────────────────────────────┘

┌─────────────────────────────────────────┐
│ FUTURE CASHFLOW DASHBOARD │
├─────────────────────────────────────────┤
│ [Cash Runway: 48 Days] │
├─────────────────────────────────────────┤
│ Next 30 Days Net Cashflow │
│ Inflow: RM 125,000 Outflow: RM 89,000 │
│ Net: RM +36,000 ✓ │
├─────────────────────────────────────────┤
│ Overdue Receivables: RM 18,500 (5 items) │
│ Upcoming Bills: RM 72,000 (due in 15 d.) │
└─────────────────────────────────────────┘

Growing Business Layout (Detailed Analysis)

For a 20–50 person company needing deeper insights:

Dashboard Tab 1: Daily Snapshot

  •   Current bank balance (gauge)
  •   Daily in/out (KPI cards)
  •   Bank account breakdown (pie chart)

Dashboard Tab 2: 90-Day Forecast

  •   Receivables by due date (area chart)
  •   Payables by due date (area chart)
  •   Net cashflow projection (combo chart)
  •   Cash runway indicator (gauge)

Dashboard Tab 3: Collection & Payment Status

  •   Overdue invoices list (with follow-up actions)
  •   Upcoming bills list (to approve for payment)
  •   Top 10 customers by receivable balance

·   Payment performance vs. terms

Conclusion

Odoo's enhanced dashboard and accounting capabilities make professional cashflow forecasting accessible to any SME. By building these two dashboards—Current Cashflow and Future Cashflow—you gain:

Real-time visibility into your cash position
Predictive insights to avoid surprises
Faster decision-making with data at your fingertips
Better stakeholder confidence with transparent reporting

Next Steps:

  1. Start with the simple Current Cashflow dashboard (2–3 widgets)
  2. Test with real data for 1–2 weeks
  3. Add the Future Cashflow dashboard once you're comfortable
  4. Iterate based on what metrics matter most to your business
  5. Share dashboards with your team and refine based on feedback

For additional help, explore Odoo's native Cash Flow Statement report and consider training your team on interactive dashboard features. Happy forecasting! 💰

Appendix: Useful Accounting Reports in Odoo

Report Access Path Best For
Cash Flow Statement Accounting → Reporting → Financial Reports → Cash Flow Historical cashflow by activity type
Aged Receivables Accounting → Reporting → Aged Reports Collection strategy planning
Aged Payables Accounting → Reporting → Aged Reports Payment scheduling
General Ledger Accounting → Reporting → General Ledger Transaction-level audit
Trial Balance Accounting → Reporting → Trial Balance Profitability analysis
Balance Sheet Accounting → Reporting → Balance Sheet Asset/liability snapshot
We believe every company is unique with different processes, even within the same industry. We work with our clients to make sure the processes fits your company, instead of the other way around.
LET'S MEET!
phone-handset linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram