Skip to content
WinliumDocs

Policies

Create expense policies that set claim limits, receipt rules, allowed categories, advance rules and a mileage rate.

LimitedChecked against the product 06 Oct 2026

What this is for

A policy is a set of spending rules: how much a person may claim, when a receipt is needed, which categories are allowed, how large an advance can be, and the mileage rate. Winlium picks the policy for each person automatically. People cannot choose their own.

Before you begin

Before you begin

  1. Set up Expense Settings Company-wide values. A policy overrides some of them.
  2. Create your categories Needed for Allowed Categories.
  3. Make sure roles, departments and branches exist Only if you want to fill the audience lists. See the warning above.

Open the screen

In the menu choose Expense, then Configuration, then Policies. The page title is Expense Policies.

Screenshot pending

Expense Policies list with columns Name, Applies To, Max Single Claim, Advance Allowed, Active and Action

  1. 1New Policy starts a new policy.
  2. 2Applies To shows roles, departments and branches.

The list

Columns

ColumnWhat it shows
NameThe policy name. Cannot be hidden.
Applies ToThree lines: "Roles: ...", "Depts: ..." and "Branches: ...". Each shows the names chosen, or "All roles", "All departments", "All branches" when blank. Long lines are cut short; hover to see all.
Max Single ClaimThe limit in naira, or "—" if none.
Advance AllowedYes or No.
ActiveA switch. Selecting it turns the policy on or off at once.
ActionA menu of actions for the row.

Search, filters and sort

  • Search (placeholder "Search Name...") finds text in the name and the description.
  • Status (Active or Inactive) and More filters are offered but do not change the rows.
  • Sort is offered, but choosing a column does not reorder the list. Only the direction reaches the server, and the list stays ordered by newest first.
  • "Export", "Add columns", Rows per page (default 80) and the page buttons work as on Categories. With no rows you see "No results.". Double-click a row to open it.

Row actions

Menu itemWhat it does
Edit policyOpens the policy.
Deactivate policy or Activate policyTurns it off or on. No confirmation. You see "<name> deactivated" or "<name> activated".
Delete policyAsks "Are you sure you want to delete this expense policy? This action cannot be undone." with Delete and Cancel. It deletes the policy for good, even if it is in use. Expenses already created keep a copy of the rules they were made under.

How a policy is matched to a person

Every time someone creates an expense or an advance, Winlium looks at all active policies and picks one.

  1. A policy fits a person when each of its three lists (Roles, Departments, Branches) is blank, or contains the person's role, department or branch.
  2. If more than one policy fits, the one with the most lists filled in wins. The more specific policy beats the general one. If two tie, which one is used is not defined.
  3. If none fits, there is no policy. The person is then limited only by Expense Settings. If Require Policy Assignment is on, creating the expense fails.

Today step 1 treats every policy as fitting every signed-in person (see the warning above). Public submissions from employees do pass a department, so department matching does work there.

A draft keeps the rules of the policy it was created under. Editing the policy later does not change drafts that already exist.

Example. "Standard Staff Policy" has no audience and a Max Single Claim of ₦50,000.00. "Sales Executives Policy" is limited to the Sales department with a Max Single Claim of ₦150,000.00. By the rule, Sales staff get the second policy because it is more specific. Because of today's limit, both staff in Sales and everyone else may be given the second one.

Create or edit

  1. Open the form

    On the list, select New Policy. To edit, double-click a row or choose Edit policy.
  2. Name it

    Enter the Name in Policy Identity.
  3. Set the audience and limits

    Fill the sections you need. Leave the rest blank.
  4. Save

    Select the Save icon (hover text Save; Update when editing). You return to the list and see Policy created successfully! or Policy updated successfully!.

The page title is Create Expense Policy or Editing Expense Policy. The sections are Policy Identity, Who This Policy Applies To, Claim Limits, Advance Settings and Mileage.

Screenshot pending

Create Expense Policy form showing Policy Identity and Who This Policy Applies To sections

  1. 1Name is required.
  2. 2Roles, Departments and Branches. Blank means everyone.
  3. 3Claim Limits.

Field reference

Every number field accepts a blank. If you type something that is not a number, you see "Must be a number". A negative number gives "Cannot be negative". Numbers show thousands separators as you type.

Policy Identity

FieldTypeRequiredDetails
NameTextYes
Error if empty: "Policy name is required". Placeholder: e.g. Standard Staff Policy, Executive Travel Policy. Two policies may have the same name.
DescriptionText areaNo
Placeholder: Optional summary of who this policy is for and what it covers. Once saved with text, it cannot be cleared by editing.
ActiveYes/No switchNo
Only active policies are matched to people.
Default: On

Who This Policy Applies To

You can choose several values in each list. Up to three show as chips, then "+N more". A chosen role, department or branch that you later delete drops off silently when you save.

FieldTypeRequiredDetails
RolesMulti-selectNo
Leave blank to apply to all roles. Placeholder: Select roles (Loading roles... while loading). Has no effect for ordinary users today.
DepartmentsMulti-selectNo
Leave blank to apply to all departments. Placeholder: Select departments. Has no effect for ordinary users today.
BranchesMulti-selectNo
Leave blank to apply to all branches. Placeholder: Select branches. Has no effect for ordinary users today.

Claim Limits

FieldTypeRequiredDetails
Max Single Claim AmountNumberNo
Maximum amount for any single expense line under this policy. Leave blank for no limit. Placeholder: 0.00. The line total, tax included, is compared. A line over the limit is refused: Line "<desc>" (<amount>) exceeds this policy's maximum single claim amount of <limit>.
Default: Blank (no limit)
Max Monthly Claim AmountNumberNo
Maximum total claims per employee per month under this policy. Placeholder: 0.00. Checked when the expense is submitted. It adds up that person's approved and paid expenses for the month, by the month they were created, plus the one being submitted. Expenses still waiting for approval are not counted. The message reads: This submission would bring your total expense claims for <month> to ₦<total>, exceeding your policy limit of ₦<limit>. You have ₦<remaining> remaining for this month.
Default: Blank (no limit)
Receipt Required AboveNumberNo
Override company default for this policy. Placeholder: 0.00. Lines above this amount need a receipt, even where the category does not require one. If blank, Receipt Required Above in Expense Settings is used. The message reads: Receipt required for <category> line of ₦<amount>. Your policy requires receipts above ₦<limit>.
Default: Blank (use the company value)
Allowed CategoriesMulti-selectNo
Leave blank to allow all categories. Placeholder: Select allowed categories. Options are shown as code, a dash and name, and include inactive categories. A line in another category is refused: Category "<name>" is not allowed under this policy.
Default: None chosen (all categories)

Advance Settings

These fields stay editable even when Allow Advance Requests is off.

FieldTypeRequiredDetails
Allow Advance RequestsYes/No switchNo
When off, people under this policy cannot request advances. They see: Advance requests are not permitted under your current expense policy. Contact your administrator.
Default: On
Max Advance AmountNumberNo
Placeholder: 0.00. A larger request is refused: Requested amount exceeds the maximum advance amount of <n>. If blank, Maximum Advance Amount in Expense Settings is used.
Default: Blank
Advance Clearance DaysNumberNo
Days after disbursement to submit receipts before the advance is flagged overdue. Leave blank to use the company-wide default from Expense Settings. Placeholder: Company default.
Default: Blank (company default)
Block New Advance if Previous UnclearedYes/No switchNo
Leave off to use the company-wide default from Expense Settings for employees under this policy. That is true only until you touch the switch. After that the policy always sends On or Off and overrides the company setting, and you cannot return it to 'not set' from the screen.
Default: Off, and not set

Mileage

FieldTypeRequiredDetails
Mileage Rate Per KmNumberNo
Override company default rate for employees under this policy. Placeholder: 0.00. Used on mileage-based category lines. If blank, Standard Mileage Rate in Expense Settings is used.
Default: Blank (company rate)

Buttons and actions

ButtonWhereWhat it does
New PolicyListOpens the new policy form.
Save / Update (icon)FormValidates and saves. Problems show under the field, as toasts, or as "Please fix the form errors before submitting.".
New (icon)FormStarts a blank form. With unsaved changes it asks "Discard Changes?" with Discard and Cancel.

The form has no Cancel or Back button. While editing, an Activity Log at the bottom lists who changed the policy and when.

Statuses

A policy is active or inactive. Only active policies are matched.

Rules and error messages

Policy name is required

Appears: Save

Why it happens
Name is empty.
How to fix it
Enter a Name.

Cannot be negative

Appears: Any number field

Why it happens
You typed a number below zero.
How to fix it
Enter 0 or more, or leave it blank.

Must be a number

Appears: Any number field

Why it happens
The value is not a number.
How to fix it
Type digits only.

Expense policy not found

Appears: Opening a policy

Why it happens
The policy was deleted.
How to fix it
Go back to the list.

An expense policy is required — none matched this submitter

Appears: Creating an expense

Why it happens
Require Policy Assignment is on in Expense Settings and no active policy fits the person.
How to fix it
Create or activate a policy for them, or turn the setting off.

The messages for limits, receipts, categories and advances are in the field notes above. They appear to the employee, on their own expense or advance, not on this screen.

Who can do this

Administrator Needs expense:policies:read, expense:policies:create, expense:policies:update and expense:policies:delete. The pickers also need auth:roles:read, admin:departments:read, admin:branches:read and expense:categories:read. See Roles and permissions.

What this affects in other modules

  • Expense: limits apply when people create and submit expenses and advances. See My Expenses and My Advances.
  • Administration: roles, departments and branches come from there.

Next