The contract_forecast module enhances the Contract module by generating and managing forecast periods for each contract line. It automatically calculates future invoicing amounts and dates, allowing companies to better anticipate and report on expected revenues.
Forecasts are visible directly from the contract in a pivot view or list view.
Features
- Generate forecast periods based on the contract's invoicing rules.
- View forecasts grouped by invoice date.
- Automatic regeneration of forecast periods when contract data changes (product, quantity, price, dates, etc.).
- Company-wide configuration to enable or disable forecasts.
- Configurable forecast interval and period type (monthly or yearly).
- Forecast period data includes:
- Start and end dates
- Expected invoice date
- Quantity, unit price, discount, and subtotal (untaxed)
- Clean handling of auto-renewing and manually-ended contracts.
- Option to force forecasts to stop at a contract line's end date, even for auto-renewing lines.
auto_awesome What this module does
AI-generated from the code · Odoo 18.0Adds a forecast of future contract invoices, showing expected amounts and invoice dates per contract line, and lets you view them in a pivot, graph or list report.
This module creates forecast periods for each contract line, so you can see in advance when and how much a contract is expected to be invoiced.
- On a contract form, a new "Forecast" button opens a pivot and list view of the forecast periods for that contract, grouped by invoice date.
- A new "Contract Forecast" report is available under the Accounting reporting menu, with graph, pivot and list views showing product, invoice date and untaxed amount.
- Each forecast period stores the period start and end dates, the expected invoice date, quantity, unit price, discount and the untaxed amount, which is computed automatically from quantity, price and discount.
- Forecasts are regenerated automatically in the background whenever a contract line changes (product, quantity, price, discount, dates, recurrence, cancellation, etc.) or when a new line is created, provided the company option is enabled.
- In Settings, under Contracts, you can enable or disable forecasts, set how many periods to forecast (default 12) and whether the period unit is months or years, and choose whether to stop forecasting at the contract line end date even for auto-renewing lines.
- Forecast periods are company-specific and follow a multi-company rule.
It touches contract.contract, contract.line, the new contract.line.forecast.period, res.company and res.config.settings.
Depends on
Required by other modules
Menus it adds
Models and fields (5)
- res.company · extends an existing modelenable_contract_forecast (Enable contract forecast), contract_forecast_interval (Number of contract forecast Periods), contract_forecast_rule_type, contract_forecast_stop_at_line_date_end (Stop forecast at contract line end date)
- contract.line · extends an existing modelforecast_period_ids (Forecast Periods)
- contract.contract · extends an existing model
- res.config.settings · extends an existing modelenable_contract_forecast, contract_forecast_interval, contract_forecast_rule_type, contract_forecast_stop_at_line_date_end
- contract.line.forecast.period · new modelname, date_end, discount (Discount (%)), quantity, sequence, company_id (Company), date_start, price_unit (Unit Price), product_id, contract_id, currency_id, date_invoice (Invoice Date), price_subtotal (Amount Untaxed), contract_line_id
Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 3 confirmed, 6 with no information of 9 versions.
Sources · Odoo 16.0
Confirmed on 2026-11-03 in branch 16.0 of OCA/contract.
terminal Installation and usage
OCA documentation · Odoo 18.0Configuration
Source · Odoo 18.0Go General Settings under the Contract Forecast section:
- Enable Contract Forecast: Enable or disable forecasting for the company.
- Number of Contract Forecast Periods: Define how many future periods are generated.
- Forecast Period Type: Choose between Monthly or Yearly periods.
- Stop forecast at contract line end date: If enabled, forecast generation always stops at a contract line's end date, even when the line is set to auto-renew (tacit renewal).
Usage
Source · Odoo 18.0- Open a Contract.
- Click on the Forecast button to access the generated forecast periods.
- Forecasts can be analyzed through:
- Pivot view (grouped by Invoice Date)
- Tree view (detailed forecast lines)
Forecast periods are regenerated automatically when relevant fields are modified (e.g., quantity, price, dates).
No verified information in OCA: Installation.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.