Payroll Cost Allocation
Split labour cost across projects, departments and companies, then raise recharge invoices
Finance teams running shared services, project work or multi-company groups need to spread each employee's fully-loaded payroll cost across the projects, departments and companies that actually consumed their time — and then recharge inter-company labour. Doing this by hand in spreadsheets is slow, error-prone and impossible to reconcile. This module runs period allocation runs that split source cost by percentage or worked hours onto analytic, department or company targets, validates every split totals 100% and reconciles to source, then generates one draft recharge invoice per receiving partner with a configurable markup and analytic distribution. Built entirely on Odoo Community accounting and HR, with no Enterprise payroll dependency.
Key Features
Period Allocation Runs
Each gb.payroll.alloc.run covers a period (date_from/date_to), auto-numbers from an ALLOC sequence and moves through draft, confirmed, recharged and cancelled states. action_confirm blocks unless every employee's lines total exactly 100%, keeping each period's split controlled and auditable.
Percentage or Worked-Hours Basis
Allocation lines (gb.payroll.alloc.line) split an employee's source_cost by a percentage or by worked_hours. For the hours basis _compute_amounts derives each line's effective_percentage from the employee's total hours, then computes allocated_amount automatically.
Project, Department or Company Targets
Every line targets a project (account.analytic.account), an hr.department or another group company, with constraints ensuring the right target is set. target_label resolves the destination so you can see exactly which cost centre consumed each slice of labour.
Reusable Allocation Templates
gb.payroll.alloc.template stores default split keys per employee, validated to total 100% with an action_balance helper that distributes the remainder evenly. action_apply_templates expands each employee's source cost into template-derived lines in one click each period.
Automatic Recharge Invoices
_build_recharge_invoices groups lines by recharge_partner_id and creates one draft account.move out_invoice per receiving partner, each line priced at recharge_amount. A configurable markup_percent uplifts the recharge over the raw allocated cost.
Analytic Distribution on Invoices
When a line targets an analytic account, the generated invoice line is written with an analytic_distribution mapping (100% to that account), so recharged labour cost lands in the correct analytic account for downstream project and cost-centre reporting.
Reconciliation & Variance Checks
reconcile_check returns per-employee source vs allocated vs variance, is_fully_reconciled confirms every employee ties out within 0.01, and the Check Reconciliation button flags any employee whose split does not match their source cost before you invoice.
Guided Recharge Wizard
The Generate Recharge Invoices wizard (gb.payroll.recharge.wizard) pre-fills a sales journal and the Labour Recharge service product, builds the invoices for a confirmed run and can open them immediately. summary_by_target aggregates allocated and recharge amounts per destination.
Use Cases
Screenshots
Allocation Runs
Allocation Templates
Why Choose This Module
Distribute the fully-loaded cost of each employee's pay period across the cost centres that consumed their time — projects, departments or other group companies — and turn inter-company and inter-department labour into recharge invoices automatically. Built on Odoo Community accounting, with no Enterprise payroll dependency required.
Specifications
- Compatible: Odoo 18.0 / 19.0
- License: OPL-1
- Languages: English
- Author: Pokutsoft
- Dependencies: account, hr
- Support: support@pokutsoft.com
Update date: 2026-07-02
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Employees (hr)
• Invoicing (account) • Discuss (mail) |
| Lines of code | 698 |
| Technical Name |
gb_payroll_cost_allocation_recharge |
| License | OPL-1 |
| Website | https://pokutsoft.com/ |
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