Use Cases
Every one of these is the same module with a different claim item configured. Nothing below is a separate feature — the approval workflow, the required fields and the payment option on the claim item are what make one look nothing like another.
The examples use the wiki’s running example business, GadgetSphere Sdn Bhd, a Malaysian multi-branch consumer-electronics retailer with three companies and 22 branches.
1. Ordinary staff expenses — the ad-hoc route
The shape. A branch supervisor at GS-KV-03 drives to a supplier to collect a warranty
replacement, parks, and buys lunch on the way back. Three lines, one claim.
Configure it as:
| Setting | Value |
|---|---|
| Approval Workflow | Non-Chargeable — the drop-down’s ordinary case, stored as EMPLOYEE_ORG_CHART |
| Approval Setting | Two levels — branch manager, then regional manager. Quorum 1, any one to approve |
| Payment Processing Option | Finance payment, the default on a new claim item. After the last approval each line waits for finance review until the month’s claim cycle for its expense company collects it — and only lines whose final approval falls on or before that cycle’s approval cut-off date. A line approved after the cut-off is left for a later cycle |
| Required fields | Vendor, receipt date and receipt number; attachment. These switches are what make the vendor and receipt boxes appear on the claimant’s line at all — with them off, the claimant is never asked for a receipt number |
| Threshold / UOM | On the mileage item only: RM 0.80 per KM. The claimant types kilometres and the editor writes the amount — 45 km becomes RM 36.00, before and after tax alike, so no tax is added to mileage. With DAYS the same rate is multiplied by travel days instead |
What happens. The supervisor submits. BigLedger looks up who holds the approval designation in
branch GS-KV-03, builds a two-level sequence, and e-mails level 1. Each approver sees the lines in
Pending Approvals and can approve individually or in bulk. When level 2 approves, the lines move to
PENDING_DOC_REVIEW and wait for the month’s cycle.
What to watch. This route depends entirely on the branch’s Approval Designation tab. Move somebody between branches without updating it and their team’s claims stop submitting, with a message naming the designation and the branch.
2. An annual allowance — the HR benefit route
The shape. Every employee has an annual medical allowance. Claims against it should stop when the allowance is used up, and HR rather than the line manager should approve them.
Configure it as:
| Setting | Value |
|---|---|
| Claim account | “Medical”, currency MYR, Display Entitlement Balance ticked. Despite its name, this tick is the switch for the balance check at submission, not only a display — see the warning below |
| HR Claim Approval on the account | One level, HR officer. Lines on this account ignore the branch’s approval designations entirely; the approvers are this list, level by level. If it has fewer levels than the claim item’s approval setting asks for, Submit is refused with HR/TIM are not fully configured… |
| Entitlement | Top-up RM 1,500, recurring annually, calculated by amount, validity 1 January – 31 December, prorated for new joiners |
| Employees | Linked by an Auto Top-up run each January, or uploaded in bulk. An employee with no balance on the account cannot submit against it at all — Claimant is not entitled to claim … — and that check runs even when the balance tick is off |
| Claim item | Approval Workflow = Non-Chargeable – Entitlement (CLAIM_ACCOUNT), Claim Account = Medical, attachment required. Choosing this workflow hides the item’s threshold: on this route the account’s balance is the limit, not a per-unit rate |
What happens. The employee submits a clinic receipt. Before anything is queued, BigLedger totals
what they have already spent and what is pending against the Medical account and refuses the line if
the new amount will not fit. On HR’s approval, a UTILIZE line reduces the balance and the line goes
to finance review.
Two refinements worth knowing:
- Account conversion lets a main account draw on a second, convertible account when it runs short — an optical allowance topping up from a general medical pool, for instance.
- Manual entitlement adjustment (an applet setting, off by default) lets HR hand-adjust an employee’s balance and validity. The adjustment is posted as a transaction line on the account, so it is auditable.
3. A client-chargeable expense — the engagement route
The shape. This is the route the module was originally built for: a professional-services firm whose staff incur expenses on client jobs and re-bill them. It still applies to any business that books cost to a job rather than a branch — an installation team at GadgetSphere Distribution, for instance.
Configure it as:
| Setting | Value |
|---|---|
| Approval Workflow | Chargeable (ENGAGEMENT_PIC) |
| Approval Setting | Levels tied to engagement roles rather than designations. If the engagement has nobody linked to it, editing the line shows The Approval is not set for the selected engagement and Save stays off; a role with no level set up for the branch is refused at Submit |
| Claim item | Billing company, billing financial item and billing GL code, carried for reporting. The markup ratio is stored on the claim item and nothing applies it — no line carries it and no report multiplies by it — so re-billing at a markup is a calculation you do when you raise the client invoice |
| Required fields | Engagement and financial-year-end on every line. Picking the engagement also moves the line’s cost-centre branch to the engagement’s billing branch, whatever branch the claim itself was raised under |
What happens. The claimant picks the engagement on the line. Approvers come from the roles recorded against that engagement, not from the claimant’s branch. The line carries both an expense side and a billing side, and if the billing branch differs from the expense branch it appears on the cycle’s Cross-Billing Report.
Reporting on it. The Claim Applet’s Engagement Report groups a claimant’s chargeable lines by engagement. The cycle’s Cross-Billing Report is the finance-side view of the same thing.
4. Expenses the company already paid — non-reimbursable
The shape. A corporate card or a direct supplier invoice paid the expense. Nobody is owed anything, but the cost still needs to be attributed to a branch, an engagement or a project.
Configure it as: nothing special on the item. The claimant ticks Non-Reimbursable on the line.
What happens. On submit the line goes straight to APPROVED with the approval date set to now.
It is never routed to an approver, never enters a claim cycle, and never appears on a Bank Report.
It shows up in the Claim Applet’s Non-Reimbursable Report.
5. Paying through payroll instead of the finance cycle
Any claim item can be set to Salary Payment instead of Finance Payment. Its lines are APPROVED
the moment the last supervisor approves and skip finance review: they never appear in a cycle’s
Inbox. Final approval attaches a line to its company’s cycle for that month when the cycle already
exists and the approval falls on or before the cycle’s approval cut-off end, and the line then shows
on that cycle’s Payroll Payment tab. A line approved after the cut-off joins the current month’s
open cycle only if Auto-add approved claims to active cycle is on in the Claim Cut-Off Logic;
otherwise it joins no cycle at all, because the later sweeps move only lines waiting for finance
review. So a mileage claim approved on the 28th, after a cut-off on the 25th, is missing from every
cycle’s tab. The Claim Cycle Applet’s Payroll Payment Report, with a CSV export for payroll,
finds it only with Claim Cycle left empty, and then lists every Salary Payment line from every
month with no approval date or cycle column. If you pay claims through payroll, switch Auto-add on:
every approved line then lands in an open cycle, and the cycle’s tab is the list to work from. It also puts
late Finance Payment approvals into the current month’s open cycle, so finance reviews them sooner.
Use it where the reimbursement genuinely rides on the payslip. Do not use it as a shortcut around finance review: nothing checks a salary-payment line after the supervisor.
6. Sampling — auditing a sample rather than every line
Where the volume is too high to check everything, the cycle’s Sampling tab draws a sample and records the result of checking each one.
| Option | What it does |
|---|---|
| Source | This cycle’s lines, or a previous sample. Drawing from a previous sample keeps only the lines that sample holds — a second, smaller check of the first — and switches Exclude previous samples off |
| Exclude previous samples | Leaves out every line already in any sample of this cycle, not only the last one, so repeated draws never check the same line twice |
| Size | Lines are drawn at random from whatever matches. 0, or a size larger than the match, takes every matching line |
| Type | Random employees picks whole claimants — every matching line of each chosen employee — and only then applies Size to those lines; a blank count takes everyone. Amount range compares the amount including tax and excludes both ends, so with a minimum of RM 500 a line of exactly RM 500 is not drawn. With no claim status chosen, the pool is approved, on-hold and under-review lines |
| Filters | Claim type, status, categories, items, finance checking date range, and flagged claims only |
“Flagged” comes from the background risk-score job, which marks a line when its receipt attachment has been used on another claim, or when the receipt date, amount or receipt number was edited away from what OCR read off the image. Each sampled line records a pass or fail, remarks and who checked it, and the Sampling Analysis Report summarises the results across cycles.
What every one of these has in common
Payment is manual. Whichever route a line takes, the module’s output is a report:
flowchart LR
L["Approved claim lines"] --> F{"Payment Processing<br/>Option"}
F -->|Finance payment| C["Claim cycle → finance review"]
F -->|Salary payment| P["Payroll Payment report"]
C --> B["Bank Report<br/>one row per employee"]
C --> V["PV Details Report<br/>one row per line, with GL code"]
B --> BANK["Bank portal<br/>uploaded by a person"]
V --> PV["Payment Voucher<br/>raised by a person"]
P --> PAYROLL["Payroll<br/>CSV handed over"]
There is no step in this module that debits an expense account or credits a payable. See Core concepts §7.