Seniority is a measure of how long an employee has been with the company. It is typically used...

  • To determine vacation entitlement. Provincial laws typically require companies to offer a minimum number of weeks per year of vacation, based on the employee's seniority.
  • To prioritize employees with more seniority for overtime work, time off and work schedule selection, etc.

Of course, different companies and collective agreements calculate seniority differently. The main differences are

  • How it is calculated
    Seniority can be determined by elapsed (calendar) time, or by counting hours actually worked.

    • By elapsed time is common for managers and white-collar employees, and for workers on leave.
    • By hours worked is common for casual workers, and sometimes for all blue-collar workers.
  • Multiple seniorites
    To handle multiple seniority values for employees, Umana lets you define multiple seniority categories. Most companies have just one. The different categories typically total time worked in different jobs, job groups, or unions.

Topics below...

How seniority works in Umana

Umana lets you define seniority categories, and rules on how to measure seniority, in the SENCAT and SENRULE tables respectively

For each employee Umana can calculate the employee's seniority in each category at any given date. To do so it uses an initial value, the employee's employment history (JOBHIST), and their hours worked (TIMEDT).

The result is displayed on the employees PERS (person) window, and available on reports.

Two main approaches

  1. By date only. You select a start (seniority) date to use from the employee's PERS record. Seniority is simply the elapsed number of years/months/days since that date.

    • With this approach, seniority keep accumulating while an employee is absent or laid off, unless the seniority date is adjusted manually.

    • Umana functions Years( ), Months( ), and Days( ) let you calculate elapsed time between dates

  2. By category (even if you only have one). This uses the new Umana seniority engine.

    It scans the employee's history (JOBHIST), and calculates their seniority for each interval (from one movement to the next), using the appropriate rule (depending on their status).

    Different rules may apply over time as the employee's status changes. You can control how inactive periods and long term absences are handled.

    The result is the sum of seniority over all intervals, plus an initial value.

    • The Umana Senior( ) function invokes the seniority engine to give you the seniority for a given person, category, as-of date.

Calculation process

(Seniority by category only) The seniority engine works by scanning the person's employment history (JOBHIST).

For each time interval where the employee has a constant status (from one JOBHIST movement to the next), the seniority engine goes to the SENRULE table to find the appropriate rule for the category and the employee's status.

There are two types of calculations. The SENRULE says which one to use:

  • Elapsed time (calendar time) from the start to the end of the interval
  • Hours worked during the interval, using a counter. The SENRULE also specifies which counter to use.

Take a moment now to read about SENRULEs

LTD and INAC periods

You might want to count seniority when an employee is Long Term Leave (LTD) or inactive (INAC) — in some cases but not all.

Umana distinguishes different kinds of LTD or INAC status by the movement code (JACTION table) that changed the employment status (JSTAT). (Movements that affect the JSTAT are called major movements.) Each SENRULE specifies the kinds of LTD and INAC absences to be included.

These intervals are always measured in elapsed time, since there are usually no attendance transactions.

Filtering the SENCAT

Typically different Seniority categories (SENCATs) are for hours worked in different jobs, locations or departments, or unions. If you have multiple categories, you need a way to specify to each category what to count.

  • For counter-measured intervals, the filtering is based on transactions in Attendance Detail (TIMEDT) , so it is limited to fields in the TIMEDT record: JOB worked, Department (ENTITY) worked in, Location (LOCN). (To filter by union select the jobs for that union.)

  • For elapsed-time measured intervals, Umana has to use the JOB/DEPT/LOCN from the employee's JOBHIST record. So this means that the entire interval is either included or not


Umana needs to add together elapsed-time and hours worked, calculated from different intervals. To add together these different units, Umana needs a way to convert between them.

It does so using the number of FTE (full-time-equivalent) hours per day, for that employee, during each interval. This factor can vary between intervals. Umana accumulates hours-worked and calendar-days separately for each interval, making both totals available.

  • When hours-worked are needed, the hours total is returned.
  • When years / months / weeks / calendar-days are needed, the calendar-days total is (converted and) returned.

For each seniority category, you can specify the units to display by default. In any case, you can obtain results in whatever units are required.

  • Rounding issues: Converting to calendar days to years or months is not exact because months vary in length. Years too.

Saved intermediate totals

Umana can store intermediate results — such as at the end of each year — to avoid always accumulating time many years to determine an employee's seniority by category. There is a tool to do so.

One of those is partial totals is the initial (opening) balance for seniority accumulated before Umana start-up.

Configuring Seniority Rules

For seniority by date only, for you can configure each time bank (attendance plan) which date field to use.

For seniority by category (the new seniority engine) there are more configuration choices

  • The SENCAT table lists of seniority categories. (You need at least one. Many companies only have one.)

  • The SENRULE table specifies how seniority is calculated for each JOBHIST interval, based on the employee's status at the time. It can calculate elapsed time, or by hours worked using a counter.

    In the SENRULE you specify which counter you use. You can specify which kinds of LTD and INAC periods are counted.

  • In Options > Person > Seniority you specify additional seniority rules. You can specify up to two seniority categories show on the PERS window (seniority tab).

  • For Time bank plans, you specify which seniority category to use (instead of specifying which date field to use).

Viewing and Adjusting seniority

To view an employee's seniority, open their PERS window, seniority tab. The seniority part looks like this

Top row

  • Tools button to open seniority tools

  • As-of date for viewing: Changing this date only affects the seniority that is shown below; it is not stored.

    • Enter a future date to get an estimated seniority on that date.
  • Seniority Rank is a number to rank employees in order of seniority and to freeze it at a certain date. (Lower number = higher seniority.)

    You can change this employee's rank, or click on the icon to reassign the rank for everyone.

    • For sorting employees by seniority, it is much more efficient to sort on their seniority rank, because recalculating seniority for all employees in a list would be very slow.

Rows below

Below are one or two seniority values for the employee (from two categories). Which categories to display is configured in Options > Person.

  • Seniority value is the employee's seniority in the default units for that category.

    • Hover the mouse over it for a tool-tip with summary information, including the seniority in other units.

    • Click it to see the detail of how that seniority was calculated, from the last stored value for each JOBHIST interval.

      For a row calculated using a counter (see SENRULEs), you can double-click that row to show the transactions counted.

    • Right-click to open a menu with other options:

      The Intermediate totals option shows the history of all saved (frozen) values and their dates, including the initial opening balance. In modify mode, you can change the values there. Changes take effect immediately, even without clicking the SAVE icon, because they are not actually kept in the PERS record.

  • The initial value is the employee's opening seniority balance before the implementation of Umana. You can also change it here. Changes take effect immediately.

Using seniority


  • The SENIOR( ) function can be used in a report to print employee seniority. Click the link for details.

  • The Seniority: Assign rank & partial totals tool can record (freeze) intermediate totals, and/or to assign new seniority ranks sequentially. Look in Top-menu > Tools > Maintenance > Person & Jobhist

    This tool works for one category at a time, and produces a report of employees in seniority order.

    Recording new totals for a date overwrites any manual changes made from the PERS form for that date.

    You can also run this tool without updating the data base, to get the report.


  • Seniority reports are under Top-menu > Print > Person and start with the word Seniority. The tool mentioned above also prints a report.

Other modules

  • Time banks: For entitlement calculation, the time banks module uses employee seniority in months to find the right "bracket", to know how much vacation (the most common case) an employee is entitled to. Seniority by category is new (2022) in Umana, so if you use it be sure to check custom entitlement coding.

    For each time bank plan (seniority tab) you select a start date or seniority category to use to determine employee seniority.

    • When determining time bank entitlement using seniority by category, Umana adds .04 to the number of months before truncating, to give employees the benefit of the doubt for shorter months.
  • Absence Planner: When a manager approves absence requests, he can sort employees by seniority rank, and give those with higher seniority (lower rank) priority.

  • Work planner: When showing employees qualified to fill a time slot, Umana sorts them first by qualification level, and then by seniority rank.

© Carver Technologies, 2022 • Updated: 07/21/22
Comment or report a problem with this topic