project_budget
Compare planned vs actual budgets per project line by line. Identify spend not captured by budget lines using optional filters.
Instructions
Report planned vs actual budget per project, line by line.
Reads the Budgets app (budget.line on Odoo 18+, else crossovered.budget.lines) and matches lines to active projects by a line-level project_id m2o when the instance has one, else through the project's analytic account. Amounts are absolute company-currency sums; server-computed practical/theoretical amounts are used as-is. Also compares each project's total analytic cost against the practical amounts booked on its budget lines, flagging spend the budget does not capture. When the filter matches exactly one project the report gains a per-line breakdown. No date filters: budget lines carry their own period.
Args: project: Optional project-name filter (name ilike). Exactly one match switches on the per-line breakdown. manager: Optional project-manager filter (user_id.name ilike). customer: Optional customer filter (partner_id.name ilike). top_n: Rows in the per-line breakdown (default 10). burn_pct_at_risk: Burn %% >= this -> at_risk (default 80). burn_pct_off_track: Burn %% >= this -> off_track (default 100). timezone_offset: UTC offset for "today" (default 7).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| top_n | No | ||
| manager | No | ||
| project | No | ||
| customer | No | ||
| timezone_offset | No | ||
| burn_pct_at_risk | No | ||
| burn_pct_off_track | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |