Technical Lab · 0022

BGMEA wage board in Odoo payroll — configuring Bangladesh RMG compliance.

How to configure Odoo Payroll for the BGMEA 8th Wage Board (2023) — the wage board grade salary structure, salary rules for basic, house rent, medical and transport, overtime under the Bangladesh Labour Act, PF deductions, and generating compliant monthly payslips for RMG factory workers. Built from BGMEA and BKMEA factory deployments across Dhaka and Chittagong.

Bangladesh's RMG sector employs over 4 million workers, the majority in garment factories affiliated with BGMEA (Bangladesh Garment Manufacturers and Exporters Association) or BKMEA (Bangladesh Knitwear Manufacturers and Exporters Association). Every factory must pay at or above the wage board minimum — and every audit, whether by a buyer's code of conduct team, BGMEA, or the Department of Inspection for Factories and Establishments (DIFE), will check payroll records.

Configuring Odoo Payroll correctly for the BGMEA wage structure means: the right salary components, the right calculation rules, and minimum wage enforcement that prevents an employee ever being paid below the board rate. This guide covers the full configuration for the 8th Wage Board, effective December 1, 2023.

A garment factory that can't produce a compliant payslip in 60 seconds for any worker on demand has a payroll problem — not a records problem.

BGMEA 8th Wage Board — grade structure (2023)

The 8th Wage Board for the RMG sector was declared effective December 1, 2023. It sets a graded minimum wage structure: the lowest grade — unskilled helpers and trainee workers — has a gross minimum of BDT 12,500 per month, and the minimum rises through progressively higher grades for semi-skilled, skilled, highly skilled, and supervisory roles. A factory may pay above the minimum for any grade, but never below it.

Use the gazetted figures — not secondary sources

The exact number of grades and the per-grade minimum wages are set by the official Minimum Wage Board declaration and the Bangladesh Gazette notification — and the 2023 declaration revised parts of the earlier grade scale. Before you build contracts in Odoo, take each grade's minimum wage directly from the current BGMEA circular or the Gazette, not from a blog or a forwarded spreadsheet. The lowest-grade gross minimum of BDT 12,500 is the figure most consistently cited; confirm every higher grade against the official schedule for your factory's registered grade structure. Some buyer compliance programs (especially EU and US brands) require wages above the legal minimum as part of their supplier code of conduct — these above-minimum wages are negotiated per factory and must also be reflected correctly in Odoo payroll.

Setting up the salary structure in Odoo

1

Create the salary structure type

Go to Payroll → Configuration → Salary Structure Types → New. Name it RMG — Bangladesh Labour Act. Country: Bangladesh. Default schedule: Monthly. This structure type groups all salary structures for workers under the Bangladesh Labour Act — both wage board workers and salaried staff can use this type.

2

Create the wage board salary structure

Under the structure type, create: Payroll → Configuration → Salary Structures → New. Name: BGMEA Wage Board — 8th (2023). Type: RMG — Bangladesh Labour Act. This is the structure that will be assigned to all wage board worker contracts. Salaried management staff get a separate structure (e.g., "Management — Bangladesh Monthly").

3

Create wage board contracts per grade

Each grade requires a contract template (or you create individual contracts). For each employee, their contract specifies: Salary Structure = BGMEA Wage Board 8th, Wage = the gross monthly wage for their grade (or above — but never below). The wage field on the contract is the gross wage that the salary rules use as the calculation base.

Salary rules — basic, HRA, medical, transport

The BGMEA wage structure breaks the total wage into components. The wage board specifies approximate proportions; exact breakdown varies by factory (confirmed with BGMEA during wage board declaration):

Component Odoo code Formula / rule
Basic Salary
BASIC
Typically 56–60% of gross. Formula: contract.wage * 0.57. This percentage should match your factory's registered wage structure — confirm with BGMEA at the time of wage board registration. Basic is the reference for PF, gratuity, and overtime calculation.
House Rent Allowance
HRA
40% of Basic Salary per Labour Act. Formula: result_rules['BASIC'][0].total * 0.40. This references the Basic salary rule result to compute HRA — ensuring HRA automatically adjusts when basic changes.
Medical Allowance
MED
Fixed BDT 750/month per 8th Wage Board (or as updated by the board). Formula: 750.0. Do not make this a percentage — the wage board specifies a fixed amount. Update when the wage board changes.
Transport Allowance
TRANS
Fixed BDT 500/month per 8th Wage Board or factory policy. Formula: 500.0. Some factories pay higher transport for remote shifts or night shift workers — configure as a separate rule if differentiated.
Attendance Bonus
ATT_BONUS
Many RMG factories pay a monthly attendance incentive (BDT 200–500) for workers with zero absent days. Formula: inputs.ATT_BONUS.amount — driven by an input line on the payslip (set to the bonus amount if employee had perfect attendance, 0 otherwise).
Overtime Pay
OT
OT Rate = Basic ÷ 208 × 2 × OT hours. Formula: (result_rules['BASIC'][0].total / 208) * 2 * inputs.OT_HOURS.amount. OT_HOURS is a payslip input line for the month's total overtime hours. Must be ≥ 0 and validated against attendance records.
Gross Salary
GROSS
Total of all earnings before deductions. Category: Earnings. Formula: Basic + HRA + Medical + Transport + Attendance Bonus + OT. This is the line that appears as "Gross" on the payslip and is used for PF and income tax calculations.

Overtime — Bangladesh Labour Act rules

Under the Bangladesh Labour Act, 2006 (Section 108), overtime rules for manufacturing workers:

In Odoo, overtime hours are typically entered as a payslip input (manual entry by the HR team from the overtime register) or, if Odoo Attendance is integrated with a biometric machine, calculated automatically from clock-in/clock-out data. For factories with 500+ workers, the biometric-to-Odoo integration is highly recommended — manual OT entry at that scale is error-prone and a compliance risk.

Deductions — PF, income tax, and other

DeductionRate / RuleOdoo salary rule codeApplies to
Provident Fund (PF) — Employee 5% of Basic (or company policy — often 5–10%) PF_EMP Workers with PF membership. PF is not mandatory for all workers under Bangladesh law but is common in BGMEA factories and required by many buyer CoC programs.
Provident Fund (PF) — Employer Matching 5% of Basic (employer contribution) PF_EMP_CONTRIB Employer PF contribution — this is a payroll cost (shown on payslip as a note or separate employer cost line, not a deduction from employee gross).
Income Tax (Withholding) As per NBR annual tax slabs (first BDT 3.5 lakh/year exempt for male; BDT 4 lakh for female & third gender, as of 2024-25) INCOME_TAX Only workers earning above the tax-free threshold. For entry-grade workers at BDT 12,500/month (BDT 1.5 lakh/year), no income tax applies — they are below the exemption threshold.
Worker Welfare Fund 0.5% of net profit per the Bangladesh Labour Welfare Foundation Act (employer obligation, not employee deduction) N/A — journal entry, not payslip Employer statutory contribution — handled in accounting, not in individual payslips.
Absent deduction Daily rate × absent days. Daily rate = Gross ÷ 26 working days ABSENT_DED Workers who were absent without approved leave. Formula: -(contract.wage / 26) * inputs.ABSENT_DAYS.amount

Sample payslip — entry-grade worker (minimum wage)

What an entry-grade (helper) worker's payslip looks like in Odoo at the 8th Wage Board minimum (BDT 12,500 gross, 0 absent days, 20 OT hours, PF member):

Monthly Payslip — Entry Grade (Helper)
Entry Grade · BDT 12,500 Gross
Basic Salary (57% of gross) 7,125
House Rent Allowance (40% of basic) 2,850
Medical Allowance 750
Transport Allowance 500
Overtime Pay (20 hrs × 7,125/208 × 2) 1,369
Gross Earnings 12,594
PF — Employee Contribution (5% of basic) −356
Income Tax Nil
Net Pay 12,238

Note: The gross in this example exceeds BDT 12,500 because it includes overtime. The minimum wage (12,500) applies to the base monthly wage before overtime. Overtime is always additional. The basic salary split (57%) in the example is illustrative — your factory's registered split should match BGMEA records for your grade structure.

Minimum wage compliance checks in Odoo

Odoo doesn't automatically enforce wage board minimums as a hard constraint. These checks should be built into your HR workflow:

Linked reading

BGMEA payroll compliance is tightly connected to the HR module's leave management, which controls how absent days flow into payroll deductions. For the full HR and payroll configuration — including leave policies, PF, and gratuity — see the Odoo HR & Payroll Bangladesh setup guide. For RMG factories navigating a wage board change — which involves updating contracts, recalculating arrears, and communicating changes to workers — the change management approach in Change management isn't a memo is directly applicable. To budget a payroll-inclusive Odoo rollout — HR, Payroll, and Attendance modules plus user count — try the Odoo cost estimator for Bangladesh. Need help setting up BGMEA-compliant payroll in Odoo? Get in touch →

Frequently asked questions

What is the BGMEA 8th Wage Board minimum wage in Bangladesh?

The 8th Wage Board, effective December 1, 2023, sets the gross minimum monthly wage for the lowest grade — unskilled helpers and trainee workers — at BDT 12,500, with progressively higher minimums for semi-skilled, skilled, and supervisory grades. The exact number of grades and the per-grade figures are defined by the official Minimum Wage Board declaration and the Bangladesh Gazette notification — the legally binding reference — so confirm them against the current BGMEA circular before configuring contracts. All RMG factories affiliated with BGMEA or BKMEA must pay at or above the gazetted minimum. Paying below it violates the Bangladesh Labour Act 2006 and BGMEA affiliation terms, and can result in buyer audit failures, export restrictions, and legal action from DIFE.

How do I set up BGMEA wage grades in Odoo Payroll?

Create one Salary Structure named "BGMEA Wage Board 8th (2023)" under a structure type "RMG — Bangladesh Labour Act". Add salary rules for: Basic Salary (57% of contract wage), House Rent (40% of basic), Medical (fixed BDT 750), Transport (fixed BDT 500), Overtime (basic/208 × 2 × OT hours input), and deductions (PF 5% of basic, absent deduction per day). Each employee gets a contract with their grade's minimum gross wage (or above) and this salary structure. Odoo computes the payslip automatically using these rules.

How is overtime calculated in Bangladesh RMG under the Labour Act?

Overtime rate = Basic Salary ÷ 208 hours × 2. Normal hours are 208/month (26 days × 8 hours). Maximum overtime under the Labour Act is 2 hours/day (12 hours/week), paid at double the basic hourly rate — not double the gross hourly rate. The OT hours for the month are entered as a payslip input (from the overtime register or from biometric data in Odoo Attendance). OT must be paid with the monthly salary — it cannot be carried forward to next month.

Is PF (Provident Fund) mandatory for garment workers in Bangladesh?

PF is not universally mandatory under Bangladesh labour law for all private sector workers — it is required if your factory has 100+ workers and has been in operation for 5+ years, per the Bangladesh Labour Act provisions. However, many BGMEA-affiliated factories implement PF voluntarily as a worker welfare measure, and many buyer code of conduct programs require it as a minimum standard. If your factory operates a PF scheme, both the employee (minimum 5% of basic) and employer (matching contribution) must participate. Configure both as salary rules in Odoo — employee PF as a deduction, employer PF as a payroll cost posted to the PF liability account.