Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Employees
  3. EH HR Payroll - United Kingdom v 16.0
  4. Sales Conditions FAQ

EH HR Payroll - United Kingdom

by ERP Heritage https://www.erpheritage.com.au/
Odoo
v 16.0 Third Party 9
Download for v 16.0 Deploy on Odoo.sh
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Employees (hr)
• Discuss (mail)
Community Apps Dependencies Show
• EH HR Payroll
• EH HR Compatibility
• EH HR Platform Core
• EH HR Workflow Engine
Lines of code 2495
Technical Name eh_hr_payroll_uk
LicenseLGPL-3
Websitehttps://www.erpheritage.com.au/
Versions 16.0 17.0 18.0 19.0
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Employees (hr)
• Discuss (mail)
Community Apps Dependencies Show
• EH HR Payroll
• EH HR Compatibility
• EH HR Platform Core
• EH HR Workflow Engine
Lines of code 2495
Technical Name eh_hr_payroll_uk
LicenseLGPL-3
Websitehttps://www.erpheritage.com.au/
Versions 16.0 17.0 18.0 19.0
ERP Heritage · HR Platform
United Kingdom payroll on the EH salary-rule engine

EH HR Payroll United Kingdom

A ready UK salary structure that computes PAYE on a personal allowance and progressive bands, plus per-period employee and employer National Insurance by category letter, all from editable rate tables.

Free · LGPL-3Odoo 16 CommunityLGPL-3v1.0.0
PAYE on personal allowance and bands
Per-period National Insurance
NI category letters A B C H M
Employee and employer NI split
Gross to net payslip

Why this module

EH HR Payroll United Kingdom

Honest method

The calculation is fixed, the rates are yours

PAYE annualises period earnings, taxes them band by band above the personal allowance, then divides back to the period. NI is computed per period and non-cumulative. The method is shipped and tested; the seeded 2025/26 figures are a template you verify against current HMRC tables before each new tax year.

By category letter

National Insurance that follows the employee

Each employee carries an NI category letter (A, B, C, H, M). The payslip resolves that letter to its three published percentages, the employee main rate, the employee rate above the upper earnings limit, and the employer rate, then applies them to the period earnings above the scaled thresholds.

Editable tables

Update rates without touching code

Tax bands live on a UK tax band model, NI letters on a category model, and the personal allowance and annual NI thresholds are company settings. Admin screens let you edit every figure in place, so a new tax year is a data change, not a code release.

Day in the life

Running a monthly UK payslip

You assign the United Kingdom Standard structure to a contract and set the employee NI category letter. On compute, the engine runs the rules in sequence: basic and gross, then PAYE, which annualises the period gross, taxes the amount above the personal allowance across the 20, 40 and 45 percent bands, and divides back to the month. Employee NI applies the category main rate between the per-period primary threshold and the upper earnings limit, then the upper rate above it. Employer NI applies the employer rate above the per-period secondary threshold. Net is gross less PAYE less employee NI; employer NI sits employer-side and does not reduce take-home.

Edge cases

The cases most modules quietly ignore.

In the shipped code today, each one a place where a cheaper module silently does the wrong thing.

Below allowance

When annual gross is at or below the personal allowance, taxable income floors at zero and PAYE returns 0.00 rather than going negative.

Unknown NI letter

An empty or unrecognised category letter resolves to category A, the standard rate, so a missing letter never crashes a slip; if no NI category is seeded at all, the company rate fields act as a last-resort fallback.

Over pension age (C)

Category C zeroes both employee NI rates, so the employee pays nothing, but the employer rate still applies and employer NI is charged as normal.

Under 21 and apprentice (M, H)

Categories M and H charge the employee the standard rates but set the employer rate to 0 percent, so employer NI is nil while the employee deduction is unchanged.

Period scaling

Per-period NI thresholds are the annual figures divided by pay periods per year (52 weekly, 26 fortnightly, 12 monthly) with no intermediate rounding; only the final contribution is rounded to two decimals, so weekly and monthly runs stay internally consistent.

Earnings between thresholds

NI is charged in slices: nothing below the primary threshold, the main rate between primary and upper limit, the upper rate above the upper earnings limit, computed cleanly even when period gross lands exactly on a threshold.

Per-company figures

The personal allowance and annual NI thresholds are res.company fields, so each company in a multi-company database can carry its own values and the payslip reads its own company's settings.

Sandboxed rules

PAYE and NI run as named helpers inside the engine's closed rule namespace, which exposes read-only proxies of the payslip and employee rather than raw recordsets, so a salary rule cannot reach across into other records.

What is inside

Built to do the job, end to end.

  • PAYE band engine. compute_annual_paye taxes income above the personal allowance slice by slice across the seeded bands (20 percent to 37,700 taxable, 40 percent to 112,570, 45 percent above). compute_period_paye annualises the period gross, taxes it, and divides back, rounding the period result to two decimals.
  • National Insurance helpers. ni_employee and ni_employer compute per-period, non-cumulative Class 1 NI. Period thresholds are the annual primary, upper and secondary figures divided by periods per year; the resolved category letter supplies the main, upper and employer rates.
  • Data you can edit. Three tax bands on eh.hr.uk.tax.band, five NI letters on eh.hr.ni.category, and company settings for the personal allowance and the three annual NI thresholds, each with an admin list view under the payroll menus.
  • Salary structure. United Kingdom Standard wires BASIC, GROSS, PAYE, NI_EE, NI_ER and NET rules in sequence, with employer NI placed in the employer category so it is reported without reducing net pay.
  • Tested against statutory figures. A test suite asserts real 2025/26 amounts derived from the seeded HMRC data: GBP 11,432 annual PAYE on GBP 60,000, GBP 952.67 monthly PAYE, and category A, C and M NI outcomes at GBP 5,000 a month.

Honest about the edges

What this does not do, so nothing surprises you.

  • No RTI submission. The module computes PAYE and NI for the payslip but does not file FPS or EPS returns or talk to HMRC; reporting and submission stay outside the module.
  • PAYE here is non-cumulative and code-free. It annualises each period and taxes it independently; it does not apply individual tax codes, cumulative year-to-date PAYE, or week 1 / month 1 markers.
  • Income tax bands are the England, Wales and Northern Ireland set. Separate Scottish or Welsh rate bands are not seeded; you would add them as data.
  • No statutory pay, pensions or student loans. Statutory sick or parental pay, workplace pension auto-enrolment, and student loan deductions are not included.
  • Directors cumulative NI method is not modelled. NI is per-period for every employee.
  • Seeded rates are a 2025/26 template, not a maintained feed. HMRC revises figures each tax year; you confirm and update the bands, letters and thresholds before each new year.
  • No automatic rate updates and no cron. Rate maintenance is a manual data edit on the shipped admin screens.
Search

UK payroll Odoo 16, PAYE Odoo, National Insurance Odoo, NI category letters, personal allowance payroll, UK income tax bands, employer National Insurance, Class 1 NI Odoo, gross to net payslip UK, UK salary structure Odoo, HMRC rates payroll, Odoo 16 Community payroll UK

ERP Heritage

Production-grade Odoo accounting, built to an engineering bar and documented honestly. Support: info@erpheritage.com.au

v1.0.0 · LGPL-3 · Odoo 16 Community

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author, please use the developer contact information. They can usually be found in the description.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with