| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
CRM (crm)
• Discuss (mail) • Calendar (calendar) • Contacts (contacts) • Invoicing (account) |
| Lines of code | 1829 |
| Technical Name |
sale_forecast_target |
| License | OPL-1 |
| Website | https://www.linkedin.com/in/saidyahia |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
CRM (crm)
• Discuss (mail) • Calendar (calendar) • Contacts (contacts) • Invoicing (account) |
| Lines of code | 1829 |
| Technical Name |
sale_forecast_target |
| License | OPL-1 |
| Website | https://www.linkedin.com/in/saidyahia |
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.
Open CRM → Reporting → Forecast Dashboard to see your team performance in real time. Switch between Month, Quarter, and Year. Filter by sales team. Refresh any time with one click.
Four KPI tiles: Total Target (SR 300K), Actual Revenue (SR 125K), Weighted Forecast, Overall Attainment (41.7%). Grouped bar chart compares Target / Actual / Weighted Forecast per salesperson. CRM Stage Funnel on the right shows opportunities by stage (New: 3, Qualified: 3, Proposition: 1).
Target Management
Monthly, quarterly, or annual targets per salesperson or team. Draft → Active → Closed workflow with full chatter & activity tracking on every record.
Weighted Forecast Engine
Actual revenue from confirmed sale orders + weighted forecast from open CRM opportunities (expected_revenue × probability %). All stored, refreshed every 4 hours.
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. Green ≥ 100%, amber 75–99%, red < 75%. Color-coded 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 and 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 Automated Unit Tests
Full coverage: compute logic, constraints, state transitions, security rules, dashboard API, 12-month trend, attainment colors, and smart button counts.
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.
Two active targets for June 2026: Administrator (Target 100K SR, Actual 50K SR, Attainment 5000%) and said (Target 200K SR, Actual 75K SR). All metrics visible without opening each record. Rows color-code automatically based on attainment percentage.
Each target record has smart buttons linking directly to filtered Sale Orders and Opportunities. The Performance section shows all five KPI metrics live. Use "Refresh Now" for an instant update.
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. "Close Period" and "Refresh Now" buttons in the header.
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.
Odoo Computes Automatically
The module reads confirmed sale orders (actual revenue) and open CRM opportunities (weighted forecast). All KPIs are stored and refreshed every 4 hours by the built-in cron job. No manual work needed.
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.
Export & Report
Export to .xlsx from the Export wizard. Print a PDF from any record. Managers receive automatic weekly email digests every Monday morning.
Two scheduled actions install automatically. Both are visible in Settings → Technical → Scheduled Actions and configurable from the Settings → Sales Forecast panel.
"Sales Forecast: Refresh Actuals" — runs every 4 hours, next run 06/13/2026 13:06. "Sales Forecast: Weekly Manager Digest" — runs every 1 week, next run 06/20/2026.
Automatic email sent to the salesperson when assigned to a target. Includes the target name "said - Monthly Jun 2026", a personalised message, and a direct "View Sales Forecast & Target" button linking to the record.
The module adds its own section in the standard Odoo Settings sidebar. No technical knowledge required.
Two settings: "Forecast Refresh Interval" (default: 4 hours) — controls how often the cron recomputes actuals. "Manager Email Digest" — Weekly / Monthly / Disabled. Changes take effect on the next cron run.
| Metric | Data Source | Formula |
|---|---|---|
| Actual Revenue | sale.order (state: sale / done) | Sum of amount_untaxed for orders in the 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 ✓) |
| 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; pip install openpyxl if missing) |
| Core model changes | None — all via inheritance. Safe alongside any other module. |
| Multi-company | Full support — targets scoped to company_id |
| Unit tests | 24 automated tests covering all core logic |
Download & Extract
Extract sale_forecast_target into your Odoo addons directory.
Update Apps List
Enable developer mode → Settings → Apps → Update Apps List.
Install
Search "Advanced Sales Forecast" and click Install. Cron jobs and settings install automatically.
Configure (optional)
Settings → Sales Forecast: adjust refresh interval and email digest frequency.
Ready to Replace Your Sales Target Spreadsheet?
Install in minutes. Works with your existing CRM and sale order data — no data migration needed.
Get It on Odoo Apps StoreBug fixes guaranteed within 15 days of purchase. For installation help, feature requests, or bug reports, reach out directly.
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