Skip to main content
Schoolyi
School librarian arranging books and planning cards in a bright library

Browse docs

Getting started

HR and leave troubleshooting

Fix leave approvals blocked on balance, substitutes that never reach the timetable, staff skipped by a payroll run, and appraisals a teacher cannot see.

Getting started guide for day and boarding schools.

Last updated August 29, 2026

The HR side of Schoolyi is four loosely coupled workflows — leave, substitute cover, payroll, and appraisals — and each has one gate that quietly stops the rest. Leave stops on entitlement, cover stops on timetable publish state, payroll stops on an approved salary assignment, and appraisals stop on record status. Identify the gate first; the fix is usually one field.

Leave requests and approval

Staff apply at /leave and see their own requests; Platform Admin, Principal, Vice Principal, and the office Admin role see everything and are the only roles that can approve or reject. Leave types are a fixed list — CL, EL, SL, ML, SCL, CPL, PL, CCL, HPL, EOL, DL, LWP, and OTHER — so you cannot invent a new type, only decide which ones you use and what each teacher is entitled to.

SymptomCauseFix
Approval refused with "Insufficient leave balance"Entitlement for that teacher, year, and type is lower than the working days requestedRaise the entitlement for that leave type and academic year, or approve with the override, which records the leave as exceeding balance.
Balance never decreases after approvalThe dates contain no working days, or the request has no academic yearEntitlement is only deducted when the range covers at least one working day inside a resolved academic year. Check the calendar for that week at /academic-calendar.
Second request rejected as overlappingAnother pending or approved leave covers the same datesCancel or shorten the existing request first; the overlap guard looks at both PENDING and APPROVED rows for that teacher.
Teacher cannot edit their own requestEditing is limited to pending rowsOnce a request is approved or rejected only an approver can change it. Ask the approver to revert or raise a fresh request.

Substitute cover

Choosing a substitute while approving leave creates one confirmed arrangement per published timetable slot for each working day in the range. That is the whole mechanism, and it explains most of the surprises: a draft grid produces no cover, a teacher with no published slots produces no cover, and a range that lands entirely on holidays produces no cover. The substitute must be a staff member and cannot be the teacher on leave. Teachers find their cover under /timetable on the My substitutes tab; leadership and the office Admin role also see the Tools tab for manual arrangements.

Payroll runs

SymptomCauseFix
Staff member missing from generated payslipsNo approved salary assignment covering the period endCreate or approve the assignment at /payroll/salary-assignments. Only APPROVED and active assignments are picked up.
Cannot import a salary from the HR recordNo official CTC on the staff profileRecord the CTC under /employment/finances first; the import reads that figure and then still needs a separate approver.
Regenerate button does nothing on an old runThe run is finalized or paidA finalized run refuses regeneration by design. Create a fresh run for the correction rather than editing history.
Finance staff cannot open payroll settingsTwo different gatesRuns, structures, and statutory processing need Platform Admin, Principal, Vice Principal, or Admin. Finance roles get read access to totals, finalize with budget, and statutory export only.

New staff accounts

  1. A Platform Admin creates the login at /users. Nobody else can create users.
  2. The role name decides the account type: Teacher, Principal, Vice Principal, and any Support Staff role become staff; Student becomes a student; Platform Admin becomes an admin account. A role outside that list leaves the account with no type, which is why a new hire can sign in but sees almost no navigation and never appears in teacher pickers.
  3. Creation generates a temporary password, forces a password change at first sign-in, and emails the invite. If SMTP fails the account still exists — resend the invite, which rotates the password.
  4. Add the employment record at /school-staff and set staffType. PRT, TGT, and PGT drive homeroom eligibility and the weekly teaching-load cap, so an empty staffType blocks class-teacher assignment later.

Appraisals

Appraisal cycles carry a status of DRAFT, ACTIVE, or CLOSED and a set of weighted criteria; a closed cycle refuses new appraisals. Individual appraisals are the thing that gets published, and publishing notifies the teacher and lets them acknowledge with a comment. Creating and editing cycles and appraisals is limited to Platform Admin, Admin, Principal, and Vice Principal; teachers get read access to their own published records only.

SymptomCauseFix
Teacher sees nothing at /teachers/appraisalsThe appraisal is still a draftPublish the record. Teachers are scoped to their own appraisals with status PUBLISHED or ACKNOWLEDGED.
Cannot add an appraisal to a cycleCycle is CLOSED, or the academic year does not match the cycleReopen the cycle or pick the matching academic year; both are validated on save.
Score does not match what was typedWeighted criteria override the manual figureWhen criterion scores exist the overall score is recalculated from them on a 0-10 scale. Edit the criterion scores, not the total.

Common questions

Quick answers in plain language.

Leave was approved with a substitute but no cover appears on the timetable. Why?+

Cover rows are generated from PUBLISHED timetable entries belonging to the teacher on leave. If the grid for that year is still a draft, or the teacher holds no published slots, approval creates zero arrangements and reports nothing wrong. Publish the timetable, then re-approve or add the cover by hand under Tools.

Why does approving leave fail with "Insufficient leave balance"?+

Approval checks entitlement minus leave already taken for that teacher, academic year, and leave type. Either raise the entitlement for that type and year, or resubmit the approval with the override so the leave is recorded as exceeding balance. Entitlement is set per teacher per type — there is no school-wide default applied automatically.

A payroll run generated payslips for fewer staff than expected. Which record is missing?+

Generation walks active staff and skips anyone without an approved salary assignment covering the period end date. A draft or rejected assignment counts as missing. Check /payroll/salary-assignments, get the assignment approved by a second Principal, Vice Principal, or Platform Admin, then regenerate.

Where do teachers see their appraisal, and why is it blank?+

Appraisals live at /teachers/appraisals — there is no /hr/appraisals screen. A teacher only sees their own appraisals once the record status is PUBLISHED or ACKNOWLEDGED. A draft is invisible to them no matter how complete it looks to HR.

Related searches

School leaders and IT teams often search for: how to module troubleshooting hr in school management software, best school software onboarding for K-12 schools, Schoolyi module troubleshooting hr guide, school ERP go live checklist, migrate from Excel to school ERP, and school software training guide.