Labour relations
Certification, collective agreement, seniority, grievances and dues, in one file both sides read.


Odoo knows who works for you. It does not know which collective agreement covers that person, how much seniority they hold in their bargaining unit, or which clock is running on the grievance filed last week.
This module adds that half. The bargaining unit, carried by a company: a group where each site is a separate company has as many agreements as it has sites, each with its own expiry. The agreement and its clauses filed by subject, found without being hunted for. Seniority, carried by unit membership rather than by the employment contract: they are not the same, one grants a benefit and the other decides a layoff.
The posted seniority list is a dated photograph, not a view that recomputes. A correction made the following month does not rewrite the posting, and that is the whole point: a rank is challenged against what was posted, not against today's state.
The grievance lives in one place for both sides, and every step carries the agreement's delay and the deadline that follows from it. A file is rarely lost on the merits; it is lost on the calendar.
Dues are described by a rule holding the percentage and the flat amount together, declared by period, and reconciled against what the union received. ⚠️ Dues follow the unit, not the card: section 47 of the Quebec Labour Code requires the deduction from every employee in the unit, member or not. So coverage and membership stay apart, one deciding the deduction and the other the vote.
A workplace with no union sees nothing change: the absence of certification is a readable state, not a hole.
2 add-on modules
Employer sideObligations with reminders, the posted seniority list, job postings and movements, remittance preparation.
What the agreement requires of the employer, and when. An obligation carries its deadline, its recurrence and its reminder: the person answering for it gets the task before the date, because an obligation nobody is warned about is an obligation missed. Once done, an annual duty creates the next one and the old one stays on file with its date, since that compliance history is exactly what a union brings back out.
The posted seniority list is composed at one click as of the date you choose, then freezes. An error is fixed by posting a corrected, dated list, which leaves the trail of the correction instead of erasing it.
Job postings keep three doors to the same job apart: the ordinary posting, bumping and recall. Every bid carries its rank as of the posting, copied. ⚠️ Awarding to a less senior bidder is not forbidden, but the reason has to be written down: that is the text read back in a grievance.
The remittance is prepared one line per covered employee, and the agreement's rule applies to the base you enter. The gap between declared and computed stays visible: it gets explained or corrected, never erased.

Union sideMembership, meetings and votes, stewards and union leave, and reconciling the dues received.
The counterpart to the employer side. Membership keeps its history: a person leaves and comes back, and it is the history that answers "since when has she been a member". Signing a card never changes coverage, which comes from the certification.
Meetings count quorum on members present, not on the covered headcount: in a unit where many pay without having joined, those two numbers differ sharply. The share in favour is computed on votes cast, abstentions left out, otherwise votes the meeting carried would be counted as lost.
Stewards carry a dated bank of union leave, because what gets challenged is not the principle but the balance on the day of a refusal. A refused leave counts for zero hours and stays on file, with its written reason.
Reconciliation is the point of the rest: what the union received, what the employer declares having remitted, and the unit's covered headcount, side by side. A statement with no remittance linked is never called reconciled: the absence of a comparison must not read as a successful one.

Shall we look at your case together?
Tell us what you run today. We will tell you honestly whether Symbifox helps or not.
The catalog grows almost every month.
What gets added, what we learn deploying it, and nothing else. You leave whenever you want.
One confirmation email, and nothing before you follow its link. Then 10 welcome emails, one a week, then the updates. No tracker, no resale.