Set up a provident fund from nothing
"We are starting a provident fund from the first of next month. Eight and a third percent from the man and the same from the company, on basic salary. The contract workers are not in it."
What is really being asked
He wants two lines on every payslip from a date he has chosen: one that comes out of the man's pay, and one that shows what the company is putting in without touching the man's pay. He also wants a group of people left out of it.
This is a Contribution Scheme. The whole thing is data: the rate, the base it is reckoned on, the ceiling, the rounding and the dates. A rate change next year is a new line on the same scheme, not a change to anything else.
There is one thing to tell him at the start, before he asks you for it in month three: there is no provident fund balance on any entry screen, and nothing in PeopleNest holds a running fund total. A man's accumulated fund is the sum of what has been paid through those two wage types across his posted payroll runs, plus whatever opening balance was loaded at go-live, and the place to read it is the Provident Fund Ledger list. 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 scheme's disbursement policy would let him take today.
Two honest riders on that. A client who had a fund before PeopleNest went live has to have that history loaded at go-live, or his men will appear to have started from nothing. And an opening balance loaded that way 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. See the maths for where the balance comes from.
What you need in place first
- Wage Type Group and Wage Type Category - something to file the two new wage types under.
- Employee Policy Profile - the profiles already exist and every employee is on one. Which schemes reach a man is recorded here, so a man with no profile is reached by nothing.
- Payroll Period - you need to know the end date of the first period the fund should apply to, because that is the date the scheme is tested against.
- The client's answer to four questions: the base (basic or gross), the two rates, whether there is a ceiling, and who is out.
Do this
Create the employee share wage type. Open Wage Type. Code
PF-EE, Name "Provident Fund - Employee Share". Wage Type indicatorOOther. Wage Type DirectionCCredit, because Credit is the only direction that actually takes money off net pay. Leave Taxable unticked. Save.Create the employer share wage type. Code
PF-ER, Name "Provident Fund - Company Share". Wage Type indicatorBBenefit. Wage Type Direction the third entry in the list, the one with no name of its own. That direction prints the line and does not deduct it. Leave Taxable unticked. Save.If this step is unclear, read an amount must print on the payslip but not be deducted first. Getting this one field wrong is the most expensive mistake on this page.
Create the scheme. Open Contribution Scheme.
- Contribution Scheme
PF - Description "Provident Fund"
- Scheme Type
PFProvident Fund
Scheme Type is required. Its five values are
EOBIEOBI - Old Age Benefits,SESSIPESSI / SESSI - Social Security,PFProvident Fund,GRATGratuity Fund andOTHEROther Contribution. Be clear with the client: nothing in the system calculates differently because of which one you pick. It is a label for reporting and for the humans who come after you. Every rupee of behaviour comes from the rate line below.- Employee Share Wage Type
PF-EE - Employer Share Wage Type
PF-ER
- Contribution Scheme
Add the rate line, on the Details tab. A scheme with no rate line will not save: "A contribution scheme needs at least one rate line".
- Effective From
01-Nov-2026 - Effective To - leave it empty for an open-ended line. The screen stores an open end for you.
- Contribution Basis
BASICBasic Salary - Employee Rate %
8.33 - Employer Rate %
8.33 - Wage Ceiling
0 - Rounding
NEARRound to Nearest
- Effective From
Check the dates cover the period end. The payroll run asks the scheme one question: what applied on the last day of the pay period. A line that runs from 1 November to 30 November is read by the November payroll because the 30th falls inside it. A line starting on the 5th of November is not read by a period that ends on the 30th if an earlier line already covers it, and is read if it is the only line covering the 30th. In practice: make the line start on or before the first day of the period and leave the end open.
Switch the scheme on. Tick Active and save. The payroll run ignores a scheme that is not ticked, completely and silently, with no line on anybody's slip and no message anywhere. This is the first thing to check when a scheme "does not work". There is nothing else to release: the run also requires the document to be complete, and saving does that for you.
Save the scheme.
Say which profiles the fund reaches. Open Employee Policy Profile. The Contribution Schemes grid names the schemes that apply to the people on a profile, and an empty grid means every scheme the company runs applies to them. So the profiles the fund should reach need nothing done to them at all.
The contract workers are the ones to open. If they are in no scheme whatsoever, tick No Contribution Scheme Applies on their profile and leave the grid empty. If they are in EOBI but not the fund, leave the tick off and add one line for EOBI, because a grid with lines on it means only what is listed. Put the reason in Remarks either way, because the next consultant will ask.
This is per policy profile, not per man. If some of the people on a shared profile are in the fund and some are not, you need a second profile. Create it, say there what applies, and move those men onto it on Employee Organization Assignment.
Run the payroll unposted. Open Payroll for the first period and create the run without posting it. Open a payslip for an included man. Both lines must be there:
PF-EEas a deduction andPF-ERas a printed figure.Only once the totals are right, post it on Post Payroll. See the first payroll run at a new client for what to compare.
If the fund pays money back out
A fund a man can draw on needs a third wage type and the four fields in the Disbursement Policy group on the scheme.
Create the wage type first: code PF-W, Name "Provident Fund - Withdrawal", Wage Type Direction D Debit, because a disbursement pays him. It must not be either of the two share wage types, and the screen refuses it if it is.
Then set Minimum Service (Years), Employer Vesting (Years) and Maximum Advance % to whatever the trust deed says, and leave all three at zero if the deed lets a man take his money whenever he asks. Setting any of the three without naming the Withdrawal Wage Type is refused: a policy with nothing to pay it out through cannot be enforced.
The withdrawal itself is a line on Employee Additional Payment Or Deduction against PF-W. That screen refuses a line larger than the policy allows, naming what the fund holds and which rule stopped you, so nobody can be paid out of a fund holding nothing.
The rules the screen enforces, in plain words
The arithmetic itself, step by step with worked numbers, is in the maths, and the lists are in value lists. What belongs here is the five rules that will otherwise make you fight the screen.
- A wage ceiling of zero means no cap at all. It does not mean a cap of zero. This one has caught everybody at least once.
- The Minimum Wage field is a floor as well as a basis. Put a figure in it on a line whose basis is Basic or Gross and it still acts as a floor: a man earning below it contributes as if he earned it.
- A non-zero fixed amount overrides the percentage, per side. A fixed employee amount beside a percentage employer share is a valid line.
- Two rate lines may not cover the same date. "Two rate lines cover 01-Nov-2026 - close the earlier line before the later one starts". When the rate changes, put an Effective To on the old line first, then add the new one starting the day after.
- A rate must be between 0 and 100, and at least one of the four numbers has to be non-zero, or the line will not save.
Where two clients differ
| Factory, statutory EOBI | Office, company provident fund | |
|---|---|---|
| Scheme Type | EOBI | PF |
| Contribution Basis | MINWG Statutory Minimum Wage | BASIC Basic Salary |
| Minimum Wage | 37000 | left zero |
| Employee Rate % | 1 | 8.33 |
| Employer Rate % | 5 | 8.33 |
| Wage Ceiling | 0, no cap, the base is already fixed | 0, no cap |
| Rounding | NEAR Round to Nearest | NONE No Rounding |
| Left off | the profile for apprentices | the profile for contract workers |
Both schemes can be live at once. An employee on a profile that leaves its grid empty is in both and gets four lines on his payslip, two per scheme, and that is correct.
How you prove it worked
- Run Payroll unposted for the first period.
- Open the payslip of a man on 60,000 basic. Work the figure out on paper from the maths before you look, then compare. A figure you worked out afterwards is a figure you talked yourself into.
- Check his net pay fell by the employee share and by nothing else. This is the test that catches the wrong direction on
PF-EE. - Check his net pay did not fall by the employer share. If it did,
PF-ERhas directionCCredit and must be fixed before posting. - Open the payslip of a man whose profile leaves the fund out. Neither line may be present.
- Take the payroll total for the
PF-EEwage type and compare it against the included headcount multiplied by the average contribution. It should be within rounding. A total that is a long way out usually means the base is gross where the client said basic.
What will go wrong
- Active was not ticked. Nothing happens, nothing is logged, and the first place anybody looks is the rate. Check the tick first, every time.
- The rate line does not cover the period end. The scheme is on, the flags are right, and the run still writes nothing. Compare the line's Effective From against the last day of the pay period, not the first.
- The employer share is given direction
CCredit. Every man's net pay drops by the company's own contribution. This is the single worst outcome on this page and the unposted dry run is what catches it. - The wage ceiling is set to zero expecting no contribution. Zero means uncapped. If the client wants nobody to contribute, close the rate line or untick Active.
- A blocked wage type. A blocked employee or employer share wage type writes no line, with no message. If one side of the scheme has vanished from the payslip, check whether somebody blocked the wage type.
- The client asks for a fund balance in month three. Read it on the Provident Fund Ledger list, not on an entry screen. What that list cannot tell him is what the fund is worth: profit the trustees declare is outside PeopleNest entirely. Agree in month one who keeps the trust's own accounts.
- A withdrawal is paid before the policy is set. With no Withdrawal Wage Type on the scheme there is no policy to enforce, and a disbursement typed on some other wage type is just an additional payment that the fund never sees. Set the policy before the first man asks, not after.