Contribution Scheme
EOBI, PESSI, a provident fund: each one takes a percentage of a salary figure from the employee and usually a larger share from the company. This screen holds one scheme, with a dated line for every set of rates it has ever had, so a payroll reprinted for last year still computes on last year's rates.
What it is for
The header is the scheme. The lines are its history. The payroll run reads whichever line covers the pay period, so nothing is ever overwritten when a rate changes: you close the old line and add a new one, and a return filed late still comes out on the rates that applied then.
Each line answers five questions in order: which salary figure to start from, whether to cap it, whether to lift it to a statutory minimum, what to take from each side, and how to round. The figures and the worked arithmetic are on The maths, and two of those steps catch people out often enough to repeat here. A Wage Ceiling of zero means no ceiling at all, not a cap of zero. And a non zero Fixed Amount on a side overrides that side's percentage completely.
Two wage types carry the result. The employee share is deducted from his pay through the employee wage type, so that one must be on the credit side. The company share is a cost, not a deduction, so its wage type should be the kind that prints on the payslip without reducing net pay, which means the direction whose label is blank, described on Value lists.
The scheme is only applied to the men whose Employee Policy Profile carries it, and it is skipped altogether unless the record is marked Active. The payroll run also requires the document to be complete, but the system sets that itself when you save, so the Active tick is the one that is yours to get wrong. A scheme that looks perfect but was left unticked produces nothing, with no message.
Scheme Type has to be filled in before you can save, and nothing in the system branches on it. It tells a consultant and an auditor what kind of scheme they are looking at, and that is its whole job. Do not expect PF to behave differently from EOBI because of it.
Paying money back out of the fund
A provident fund takes money in every month, and sooner or later a man asks for some of it back: an advance against the fund, or the whole lot when he leaves. The four fields in the Disbursement Policy group decide when he may ask and how much he may have.
- Minimum Service (Years) - nothing at all may be taken before he has served this long.
- Employer Vesting (Years) - his own money is always his, but the company's share only becomes his once he has served this long. Before that it sits in the fund and is not available to him.
- Maximum Advance % - a cap on how much of what has vested he may take at one time.
- Withdrawal Wage Type - the wage type a disbursement is actually paid on. It is what the fund subtracts and what the cap is tested against, so a policy without one is a decoration and the screen refuses it.
All four left empty is how the product behaved before the policy existed: everything in the fund is his to take from the first day. A client who does not want a policy is not forced to invent one.
The disbursement itself is not entered here. It is a line on Employee Additional Payment Or Deduction, paid on the Withdrawal Wage Type, and that screen refuses to save a line for more than the policy allows, quoting what the fund holds and which rule stopped you. So the policy is written down in one place and enforced in one place, and the figure a man is shown cannot drift from the figure he is allowed.
Every field, in plain words
Scheme
| Field | What it means | What to put in it | Notes |
|---|---|---|---|
| Contribution Scheme | The code | EOBI, PESSI, PF | Required |
| Name | How the scheme reads in a list and on a report | EOBI old age benefits | Required |
| Scheme Type | What kind of scheme this is | EOBI, SESSI, PF, GRAT, OTHER | Required to save. Nothing calculates from it, it is a label. Values on Value lists |
| Active | Whether the scheme is live | Tick it | The run ignores an unticked scheme. This is the only live/not-live control on the screen |
Posting
| Field | What it means | What to put in it | Notes |
|---|---|---|---|
| Employee Wage Type | The payslip line the employee's share is deducted through | 6100 EOBI employee share | Must be a credit wage type, that is the only direction that reduces net pay |
| Employer Wage Type | The payslip line the company's share is shown on | 6101 EOBI employer share | Use the direction with the blank label so it prints without being deducted, see Value lists |
| Remarks | A note for whoever reads this next | The notification number the rates come from |
Disbursement Policy
Leave all four empty if nothing is ever paid out of this scheme. They only have meaning on a fund a man can draw on.
| Field | What it means | What to put in it | Notes |
|---|---|---|---|
| Withdrawal Wage Type | The payslip line a disbursement out of the fund is paid on | PF-W Provident fund withdrawal | Must not be either of the two share wage types. Required as soon as any of the other three is set |
| Minimum Service (Years) | How long a man must have served before he may take anything at all | 1 | Between 0 and 50. Zero means no waiting period |
| Employer Vesting (Years) | How long he must have served before the company's share counts as his | 3 | Between 0 and 50. Zero means it is his from the first day |
| Maximum Advance % | The most he may take at one time, as a percentage of what has vested | 50 | Between 0 and 100. Zero and 100 both mean no cap |
Rates
One line per period the rates were in force. The newest line is left open ended.
| Field | What it means | What to put in it | Notes |
|---|---|---|---|
| Line # | The line number | Fills itself | Leave it |
| Effective From | The first day these rates apply | 01-Jul-2026 | Required. The run picks the line that covers the end date of the pay period |
| Effective To | The last day they apply | Leave it empty on the current line | An empty value is stored as open ended. Fill it only when you are closing the line |
| Contribution Basis | Which salary figure the percentage is taken of | BASIC, GROSS, MINWG, FIXED | Required. Basic, gross of the period, the statutory minimum, or a typed amount. See Value lists |
| Fixed Basis Amount | The amount used as the basis when the basis is FIXED | 37000 | Required if the basis is FIXED |
| Minimum Wage | A floor under the basis, and the basis itself when the basis is MINWG | 37000 | Required if the basis is MINWG. A figure below it is lifted to it |
| Wage Ceiling | A cap on the basis | 37000 | Zero means no ceiling at all. It cannot be negative |
| Employee Rate % | The percentage the employee pays | 1 | Between 0 and 100 |
| Employer Rate % | The percentage the company pays | 6 | Between 0 and 100 |
| Employee Fixed Amount | A flat amount instead of the employee percentage | Leave it at zero unless the scheme really is a flat amount | A non zero value overrides the employee percentage entirely |
| Employer Fixed Amount | A flat amount instead of the employer percentage | Leave it at zero unless the scheme really is a flat amount | A non zero value overrides the employer percentage entirely |
| Rounding | How each share is rounded | NONE, UP, DOWN, NEAR | Empty is stored as NONE. See Value lists |
| Remarks | A note about this rate line | Rates per notification of June 2026 |
At least one side needs either a rate or a fixed amount, or the line is refused.
How to configure it
- Create the two Wage Types first, employee share on the credit side and employer share on the direction that prints without deducting.
- Create the scheme: code, name, scheme type, Active ticked, and both wage types on the Posting group.
- Add one rate line for the rates in force today. Effective From is the day they started, Effective To stays empty.
- Pick the Contribution Basis, then fill only the figure that basis needs: Fixed Basis Amount for
FIXED, Minimum Wage forMINWG. - Set the Wage Ceiling if the statute caps the basis. Leave it at zero if there is no cap, which is what zero means.
- Type the two rate percentages. Use the fixed amount columns only for a scheme that genuinely charges a flat sum.
- Set Rounding, usually
NEARwith whole rupees. - If the fund pays money back out, fill the Disbursement Policy group: a third wage type for the withdrawal, and the three figures from the trust deed. Leave the whole group empty if a man may take his money whenever he asks.
- Tick Active, and save. There is no separate step to release the scheme: saving is enough.
- Attach the scheme to the men it applies to on the Employee Policy Profile.
- Run one payroll and check one man's two lines by hand against The maths before the client sees it.
Scenarios
"EOBI rates have changed from 1 July"
Do not edit the existing line. Set its Effective To to 30 June, then add a new line from 1 July with the new figures. Both lines stay, and a payslip reprinted for May still comes out on the old rates.
"Our provident fund is 8.33 percent of basic from both sides"
Basis BASIC, Wage Ceiling zero, both rate percentages 8.33, both fixed amounts zero. Two wage types, one deducting and one not.
"Where do I see a man's provident fund balance?"
On the Provident Fund Ledger list. There is no balance field on any entry screen and no stored total: the ledger adds up what every posted payroll run wrote through the scheme's wage types, plus whatever opening balance was loaded at go-live. Per man it shows the opening balance, the two shares the date range added, anything disbursed out of the fund, the closing balance, and what the Disbursement Policy above would let him take today.
One honest limit. An opening balance loaded at go-live carries no scheme of its own, so it is attached to the scheme whose Scheme Type is PF. A legal entity running two live provident funds at once would see that opening balance counted under both.
"A man wants half his fund as an advance"
Set the policy on the scheme first: the three figures and a Withdrawal Wage Type. Read what he may take from the Provident Fund Ledger, then enter that amount as a line on Employee Additional Payment Or Deduction against the Withdrawal Wage Type. Type more than the policy allows and the save is refused, with a message naming what the fund holds, what may be taken and why the rest may not.
"The scheme is set up and nothing is being deducted"
Three things to check in this order: the scheme is ticked Active, there is a rate line whose dates cover the end of the pay period, and the man's policy profile reaches this scheme - either its Contribution Schemes grid is empty, which means every scheme applies, or the scheme is one of the lines on it. A profile with No Contribution Scheme Applies ticked is in nothing at all. A blocked wage type will also stop it silently.
What it is connected to
- Needs two Wage Types, three if the fund pays money back out, and a blocked wage type stops the whole contribution for everybody.
- Applied only to the men whose Employee Policy Profile reaches this scheme. A profile with an empty Contribution Schemes grid is in every scheme; a profile that lists schemes is in only those; a profile with No Contribution Scheme Applies ticked is in none.
- The rate line is matched against the end date of the period from the Payroll Cycle, so a period with the wrong end date can pick the wrong line.
- The employee share reduces net pay and the total deduction. The company share does not, which is why its wage type matters.
- The Provident Fund Ledger list is where an accumulated balance is read. Nothing stores a running total, so it is added up on demand from the posted contribution lines and the opening balance loaded at go-live.
- A disbursement out of the fund is paid on Employee Additional Payment Or Deduction, which refuses any line larger than the Disbursement Policy here allows.
- The arithmetic, in five steps with worked numbers, is on The maths.
If something looks wrong
- "Nothing is deducted for this scheme" - the scheme is not ticked Active, or no rate line covers the end of the pay period, or the man's policy profile does not carry the scheme.
- "It stopped working this month and nothing was changed here" - one of the two wage types has been blocked, or the current rate line was given an Effective To that has now passed.
- "The deduction is far too small" - the Wage Ceiling is capping the basis. If there should be no cap, set it to zero rather than to a large number.
- "The percentage is being ignored" - a Fixed Amount is filled in on that side. A non zero fixed amount overrides the percentage completely.
- "It will not save and says two rate lines cover a date" - the new line starts before the previous one was closed. Set the earlier line's Effective To first.
- "It will not save and asks for a fixed basis or a minimum wage" - the basis you chose needs that figure.
FIXEDneeds Fixed Basis Amount,MINWGneeds Minimum Wage. - "We picked the wrong scheme type" - change it if you like, nothing calculates from it, so nothing will move. The one exception is a go-live opening balance, which is attached to the
PFscheme. - "It will not save and asks for the Withdrawal Wage Type" - you have set a minimum service, a vesting period or an advance cap, which is a policy, and a policy has to be paid out through something. Name the wage type or clear all three figures.
- "It will not save and says the Withdrawal Wage Type cannot also be a contribution wage type" - you have picked one of the two share wage types. A withdrawal has to be its own line, or every disbursement would read as a contribution and the balance would drift by double the amount.
- "A disbursement was refused although the man clearly has the money" - the message names the rule: he is short of the Minimum Service, or the company share has not vested yet, or the Maximum Advance % caps him. The ledger shows the same three figures.
- "The ledger shows a balance but the withdrawable column is empty" - the scheme has no Withdrawal Wage Type, so there is no policy to apply and nothing to pay one on. The balance is still real.