Employee Management Manual
Treantly

Employee Management Manual

Creating, editing, and offboarding employee records — for HR & Super Admin
Covers: Adding Employees · Work Schedule · Status & Offboarding

From Adding a Record to Ending One

flowchart TD
    A["Add Employee
(Basic Info + Job Details)"] --> B["Redirected straight
into Edit"]
    B --> C["Set up Work Schedule —
fixed days, or mark as
flexible — before any
further save"]
    C --> D["Active / On-boarding —
normal portal access"]
    D --> E{"Employment ends?"}
    E -- No --> D
    E -- Yes --> F["Status changed to a
separated status +
End of Contract date
(both required together)"]
    F --> G["TA Portal access ends
3 days after that date"]
    G --> H{"Rehired later?"}
    H -- Yes --> I["Status changed back —
same record, full
access resumes"]
    H -- No --> J["Record stays on file"]
    

1Getting Started

Employee records live under Employees in the sidebar. The list shows every employee across every client, filterable by status. The search box matches across most of an employee's record — name, email, employee ID, client, role, address, phone, bank details, emergency contacts, and salary/rate details — so a client rate, VA rate, currency, frequency, or effective date typed into search will surface the matching employee. A sort dropdown next to search reorders the list by most/least recently updated (Newest/Oldest), or by Client Rate / VA Rate, high to low or low to high. Click a row's Edit button to open that employee's full record, or Add Employee at the top to start a new one.

Both the list's expanded row and the Add/Edit form are organized into tabs instead of one long scroll:

💡

Fields with a red * are required. Clicking Save with any of them empty highlights the missing ones instead of submitting — nothing is silently dropped. A tab with an unfilled required field inside it also carries a red * next to its own label, so you can spot which section needs attention without opening every tab.

2Adding a New Employee

Click Add Employee and fill in Basic Information and Job Details — the two sections that exist before the record itself does. Use the Search client & job button next to Client to pick from an existing job posting; it fills in Client, Client Code, and Role for you (those three fields are read-only otherwise).

Add Employee — Basic Information and Job Details filled in, Search client & job open.
💡

You're taken straight into Edit after saving, not back to the list. That's deliberate — the very next thing every new employee needs is a Work Schedule, and that can't be set until the record exists (it needs a real employee ID to attach to).

Reusing an existing record

If you're bringing back someone who already has an employee record in the system (see Ending an Employment for why records aren't deleted), search for them from the Add Employee flow instead of creating a duplicate. Reuse mode skips onboarding and sets status straight to Hired — all of that employee's history stays attached to the same record.

3Basic Information & Job Details

Required fields you'll fill in when adding, and can update any time after:

Basic Information
FieldNotes
Employee IDThe unique identifier used for TA Portal login and every internal lookup. Must be unique — the save is blocked with an error if it's already in use by another employee.
Email AddressRequired. Secondary Email is optional.
First / Last NameRequired.
Primary AddressStreet, Region, Province, City, Zip, Country — all required. Region/Province/City cascade from each other.
Secondary Address, PhoneOptional.
Job Details
FieldNotes
StatusRequired. See Ending an Employment for what changing this to a separated status requires.
Client / Client Code / Role / Job CodeRead-only — set via Search client & job.
Date HiredRequired.
End of ContractRequired only once Status isn't Hired/On-boarding/Pooling — see Ending an Employment.
Milestone dates (First Month, EOP 3rd Month, 6/9 Months, 1/2/3 Year)Computed from Date Hired — the same dates that surface on the Dashboard calendar.

4Work Schedule

Open the Job Details & Schedule tab and click Edit Schedule in the Leave Balance & Work Schedule section to set a start and end time (and an optional break) for each day of the week this employee actually works. Days left blank stay days off.

Work Schedule editor — Mon–Fri 9:00–17:00 with a 12:00–13:00 break configured, Sat/Sun blank.
🚫

The record can't be saved until either a fixed schedule or a flexible-schedule note is in place. This applies to every edit, not just new employees — an old record missing both will block the next time anyone touches it, until one is set.

💡

Overnight and 24-hour shifts are supported. If an employee's End Time is earlier than their Start Time (e.g. 10:00 PM – 6:00 AM), it's treated as a normal overnight shift, not an error — the hours are counted as landing the next day. Setting the End Time equal to the Start Time (e.g. 8:00 AM – 8:00 AM) means a full 24-hour shift.

Saving the schedule automatically recalculates two things elsewhere:

💡

Overtime, On-Call pay rate, and Stipend settings also live in this same editor — see the next section for where those feed into payroll.

No Fixed Schedule

Some employees genuinely don't work a fixed set of hours (project-based, fully flexible arrangements). For these, uncheck This employee has a fixed day-by-day schedule at the top of the editor instead of forcing a day grid that doesn't reflect reality. The grid disappears and two fields take its place:

No Fixed Schedule fields
FieldNotes
Schedule NoteRequired — a short explanation of the arrangement (e.g. "Flexible hours, averages ~35/week"). This is informational only; it doesn't feed any calculation.
Agreed HoursOptional here. If left blank, expected-hours calculations default to a 40-hour week until a real number is entered — set it directly (e.g. 30 for someone who reliably works 6 hrs/day, or 750 for a monthly figure) whenever the actual total is known.
FrequencyWeekly or Monthly — how to read the Agreed Hours number above. Most no-fixed-schedule employees are Weekly; use Monthly for someone whose agreed hours were only ever negotiated as a monthly total (a Monthly value is converted to a weekly-equivalent internally wherever a weekly figure is needed, e.g. margin estimates).
💡

Turning "no fixed schedule" back off doesn't remove the schedule requirement — it just switches back to needing at least one real day filled in on the grid.

💡

A no-fixed-schedule employee's timesheet in the TA Portal doesn't get an automatic unpaid-break deduction — that check is skipped entirely when there's no day-of-week schedule to compare against.

⚠️

Agreed Hours is a real hard cap, gated by Allow Overtime. If a no-fixed-schedule employee's period total goes over their Agreed Hours (converted to that period's expected amount) and Allow Overtime isn't checked for them, the TA Portal blocks them from submitting that timesheet — same enforcement as a fixed-schedule employee. Check Allow Overtime (in this same Work Schedule editor) for anyone who's expected to occasionally exceed their agreed hours.

💡

The rate field next to Allow Overtime is a multiplier (e.g. enter 1.25 for 1.25× the base rate), the same convention as the On-Call rate field next to it — not a percent increase.

⚠️

For a Monthly-rate employee with Allow Overtime checked, this stops being just a submission gate: any cumulative hours for the calendar month (both pay periods combined) that exceed Agreed Hours are automatically paid as overtime at the configured multiplier — see the Payroll Processing manual's "Overtime Pay" badge for how that's calculated and shown. Make sure Agreed Hours and Agreed Hours Frequency (Monthly) are set accurately for these employees — that figure is the actual cap their overtime pay is measured against, not just a display number.

5Salary & Margin

The Salary & Bank Details tab holds two independent rates: what the employee is paid (VA Rate) and what the client is billed (Client Rate). Each has its own frequency and, as of this update, its own currency.

Salary fields
FieldNotes
Client RateWhat the client is billed. For VA Rate + Flat Fee billing this is the flat fee amount instead — see below.
Client CurrencyThe currency the client is billed in. Independent of Staff Currency — a client can be billed in CAD while the employee is paid in USD.
BillingThe client-billing frequency (Hour/Day/Week/Month/Quarter/Year), or VA Rate + Flat Fee for cost-plus-fee arrangements.
VA RateWhat the employee is actually paid.
Staff CurrencyThe currency the employee is paid in.
FrequencyThe staff pay frequency.
Effective DateRequired on every save. The real date this rate (or any other salary field) starts applying — see the callout below for what it actually drives.
💡

Whenever either currency is set to CAD, a small reference line appears underneath that dropdown showing today's rate (e.g. "1 CAD ≈ 0.7267 USD, Bank of Canada") — pulled live, for context only. It doesn't change what gets saved.

⚠️

Effective Date controls the payroll mid-period rate split (see the Payroll Processing Manual's "Rate changed mid-period" badge) — enter the date the new rate should actually start paying out, not today's date if you're processing the change a few days late. Every rate change is also logged with this same date for the audit trail, so it stays consistent between what payroll actually did and what the change history shows.

⚠️

Changing Frequency, not just Rate, is also tracked — if you move an employee from Hourly to a fixed Monthly rate (or any other frequency change) mid-period, payroll splits and prices that period automatically, shown as its own "Frequency changed mid-period" badge on the Payroll tab (separate from the rate-change badge above). Same rule applies: Effective Date is what payroll uses to decide where the split falls.

Margin preview

Next to Client Rate, a live Margin % shows what this arrangement is worth after paying the employee — (Client − VA) ÷ Client, normalized to an hourly basis first so a mismatched frequency (e.g. client billed weekly, staff paid monthly) doesn't produce a meaningless number.

When Client Currency and Staff Currency differ, the VA side is converted using the live CAD/USD rate before comparing, and the margin line notes that a conversion was applied. If the pair can't be converted (anything involving PHP — the live rate only covers CAD↔USD), the margin doesn't show at all; instead you'll see "Can't show margin — no conversion available for this currency pair", so a real mismatch is never silently misread as a good or bad number.

⚠️

This margin is a planning estimate, not the exact figure a payroll run produces — it uses this employee's own Agreed Hours (Weekly) to estimate a typical month's hours, not the real working-day count for a specific pay period (which varies with holidays). It's close, but for the exact number, check the Margin Alerts tab described in the Payroll Processing Manual.

🚫

Saving is blocked once the margin is confirmed zero or negative — fix the Client Rate or VA Rate first. This only applies once a bad margin is actually confirmed; it does not block saving when the margin simply can't be verified (e.g. a currency pair the live rate can't convert) — that's "unknown," not "confirmed bad."

VA Rate + Flat Fee billing

When Billing is set to VA Rate + Flat Fee, worked hours bill to the client at cost (VA Rate × hours, no markup), and the Client Rate field becomes a flat fee added once per invoice on top — this is the entire profit on that employee. No percentage margin is shown for this arrangement, since there's nothing meaningful to compare the flat fee against. If Client Currency and Staff Currency differ here, a note shows the fee's converted value in the staff's currency, purely for reference.

🚫

A $0 flat fee means this employee generates zero margin beyond any on-call/stipend lines — flagged both here and on the Payroll tab's Margin Alerts, and blocks saving until it's fixed (same rule as the negative-margin block above).

6Leave Balance, HMO & Loans

This form is where these get attached to an employee, not where the day-to-day workflow around them is documented — each has its own manual for that. Leave Balance lives inside the Job Details & Schedule tab, alongside Work Schedule; HMO and Loans share their own HMO & Loans tab, which only appears once you're editing an existing employee — there's nothing to attach a loan or HMO plan to until the record exists:

💡

Both HMO and Loans have a Regenerate unpaid action for rolling a stale schedule forward without touching terms that are already paid — see the Payroll Processing Manual before manually re-entering a schedule from scratch.

7Timesheet Approvers

Assign client-side approvers per employee — the people who review and approve that employee's timesheets from the Partner Portal. Pick from the client's existing approver list; there's no cap on how many can be assigned to one employee.

8Ending an Employment

Change Status to one of the six separated statuses to end an employment: Terminated, Resigned, Endo, Client Withdrawn, Va Withdrawn, or Awol.

🚫

End of Contract becomes required the moment you pick one of these. Save is blocked without it — this date is what everything below is calculated from, so it has to be accurate, not a placeholder.

Submitting the form shows a confirmation warning summarizing exactly what's about to happen before you commit to it:

Confirm Submission modal — "Heads up: status is changing to Terminated. Their TA Portal access will end 3 days after the End of Contract date (2026-08-06)."

What actually happens

💡

Rehiring uses the same record. Change Status back to an active value (e.g. Hired) and portal access resumes immediately — no End of Contract date is required for that direction, and nothing about the employee's prior history is affected.

9Tips & Troubleshooting

IssueWhat to check
Save button is disabled and nothing happens Check for the red Work Schedule banner — either at least one day needs a real start and end time, or (if "no fixed schedule" is checked) a Schedule Note needs to be filled in.
"The end of contract field is required" on save Status is set to something other than Hired/On-boarding/Pooling. Fill in End of Contract, it's now tied directly to how long that employee keeps portal access.
Save fails with an Employee ID error That Employee ID is already assigned to a different employee record — IDs must be unique across the whole system. Double-check for a typo or an existing record before assuming it's a new hire.
Client / Role / Job Code won't let me type Those three are read-only by design — use Search client & job to change them.
Agreed Hours looks wrong after editing the schedule For a fixed-schedule employee, it's recalculated automatically from whatever days/times are configured — check the schedule itself rather than editing Agreed Hours directly. For a no-fixed-schedule employee it's the opposite: it's a plain manual field (or blank, defaulting to 40) and won't change on its own.
A former employee says they can't log into the TA Portal anymore Expected 3 days after their End of Contract date. If they need longer, that's a deliberate exception, not a bug — there's no toggle for it, contact engineering if this needs to happen.
Margin % isn't showing next to Client Rate Either the billing is VA Rate + Flat Fee (no percentage margin for that arrangement — see Salary & Margin), or Client Currency and Staff Currency differ with no conversion path (a PHP pair). Check the warning text under the field for which case it is.
Save button is greyed out and I can't figure out why Check for a red margin warning under Client Rate first — Save is blocked once a margin is confirmed zero or negative (or the flat fee is $0). If that's not it, check for the Work Schedule banner instead (see Work Schedule) — both conditions disable Save the same way.