| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
CRM (crm)
• Discuss (mail) • Calendar (calendar) • Contacts (contacts) • Sales (sale_management) • Invoicing (account) |
| Lines of code | 1829 |
| Technical Name |
sale_forecast_target |
| License | LGPL-3 |
| Website | https://www.linkedin.com/in/saidyahia |
| Versions | 15.0 16.0 17.0 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
CRM (crm)
• Discuss (mail) • Calendar (calendar) • Contacts (contacts) • Sales (sale_management) • Invoicing (account) |
| Lines of code | 1829 |
| Technical Name |
sale_forecast_target |
| License | LGPL-3 |
| Website | https://www.linkedin.com/in/saidyahia |
| Versions | 15.0 16.0 17.0 18.0 19.0 |
Stop Tracking Sales Targets in Excel
Advanced Sales Forecast & Target brings a complete revenue target management system into Odoo. Define targets per salesperson or team, track attainment % against confirmed sale orders in real time, and monitor your weighted pipeline forecast from CRM opportunities — all from a single OWL dashboard without leaving Odoo.
|
5
KPI metrics
|
3
Period types
|
24
Unit tests
|
2
Auto crons
|
100%
Native OWL
|
Forecast Dashboard
Open CRM → Reporting → Forecast Dashboard to see your team performance in real time. Switch between Month, Quarter, and Year with one click. Filter by sales team.
📊 Live OWL Dashboard — June 2026
Four KPI tiles: Total Target SR 300K · Actual Revenue SR 125K · Weighted Forecast · Overall Attainment 41.7%. Grouped bar chart (Target / Actual / Weighted Forecast per salesperson). CRM Stage Funnel: New 3, Qualified 3, Proposition 1.
Key Features
|
🎯
Target Management Monthly, quarterly, or annual revenue targets per salesperson or team. Full Draft → Active → Closed workflow with chatter & activity tracking on every record. |
📊
Weighted Forecast Engine Actual revenue from confirmed sale orders + weighted forecast from CRM opportunities (expected_revenue × probability %). All stored, refreshed every 4 hours by cron. |
🖥
OWL Manager Dashboard KPI tiles, Chart.js grouped bar chart, CRM stage funnel, salesperson leaderboard with color-coded attainment %, and 12-month trend drill-down per rep. |
|
📈
Attainment & Gap Tracking Attainment % and Gap to Target stored on every record. Color-coded: green ≥ 100%, amber 75–99%, red < 75%. Visible in list view and leaderboard. |
📋
Excel Export Wizard Export to .xlsx — Sheet 1: targets, actuals, attainment, totals row. Sheet 2: open CRM opportunities with probability & weighted amounts. Powered by openpyxl. |
🖨
QWeb PDF Report Formatted PDF target card with KPI grid, details table, and color-coded attainment. Available from the Print menu on any target record. |
|
📧
Automated Email Digest Automatic assignment emails to salespersons. Weekly or monthly digest to managers. Frequency configurable in Settings. No manual sending needed. |
🔒
Security & Multi-Company Salespersons see only their own targets. Managers see all. Full multi-company support — targets scoped to company_id with proper record rules. |
🧪
24 Unit Tests Full coverage: compute logic, constraints, state transitions, security rules, dashboard API, 12-month trend, attainment colors, and smart button counts. |
Sales Targets — List View
All active targets in one color-coded list. Every KPI visible at a glance. Group by salesperson, team, period type, or status. Multi-edit supported.
📋 Sales Targets List — All KPIs at a Glance
Two active targets for June 2026: Administrator (Target 100K SR · Actual 50K SR) and said (Target 200K SR · Actual 75K SR). All KPI columns visible without opening any record. Rows color-code automatically based on attainment %.
Target Form — Performance Panel
Each target record has smart buttons linking to filtered Sale Orders and Opportunities. The Performance section shows all five KPI metrics live. Use Refresh Now for an instant update.
📝 Target Record — Administrator Monthly Jun 2026
Smart buttons: Sale Orders (1), Opportunities (0). Status bar: Draft → Active → Closed. Performance section: Actual Revenue 50,000 SR · Weighted Forecast 0 SR · Attainment 5000% · Gap to Target 50,000 SR. Refresh Now button in header for on-demand update.
How It Works
|
1
|
Create a Target Go to CRM → Reporting → Sales Targets. Click New, pick a salesperson or team, choose the period type, set the start date and target amount. Click Activate. |
|
2
|
Odoo Computes Automatically The module reads confirmed sale orders (actual revenue) and open CRM opportunities (weighted forecast = expected_revenue × probability%). All KPIs are stored and refreshed every 4 hours by the built-in cron job. |
|
3
|
Monitor on the Dashboard Open Forecast Dashboard. View KPI tiles, the grouped bar chart, CRM stage funnel, and the salesperson leaderboard. Click any rep row to see their 12-month attainment trend. |
|
4
|
Export & Report Export to .xlsx from the Export wizard. Print a PDF from any record. Managers receive automatic weekly email digests every Monday morning. |
PDF Report — Sales Forecast & Target Card
Generate a print-ready PDF report from any target record using the Print menu. Includes your company logo, four colour-coded KPI tiles, and a full details table.
🖨 QWeb PDF Report — Administrator Monthly Jun 2026
Print-ready PDF with company logo, four colour-coded KPI tiles (Target SR 100,000 · Actual Revenue SR 50,000 · Weighted Forecast SR 0 · Attainment 50%), and a Target Details table: Salesperson, Sales Team, Period Type, Period dates, Pipeline Total (unweighted), Gap to Target, and Status.
Excel Export — Wizard & Generated Workbook
A simple wizard dialog lets you choose the period, filter by team, and include open opportunities. The generated .xlsx workbook opens in any spreadsheet application.
📤 Export Forecast to Excel — Wizard Dialog
Accessible from the Forecast Dashboard menu. Choose period (This Month / This Quarter / This Year / Custom range), optionally filter by Sales Team, and toggle Sheet 2 for open CRM opportunities. One click downloads the .xlsx file.
📊 Generated Excel Workbook — Forecast Summary Sheet
Sheet 1 – Forecast Summary: navy header, alternating row colours, all KPI columns, colour-coded Attainment %, bold TOTAL row (Target 300K · Actual 125K · Gap 175K). Sheet 2 – Open Opportunities: up to 500 open CRM opportunities with probability and weighted amounts.
Automation — Scheduled Actions & Email Notifications
Two scheduled actions install automatically. Both visible in Settings → Technical → Scheduled Actions. Intervals configurable from Settings → Sales Forecast.
|
⚙️ Scheduled Actions Sales Forecast: Refresh Actuals — every 4 hours, next run 06/13/2026 13:06. Sales Forecast: Weekly Manager Digest — every 1 week, next run 06/20/2026. |
📧 Assignment Email Notification Automatic email sent on assignment. Shows target name, personalised message, and a direct View Sales Forecast & Target button linking to the record in Odoo. |
Settings & Configuration
The module adds its own section in the standard Odoo Settings sidebar. Configure cron interval and email digest frequency without any technical knowledge.
🔧 Settings → Sales Forecast
Forecast Refresh Interval (default 4 hours) — controls cron recompute frequency. Manager Email Digest — Weekly / Monthly / Disabled. The module appears as its own section in the Settings sidebar.
Five Computed KPI Metrics
| Metric | Data Source | Formula |
|---|---|---|
| Actual Revenue | sale.order (confirmed) | Sum of amount_untaxed for orders within the target period |
| Weighted Forecast | crm.lead (open opportunities) | Σ (expected_revenue × probability ÷ 100) |
| Pipeline Total | crm.lead (open opportunities) | Σ expected_revenue — unweighted |
| Attainment % | Computed | (Actual Revenue ÷ Target Amount) × 100 |
| Gap to Target | Computed | Target Amount − Actual Revenue (negative = over-target ✓) |
Technical Details
| Item | Detail |
|---|---|
| Technical name | sale_forecast_target |
| Category | Sales / CRM |
| License | OPL-1 |
| Depends on | sale_crm, crm, mail — all standard Odoo modules |
| Models added | sale.forecast.target, sale.forecast.export.wizard |
| Frontend | OWL component + Chart.js 4.4 (CDN fallback — works in Community & Enterprise) |
| Excel export | openpyxl (pre-installed in most Odoo stacks) |
| Core model changes | None — all via inheritance. Safe to install alongside any other module. |
| Multi-company | Full support — targets scoped to company_id |
| Unit tests | 24 automated tests covering all core logic |
Installation
|
1
|
Download & Extract Extract the |
|
2
|
Update Apps List Enable developer mode → Settings → Apps → Update Apps List. |
|
3
|
Install Search Advanced Sales Forecast and click Install. Cron jobs and settings page install automatically. |
|
4
|
Configure (optional) Settings → Sales Forecast: adjust the refresh interval and email digest frequency. |
Frequently Asked Questions
Does this work on Odoo Community edition?
Yes. Compatible with both Community and Enterprise. Chart.js loads from CDN if not bundled, so the OWL dashboard works in Community too.
How often are actuals refreshed?
Every 4 hours by the built-in cron (configurable in Settings). Click Refresh Now on any target record for an immediate on-demand update.
Can I set targets for a whole team, not just individual reps?
Yes. Set the Sales Team field instead of (or alongside) a Salesperson. Team targets aggregate sale orders from all team members.
Can salespersons see each other's targets?
No. A record rule restricts salesperson-level users to their own target records only. Sales managers see all records across the company.
Is multi-company supported?
Yes. All targets are scoped to company_id and the dashboard API filters by the current user's active company.
What does the Excel export contain?
Sheet 1: all active targets — Target Amount, Actual Revenue, Weighted Forecast, Attainment %, Gap to Target, bold totals row. Sheet 2: up to 500 open CRM opportunities with stage, probability, and weighted amounts.
Does this module change any existing Odoo models?
No. Two new models are added and res.config.settings is extended via inheritance. No core tables are modified — safe to install with any other module.
Ready to Replace Your Sales Target Spreadsheet?
Install in minutes. Works with your existing CRM and sale order data — no data migration needed.
Support
Bug fixes guaranteed within 15 days of purchase. For installation help, feature requests, or bug reports, reach out directly.
Please log in to comment on this module