> For the complete documentation index, see [llms.txt](https://help.allwage.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.allwage.com/modules/councils/bibc.md).

# BIBC

The **Building Industry Bargaining Council (BIBC)** covers the building industry in the Western Cape. Each month, employers submit a return to the BIBC recording the number of shifts each employee worked, grouped by the BIBC's own week numbers, and file it through the BIBC's online returns portal — **eesi** (spelt "eesi", pronounced "Easy Platform").

AllWage produces this monthly return for you: set up your company and employees once, keep clocking as normal, and generate the return ready to paste into the eesi platform. This page is the full guide — follow the three steps in order and you're ready to file.

## Watch how it works

{% embed url="<https://www.youtube.com/watch?v=U_6s3oCoSU0>" %}

## What AllWage does — and what it doesn't

AllWage takes the monthly BIBC return off your plate. It doesn't change anything else about how you work with the council. To be clear about the scope:

* **It builds your return from your own clocking data.** Your employees already clock in and out — AllWage turns those records into the shifts-per-week format the BIBC requires. There's nothing extra to capture.
* **The BIBC never sees your AllWage account.** The process only runs one way: AllWage produces a return *from* your data, and you decide what to submit. The council only ever sees what you choose to paste into their platform.
* **You stay in control.** Nothing is submitted automatically. You review the return, paste it into the eesi platform, and submit it yourself.
* **It doesn't change your levy, contributions, or council relationship.** AllWage only compiles the monthly return — your contributions, levies, and everything about how you deal with the BIBC stay exactly as they are.
* **Your payroll stays as it is.** Enrolling an employee adds them to your monthly return; it doesn't add, remove, or recalculate any deduction. BIBC deductions and contributions are still set up on payroll the same way you do today.
* **You don't need payroll to use it.** The return is built entirely from your clocking data, so you can use it whether or not you run payroll on AllWage.

## How the BIBC year works

The BIBC runs on its own financial year: **1 November to 31 October**. Week numbers follow this year, not the standard calendar. AllWage handles the week numbering for you based on the BIBC's published calendar.

## Before you start — find your latest BIBC return

The fastest way to set up is with your most recent **Detailed Benefit Sales Return** — the standard spreadsheet you complete for the BIBC every month and submit on the eesi platform. It already contains everything AllWage needs:

<figure><img src="/files/WcQBho5lmgHQfefu6AXc" alt="The BIBC Detailed Benefit Sales Return"><figcaption><p>The Detailed Benefit Sales Return — everything you need for setup is on this sheet</p></figcaption></figure>

| On the return                           | What it gives you                                     |
| --------------------------------------- | ----------------------------------------------------- |
| **Employer number** (top of the sheet)  | Your BIBC Registration Number                         |
| **Holiday Fund Number** per employee    | Captured on each employee's enrolment                 |
| **Benefit Code** per employee, per week | The latest week shows each employee's current code    |
| **MAN Number** per employee             | The employee's number — used to match them to AllWage |

Keep the return open while you work through the steps below. You'll also need:

* Your employees set up on AllWage, with **employee numbers that match the MAN Numbers** on your return
* Clocking running as normal — shifts are counted from the time & attendance data you already capture

{% hint style="info" %}
**An employee has no Holiday Fund Number?** They must first be registered with the BIBC — the council can't credit contributions to an employee without a valid Holiday Fund Number. Register them with the BIBC, then enrol them on AllWage once their number is issued.
{% endhint %}

## Step 1 — Enrol your company

1. Navigate to [Payroll / Settings / Companies](https://app.allwage.com/#/payroll/settings/details/list) and open your company.
2. Scroll to the bottom of the company page and add the **BIBC** under the Councils section.
3. Enter your **BIBC Registration Number** — the Employer number at the top of your return.
4. Select your **shift source**. If you don't have your own shift measure yet, use the default **Required Day (7+ Hours)** — it comes with every company and counts a shift whenever an employee works more than 7 hours on a weekday.
5. Save — your company is enrolled.

{% hint style="info" %}
**Only using time & attendance (no payroll)?** You may not have a company in AllWage yet. Create your company first under Payroll / Settings / Companies, then follow the steps above.
{% endhint %}

{% hint style="info" %}
**Working weekends?** The BIBC counts shifts Monday to Friday, which is what the default measure follows. If weekend shifts should count towards your return, create a custom metric with your own rules and select it as the shift source instead.
{% endhint %}

## Step 2 — Enrol your employees

Each employee's BIBC enrolment captures:

| What you capture                       | What it's for                                                                                                                                                                                                                                                                          |
| -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Holiday Fund Number**                | The employee's unique BIBC number, assigned when they first register with the BIBC. It's kept for life — if they leave and return, the same number is reused.                                                                                                                          |
| **Benefit Code**                       | The employee's labour category / skill level — the latest week's code on your return. If an employee upskills later, schedule the new code from the week it takes effect — see [Changing an employee's details after enrolment](#changing-an-employees-details-after-enrolment) below. |
| **Shift source override** *(optional)* | Only for an employee whose shifts are counted differently from everyone else (for example, a site manager). If left blank, the company's shift source is used.                                                                                                                         |

To enrol everyone at once:

1. Go to [Management / Employees](https://app.allwage.com/#/system/employees/manage) or [Payroll / Employees](https://app.allwage.com/#/payroll/employees).
2. Select the employees, click **Manage**, and choose **Enrol in council** → **BIBC**.
3. Fill in the details — there are two ways:

### The quick way — upload your return

If you have your Detailed Benefit Sales Return, you don't need to capture anything by hand. Upload the return (Excel file) in the panel and AllWage fills everything in for you:

* Each employee is matched by their **employee number** — the MAN Number on the return.
* Their **Holiday Fund Number** is captured from the return.
* Their **Benefit Code** is taken from the latest week on their row.
* **Enrolment dates** default to the start of each employee's active period.

Everything stays editable before you confirm — nothing is enrolled until you've reviewed. The panel flags anything that needs your attention: an employee number on the return that doesn't exist on AllWage, a name that doesn't match the employee (check the employee number), or a missing Holiday Fund Number.

### The manual way — capture the details in the panel

No return on hand? Capture the details directly — the quickest order:

* **Bulk Manage** (top of the panel): set every enrolment date to the start of each employee's active period in one step, and apply shared Benefit Codes to groups at the same skill level.
* **Per employee**: click an employee and enter their Holiday Fund Number.
* **Prefer a spreadsheet?** Use **Download & Upload**: download the file of selected employees, fill in the Holiday Fund Numbers and Benefit Codes, and upload it back.

Whichever way you fill it in: resolve anything the panel flags, then confirm to enrol the group.

For enrolment rules that apply to every council — one council per employee, active periods, editing details later — see [Enrolling Employees](/modules/councils/enrolling-employees.md).

## Changing an employee's details after enrolment

People upskill, change labour category, and move teams. Rather than overwriting the employee's details — which would quietly change earlier returns — you **schedule** the change to take effect from a chosen week. Returns before that date keep the previous values; returns from that date onward use the new ones, and AllWage keeps the full history.

Two options live in the same menu — pick the right one:

* **Update basic details** — for corrections that apply immediately and replace the current values (for example, a mistyped Holiday Fund Number).
* **Schedule council changes** — for real changes that take effect from a date (a new Benefit Code, a different shift source).

There's no bulk option for scheduling changes — you do this per employee:

1. Navigate to [Payroll / Employees](https://app.allwage.com/#/payroll/employees) and click on the employee.
2. On the employee details page, scroll down to the **Councils** section — you'll see the employee's BIBC enrolment.
3. Click the three-dots menu on the right and choose **Schedule council changes**.

<figure><img src="/files/kMUhLq3tuPg9KOVJKtdH" alt=""><figcaption><p>The Councils section on the employee details page</p></figcaption></figure>

4. Pick the date the change takes effect (**Update effective from**). Only **Saturdays** can be selected — see the note below.
5. Enter a **reason for change** — a short note for your own records (for example, "Upskilled" or "Moved sites"). You'll see it again in the employee's history.
6. Select the new **Benefit Code**. It applies from the selected week onward.
7. Optionally, change the employee's **shift data source** — for example, the employee moves to a team that works weekends and their shifts should now be counted by a different measure. If left as inherited, the company's shift source continues to apply.
8. Click **Schedule**.

<figure><img src="/files/Aw49D4XExDKGpD0JxXB1" alt=""><figcaption><p>Scheduling a council change — the new values apply from the selected week</p></figcaption></figure>

{% hint style="info" %}
**Why only Saturdays?** The BIBC's calendar week starts on a Saturday, and changes are scheduled on full weeks. This keeps each week on a single Benefit Code — otherwise you'd end up having to file two separate returns for two codes in the same week.
{% endhint %}

Once a change is scheduled, a **History** label appears next to the employee's BIBC enrolment. Click it to see how the employee's council details changed over time — each change with its date and reason — and to edit a scheduled change if something was captured incorrectly.

## Step 3 — Generate and file your monthly return

1. Make sure the month's clocking is complete and exceptions are sorted — the return is built from your shift data.
2. Go to **Payroll / Reports → Council Reports → BIBC** and select the month.
3. Resolve any issues the month flags — the return is blocked until the underlying data is complete.
4. **Set your report period.** The start and end dates default to the first and last day of the month. If you submit your BIBC return for the same period as your payroll, and your payroll doesn't run on calendar months, change the dates to your payroll period instead.
5. **Preview the submission** and check the figures: each enrolled employee, their shifts per BIBC week, and their benefit codes.
6. **Finalise** the return.
7. Click **View & Download Submission** and copy the return to your clipboard (or download it as a text file).
8. Paste it into the eesi platform and submit there.
9. Come back and **mark the month as submitted** — the month turns green, and you're done.

{% hint style="info" %}
**Payroll period offset from the calendar month?** Say you run payroll from the 25th to the 24th: for your June return, set the report dates to 25 May – 24 June. The return covers those dates but still counts as June's submission. Once you finalise, AllWage remembers your offset and pre-fills the right period every month after — and checks that consecutive months line up, so no day is missed or filed twice.
{% endhint %}

From then on it's a monthly rhythm: clock as normal, generate, review, finalise, paste into eesi, mark as submitted. If you spot a mistake after finalising, fix the underlying data and use **Regenerate** on the month — see [Council Reports & Submissions](/modules/councils/reports-and-submissions.md) for the full flow and month statuses.

## What's coming next

The current version focuses on producing the monthly return. Automating BIBC payroll deductions and contributions, and a reconciliation report to check payroll against your return, are planned for future releases. For now, BIBC deductions continue to be set up manually on payroll.

Stuck on any step? Reach out via our [support channels](/fundamentals/support-channels.md) — we've helped customers through this exact setup and are happy to walk it with you.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.allwage.com/modules/councils/bibc.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
