TrainGrid User Guide

Functions: Assigning & Recording

This area covers the daily training workflow: creating assignments with the Assign training wizard, running the Record Completion list (the master — step-by-step function reference.


This area covers the daily training workflow: creating assignments with the Assign training wizard, running the Record Completion list (the master training report), marking training complete, waiving, rescheduling, editing completions, attaching evidence, and running in-room sessions with the printed Class roll or the badge-scanning Scan check-in. Everything a coordinator does between "these people need this course" and "the record is complete and audit-ready" happens here.

In this section: Assign training (set a due date) · Record a past or impromptu session · Find records in the Record Completion list · Customize columns, sorting and saved views · Mark training complete · Waive an assignment (N/A) · Reschedule a due date · View a record's details · Edit a completion · Set the training source on a record · Attach files to a record · Export and print the training list · Print a class roll and record the session · Run a Scan check-in session · Recurring courses and the next occurrence · Delete an assignment record

Assign training (set a due date)

Create pending training assignments for one or more courses and any set of people, all in one submission. This is how future training obligations enter the system.

Where: Sidebar → Assignments (opens the "Assign training" page with three numbered step cards: Pick courses · Pick people · Schedule)  ·  Before you start: Requires the assign-training permission (Training Coordinator or Manager and above; the page itself says "Ask a Training Coordinator or Manager to assign courses" if you lack it). At least one active course and one employee must exist.

OptionWhat it does
Search courses…Multi-select course picker; rows are code-prefixed and searchable. Only active course versions at the target's locations are offered.
Add a group…Adds every course in a saved course group to the selection (union — never removes anything already picked).
New courseCourse managers can create a course inline; it is added to the list and selected immediately.
Individuals / Department / Location / EveryoneThe four targeting tabs. Individuals defaults; Everyone targets all active employees. Archived employees are never included.
Already completed (impromptu / past training)Switch that flips the wizard into past-session recording (see the next function). Off by default; only shown to users who can record completions.
Due dateRequired for a scheduled assignment; every created record carries it.
Notes (optional)Free text up to 1000 characters, shown on each created assignment record.
  1. In the sidebar, click Assignments.
  2. In step 1, "Pick courses", click the "Search courses…" button and tick one or more courses — each row shows the course code as a prefix before the full title. A badge counts your selection.
  3. Optional: click "Add a group…" to add every course in a course group at once, or "New course" to create a course inline without leaving the wizard (visible to course managers only).
  4. Selected courses appear as removable "CODE — Title" chips under the picker; click the × on a chip to drop one.
  5. In step 2, "Pick people", choose a tab: Individuals (search and tick people — "Select all shown" and "Clear" links are above the list), Department ("Choose a department…"), Location ("Choose a location…"), or Everyone (all active employees). A "N targets" badge and, on wide screens, a "Who will be assigned" side panel show exactly who is included.
  6. Read any amber hints: courses not available at the target's location will be skipped, and "N of these already have this training assigned and will be skipped" warns about duplicates before you submit.
  7. In step 3, "Schedule", set the "Due date". Optionally add "Notes" — they are visible on each assignment record.
  8. Check the sticky footer math — "N courses × N people = N assignments" — then click "Assign training".
  9. Success: the wizard is replaced by a "Training assigned" card stating how many records were created and their due date, listing any duplicates skipped or location-ineligible pairs excluded, with buttons "View these records" (opens the Record Completion list filtered to exactly these records), "Print the class roll" (single scheduled course only), "Assign more training", and — when you arrived from an employee page — "Back to <name>".
Good to know:
  • People who already hold an open assignment for a selected course are skipped automatically — assigning is idempotent and never creates duplicates.
  • Course/employee pairs where the course is restricted to locations the employee is not at are excluded, and the success card reports the count.
  • Deep link: clicking "Assign training" on an employee's page opens the wizard with that person pre-selected.
  • The success card's "View these records" opens the Record Completion list on the All view filtered to the course and due date — records that already matched that filter appear there too; the card's counts are what this submission created.

Record a past or impromptu session

Enter training that already happened — a toolbox talk held this morning, or a new hire's existing external certificate — creating one already-completed record per attendee in a single step, with no pending assignment ever existing.

Where: Sidebar → Assignments → step 3 "Schedule" → turn on the "Already completed (impromptu / past training)" switch  ·  Before you start: Requires the record-completions permission (the switch is hidden without it) in addition to being able to open the wizard.

OptionWhat it does
Completion dateRequired; defaults to today in the organization's timezone and cannot be later than today. Impromptu records carry it as their due date too.
Grade (optional)0–100, decimal allowed. Below a course's passing grade the completion records as Failed (with a warning shown first).
Hours (session)Decimal training hours 0–24 in 0.25 steps; stamped on every attendee's record — record the session once for the whole class.
Instructor (optional)Free text up to 200 characters; blank falls back to the course's default instructor.
  1. In the sidebar, click Assignments and complete steps 1 and 2 (pick the course(s) and the attendees) as usual.
  2. In step 3, "Schedule", turn on "Already completed (impromptu / past training)". The due-date field is replaced by session fields.
  3. Set "Completion date" (defaults to today; cannot be in the future).
  4. Optionally enter "Grade" (0–100; the placeholder shows "Pass ≥ N" when a selected course has a passing grade), "Hours (session)" (0–24, quarter-hour steps — every attendee's record receives these hours), and "Instructor" (blank uses the course default).
  5. If the grade is below the strictest passing grade among the selected courses, an amber notice appears: "Below the passing grade of N% — the completion will be recorded and flagged." You can still save; the record will carry the Failed status.
  6. Click "Assign & record completion".
  7. Success: a toast reports "Assigned N · N completed" (plus any next occurrences scheduled), and the success card offers "View these records" — the completed records now exist, one per attendee, dated in the past.
Good to know:
  • Records are created and completed immediately; recurring courses schedule their next occurrence from the completion date (the form says so in-line).
  • For an evidence-only external record (e.g. a valid WHMIS certificate from a previous employer): record it here, then open the record's View details to set the Training source to External with provider and certificate number, and upload the certificate under Attachments with type "Certificate".
  • Impromptu recording has its own date-specific duplicate handling, so the wizard's pre-submit duplicate hint is not shown in this mode.

Find records in the Record Completion list

The master training report — one list of every assignment record, filterable by status, employee, course, dates, location, department and delivery source. This is where daily completion work happens.

Where: Sidebar → Record Completion (page title "Record Completion", eyebrow "Records")  ·  Before you start: Any signed-in staff member can view the list within their location scope; the actions it offers depend on your role's capabilities.

OptionWhat it does
Status filter (button row)Incomplete (default — pending work), Overdue, Due soon, Pending, Completed, Expired, Failed (completions below the passing grade), All, N/A (waived).
Search employee, number or course…One search box covering employee name, employee number and course; up to 200 characters.
Due … to …Inclusive due-date range filter.
All coursesCourse filter listing each course's active version as "CODE — Title (vN)"; matching is by course family, so records earned on earlier versions still show.
Location / Department filtersNarrow by employee location (only offered when the org has 2+ locations) or department; default all.
All sourcesTraining-source filter: Internal, External or Online. A record's own source override wins over its course default.
Group byNo grouping (default), Group by employee, or Group by course — grouped rows get a header with a per-group count. Grouping and column sorting are mutually exclusive.
Show archived employeesOff by default; on, archived employees' records appear (marked with a crossed-eye icon).
  1. In the sidebar, click Record Completion.
  2. Pick a status in the button row at the top (labelled "Status filter"): Incomplete · Overdue · Due soon · Pending · Completed · Expired · Failed · All · N/A (waived). The list opens on Incomplete.
  3. Type in "Search employee, number or course…" — matching is live with a short delay; a spinner replaces the magnifier while it searches.
  4. Narrow further with the filter bar: the "Due … to …" date range, the course dropdown (defaults "All courses"), Location (shown only when the org has more than one), Department, the training-source dropdown ("All sources" / Internal / External / Online), and the grouping dropdown (No grouping / Group by employee / Group by course).
  5. Toggle "Show archived employees" to include records belonging to archived people.
  6. Click "Clear filters" (appears only when something is active) to reset everything at once.
  7. Success: the count line reads "Showing X–Y of Z records", with a pager at both top and bottom (50 records per page).
Good to know:
  • A dismissible hint under the toolbar teaches the core interaction: "Select rows to mark complete, reschedule, waive or email — or use the ⋯ menu on any row."
  • Only pending rows are selectable — completed, waived, expired or failed rows cannot be bulk-actioned (use the row's ⋯ menu → View details instead).
  • The floating selection bar (bottom of the screen) shows "N selected" with Mark complete, Waive, Reschedule, Email and Clear — each button appears only if your role holds that capability.
  • Rows with a paperclip icon carry attachments.
  • Page-header shortcuts sit beside the title: "Class roll", "Print badges" (employee managers) and "Scan check-in" (completion recorders).

Customize columns, sorting and saved views

Shape the Record Completion table to your job: hide columns you never read, sort by any column, and save filter combinations you use daily as named views.

Where: Sidebar → Record Completion → "Columns" and "Views" buttons (top right), and the column headers themselves  ·  Before you start: None beyond viewing the list. Column choices and saved views are stored in your browser, per device.

OptionWhat it does
Visible columnsPer-column show/hide checkboxes; choices persist in the browser (localStorage) and default to all visible.
Saved viewsNamed filter presets (status view + search + filters + sort, page excluded). Saving under an existing name replaces it.
  1. Open Record Completion.
  2. Click "Columns" and tick or untick entries under "Visible columns": Employee, Employee #, Course, Department, Due date, Status, Completed on, Grade, Training hours, Instructor, Cert. expiry, Competency. All are on by default.
  3. Click any column header to sort: first click ascending, second descending, third clears back to the default order. (Hours and Competency are derived values and are not sortable.) Applying a sort flattens any grouping.
  4. To save the current combination of status view, search, filters and sort: click "Views" → "Save current filters…", type a name in the prompt, and confirm.
  5. Re-apply a saved view any time from "Views" → "Saved views"; the active one shows a check mark. Delete one with its trash button (or the Delete key while it is focused).
  6. Success: the table immediately reflects your columns/sort, and your saved view reappears in the menu on every visit from this browser.
Good to know:
  • Sorting is server-side, so it orders the entire result set, not just the current page — and the CSV export carries the active sort so the file matches the table.
  • Grade values below the course's passing grade render red; the Failed status has its own badge and its own view in the status row.

Mark training complete

Record completions for one row or a whole class at once, capturing date, grade, session hours, instructor and a shared attendance sheet in a single dialog.

Where: Sidebar → Record Completion → tick pending rows → "Mark complete" in the floating selection bar (or a single row's ⋯ menu → "Mark complete")  ·  Before you start: Requires the record-completions permission. Only rows still in Pending status can be completed.

OptionWhat it does
Completion dateRequired; defaults to today in the org timezone, max today.
Grade (optional)0–100 decimal; below the passing grade the record becomes Failed (warned, never blocked).
Hours (this session)Decimal 0–24 in 0.25 steps, written to every selected record; feeds the Training Hours report.
Instructor (override)Up to 200 characters; blank uses the course's default instructor.
Attendance sheet / shared attachment (optional)One file, uploaded once and linked to all selected records; each row then shows a paperclip and the file appears under View details → Attachments and on each employee's profile.
  1. Open Record Completion (the default Incomplete view shows outstanding work; the header checkbox selects all selectable rows on the page).
  2. Tick the attendees' rows. The floating bar appears showing "N selected".
  3. Click "Mark complete". The dialog reads "Record a completion for N assignments. Recurring courses automatically schedule their next occurrence."
  4. Set "Completion date" (defaults to today; cannot be in the future).
  5. Optionally fill "Grade (optional)" (placeholder shows "Pass ≥ N" when a selected course has a passing grade), "Hours (this session)" (0–24, 0.25 steps — applied to every selected record), and "Instructor (override)" (blank keeps the course default).
  6. If the grade is below the strictest passing grade among the selected rows, the amber warning "Below the passing grade of N% — the completion will be recorded and flagged." appears; saving records the rows as Failed.
  7. Optionally click "Choose file…" under "Attendance sheet / shared attachment (optional)" — the file is uploaded once and linked to every selected record.
  8. Click "Mark N complete".
  9. Success: a toast such as "N completed · N next occurrences scheduled · attendance sheet attached to N records", with a "View records" action that re-opens the same filters on the All view (completed rows leave the Incomplete view immediately, so this is how you see what you just did).
Good to know:
  • Completing a recurring course automatically creates the next pending occurrence (see "Recurring courses and the next occurrence").
  • A completion recorded below the passing grade does not issue a certificate and counts as non-compliant everywhere (its own Failed view, matrix colour and report treatment).
  • For certificate courses, certificate expiry is derived once at completion from the course's certificate settings.

Waive an assignment (N/A)

Mark a pending assignment as not applicable with a documented reason — the compliant way to say "this person doesn't need this training" while keeping the record for audit.

Where: Sidebar → Record Completion → tick pending rows → "Waive" in the selection bar (or a row's ⋯ menu → "Waive (N/A)")  ·  Before you start: Requires the assign-training permission. Pending rows only.

OptionWhat it does
ReasonRequired free text (3–500 characters), stored on the record and written to the audit log.
  1. Open Record Completion and select the pending row(s) to waive.
  2. Click "Waive" in the floating bar (or ⋯ → "Waive (N/A)" on one row).
  3. The dialog "Waive assignment(s)" explains: "Mark N pending assignment(s) as not applicable (N/A). The record is kept for audit purposes."
  4. Type a "Reason" (at least 3 characters, up to 500 — e.g. "Role does not require this training").
  5. Click "Waive N".
  6. Success: toast "N assignments waived (N/A)"; the rows move to the "N/A (waived)" view, and the reason is visible on each record's details and in the audit log.
Good to know:
  • Waived records are excluded from compliance percentages as not-applicable rather than counted against the employee.
  • In the Workforce Competency report a waived required course counts as MET — a documented waiver is a decision, not a gap.
  • The waive reason shows in the record's detail sheet ("Waive reason" row) and in the Waive reason column of the CSV export.

Reschedule a due date

Move the due date of pending assignments — a postponed session, a rehire's stale training — without deleting and recreating anything.

Where: Sidebar → Record Completion → tick pending rows → "Reschedule" in the selection bar (or ⋯ menu → "Reschedule"; also available inside View details for a pending record)  ·  Before you start: Requires the assign-training permission. Pending rows only — completed or waived records cannot be rescheduled.

OptionWhat it does
New due dateRequired; minimum is today in the org timezone. Bulk selections default to today rather than any one row's date.
  1. Select the pending row(s) and click "Reschedule".
  2. The dialog ("Reschedule assignment" or "Reschedule N assignments") states the current due date for a single row.
  3. Pick a "New due date" — today or later; the field pre-fills with the row's current due date, or today if that date is already past.
  4. Click "Reschedule".
  5. Success: toast "Due date moved to <date>." (bulk: "N assignments rescheduled to <date>." plus any "skipped (already completed or waived)"). The date change is recorded in the audit log.
Good to know:
  • The dialog states it plainly: "The date change is recorded in the audit log. Completed or waived records can't be rescheduled."
  • Rescheduling changes the row's sort position but keeps your selection intact.

View a record's details

Open the full record sheet for any assignment — every fact an auditor asks for on one panel: dates, grade, instructor, certificate expiry, course version, competency, training source, attachments, notes and who recorded it.

Where: Sidebar → Record Completion → any row's ⋯ button ("Row actions") → "View details" (a side panel opens)  ·  Before you start: Any list viewer can open details; the editing sections inside are gated by role.

  1. In Record Completion, click the ⋯ button at the right end of a row and choose "View details".
  2. Read the header: course code, status badge, course title and the employee's name.
  3. Review the fact rows: Employee (linked, with # and an Archived badge where relevant), Department, Location, Due date, Completed on, Recorded by, Grade (with a "below N%" chip on failed grades), Instructor, Certificate expires (certificate courses), "Recurs every N days" (recurring courses), Waive reason (waived records), Notes.
  4. Below the facts: the "Course version" line (with a "Superseded" badge when a newer version is now current), the "Competency" section (competency-required courses only), and the "Training source" panel (Delivery / Provider / Certificate # / Location).
  5. Further down: Attachments, then role-gated sections — Reschedule (pending), Edit completion (completed), and Delete record (Administrators).
  6. Success: close the panel with the × or by clicking outside; nothing is changed by viewing.
Good to know:
  • Records permanently keep the course version they were completed against — a version bump never rewrites history; the sheet shows the earned version with its Superseded/Current state.
  • On competency courses a completed-but-unassessed record reads "Assessment pending — training is complete, competency has not been demonstrated yet."
  • "Recorded by" names the member who recorded the completion — blank on pending or legacy rows.

Edit a completion

Correct the date, grade, hours or instructor on an already-completed record — including deliberately re-grading below the pass mark, which flags the record as Failed.

Where: Sidebar → Record Completion → ⋯ → View details → "Edit completion" section (completed records only)  ·  Before you start: Requires the assign-training permission; the section only renders on records in Completed status.

OptionWhat it does
Completion dateRequired; max today in the org timezone.
Grade0–100 decimal; clearing it removes the grade. Below the passing grade the record flags as Failed.
HoursDecimal training hours 0–24 in 0.25 steps; feeds the hours reporting.
InstructorUp to 200 characters; blank falls back to the course default.
  1. Open the completed record via ⋯ → "View details" and scroll to "Edit completion".
  2. Adjust "Completion date" (max today), "Grade" (0–100), "Hours" (0–24, 0.25 steps) and/or "Instructor" (blank = course default).
  3. If the new grade is below the course's passing grade, an amber line warns: "Below the N% passing grade — this will flag as failed."
  4. Click "Save changes".
  5. Success: toast "Completion record updated." and the panel closes; the list refreshes with the corrected values (and the Failed status where applicable).
Good to know:
  • Certificates keep their issued term: correcting the completion date re-anchors an already-issued certificate at the validity it was issued under — it is never re-issued under the course's current policy, and editing a course's "Valid for (days)" never back-fills existing records. Re-issuing under a new policy means completing the training again.
  • If the record's completion had scheduled a recurring follow-up, correcting the completion date moves the follow-up's due date to match (certificate expiry wins; otherwise completion + interval).
  • Re-grading below the pass mark makes the record Failed everywhere — list view, matrix, compliance percentages — and a failed completion carries no certificate.

Set the training source on a record

Classify who delivered a specific training record — Internal, External or Online — and, for external training, capture the provider, certificate number and training location. One workflow covers internal and external training; these are attributes of the record, not separate modules.

Where: Sidebar → Record Completion → ⋯ → View details → "Training source" panel → "Edit"  ·  Before you start: Requires the record-completions permission to edit. External providers are picked from the Training providers directory (Administration → Training providers).

OptionWhat it does
DeliveryCourse default (inherit — the default), Internal, External, or Online / self-serve; drives the list's "All sources" filter, the CSV "Training source" column and the Internal vs External Training report.
ProviderPicker over active entries in the Training providers directory; deactivated providers stay displayed on records that already name them but leave the picker.
Certificate #The provider's certificate number for this record (optional).
Location (optional)Free-text training location for this record.
  1. Open the record via ⋯ → "View details" and scroll to "Training source". Untouched records show their course's default, e.g. "Internal (course default)".
  2. Click "Edit".
  3. Set "Delivery" — Course default, Internal, External or "Online / self-serve".
  4. For external training, pick the "Provider" from the directory, and fill "Certificate #" and "Location" (both optional).
  5. Click "Save".
  6. Success: toast "Training source updated."; the panel lists Delivery, Provider, Certificate # and Location — only the fields you filled in are displayed.
Good to know:
  • A record with no override inherits its course's delivery classification (In-person/Video/Practical courses fold to Internal; Online and External map to their own buckets).
  • External training never automatically makes anyone competent or qualified — competency assessment is a separate internal step on competency-required courses.

Attach files to a record

File certificates, signed sheets, photos and assessment evidence directly on the training record they prove — each under its correct type, so audit evidence is one click from the record.

Where: Sidebar → Record Completion → ⋯ → View details → "Attachments" section  ·  Before you start: Uploading requires the record-completions permission; removing an attachment requires the assign-training permission.

OptionWhat it does
Attachment typeCertificate (default), Competency evidence, Attendance sheet, or Other — the label the file is stored and displayed under.
  1. Open the record via ⋯ → "View details" and scroll to "Attachments".
  2. In the "Attachment type" dropdown choose Certificate, Competency evidence, Attendance sheet, or Other.
  3. Click "Upload" and pick the file.
  4. Success: toast "<Type> uploaded."; the file lists on the record with its type and size, downloadable via the download button, and the row in the training list gains a paperclip icon.
  5. To remove one (managers): click the trash button on the attachment and confirm "Remove \"file\" from this record?".
Good to know:
  • Attachments are optional — nothing about a completion or an assessment requires a file.
  • A shared attendance sheet uploaded in the Mark-complete dialog lands here on every completed record automatically; a signed class roll attached from the Class roll page instead files under the course's Materials & SOPs.
  • Attached files also appear on the employee's profile.

Export and print the training list

Take the filtered training list off-screen — a CSV that matches the table exactly (filters, source filter and sort included) or a printer-friendly report.

Where: Sidebar → Record Completion → "Export CSV" and "Print report" buttons (top right)  ·  Before you start: "Export CSV" requires the export-data permission (the button is hidden without it); "Print report" is available to all list viewers.

  1. Set the status view, search, filters and sort you want in the file.
  2. Click "Export CSV".
  3. Success: the file downloads as assignments-<view>_<date>_<time>.csv and a toast confirms "Exported N records." Its columns are: Employee, Employee #, Course, Course code, Version, Department, Location, Due date, Status, Completed on, Grade, Training hours, Instructor, Certificate expiry, Competency, Qualification, Training source, Waive reason, Notes.
  4. For paper: click "Print report" — a print-formatted page opens carrying the exact same filters; print from the browser.
Good to know:
  • The export always honours every active filter and the active column sort — a filtered screen never produces an unfiltered file.
  • Exports are capped at 5,000 rows: a larger result downloads the first 5,000, the filename gains "-partial", and a warning toast tells you to narrow the filters for the full set.
  • Competency and Qualification cells are blank for courses with no competency requirement, and derive identically to the on-screen column.

Print a class roll and record the session

Run a classroom session on paper: print a sign-in sheet for everyone with a pending assignment on a course, have attendees sign it, then bulk-complete from the signed copy and file the scan.

Where: Sidebar → Record Completion → "Class roll" button in the page header (page title "Class roll")  ·  Before you start: Anyone who can view the list can print; "Attach signed roll" requires the manage-courses permission; the follow-up bulk-complete requires record-completions.

OptionWhat it does
CourseRequired; "CODE — Title" picker. Nothing renders until a course is chosen.
Due from / Due toOptional due-date window narrowing who appears on the sheet.
Print orientationPortrait (default) or Landscape — set in-app because the page's print rule overrides the browser dialog's own orientation picker.
  1. From Record Completion, click "Class roll" in the header.
  2. Pick the "Course" ("Choose a course…") and optionally a "Due from" / "Due to" range — the sheet lists everyone with a pending assignment matching them.
  3. Choose the print orientation with the Portrait / Landscape toggle (portrait is the default for the sign-in layout).
  4. Click "Print sign-in sheet" and print the browser dialog.
  5. Run the session; attendees sign the sheet.
  6. Back on the page, click "Record completions" — it jumps to Record Completion pre-filtered to this course and date range, ready to tick attendees and use "Mark complete".
  7. Optionally scan the signed sheet and click "Attach signed roll" to upload it.
  8. Success: toast "Signed class roll attached — it's now under the course's Materials & SOPs." (To file the sheet on each attendee's record instead, attach it in the Mark-complete dialog.)
Good to know:
  • "Attach signed roll" files the scan under the course's Materials & SOPs (one copy per course); attaching in the Mark-complete dialog files it on each employee's record instead — the page header states this distinction.
  • The wizard's success card offers "Print the class roll" pre-filtered to the course and due date you just assigned.

Run a Scan check-in session

Record attendance for a live group session by scanning employee QR badges (or typing names/numbers) — every checked-in person gets a completed record in one tap, walk-ins included.

Where: Sidebar → Record Completion → "Scan check-in" button in the page header (page title "Scan check-in", eyebrow "Attendance")  ·  Before you start: Requires the record-completions permission (the header button is gated on it). Badges are printed via "Print badges" beside it (employee managers). Camera use needs browser permission; manual entry needs neither.

OptionWhat it does
CourseRequired; changing course mid-session asks to confirm and clears the checked-in roster.
Completion dateDefaults to today in the org timezone; cannot be future.
Instructor (optional)Up to 200 characters; blank uses the course default.
  1. From Record Completion, click "Scan check-in".
  2. Pick the "Course" ("Choose a course…"), confirm the "Completion date" (defaults to today, max today) and optionally the "Instructor (optional)" (blank = course default).
  3. In the "Scan badges" card, click "Start camera" and point the camera at each employee badge — each scan toasts "Checked in <name>" and adds the person to the "Checked in" roster on the right.
  4. No camera or an unreadable badge? Use "Manual entry — type an employee number or name" (e.g. "1042 or Jane Doe"), pick from the type-ahead or press "Add".
  5. Remove a mistaken check-in with the × on their roster row.
  6. When the room is done, click "Mark N complete".
  7. Success: toast such as "N marked complete · N newly assigned · N next occurrences scheduled"; the roster clears for the next session while course, date and instructor stay set.
Good to know:
  • Anyone checked in without an open assignment for the course is assigned one automatically, then completed — recurrence and certificate expiry are handled the same as everywhere else (the page says so under the button).
  • If your account cannot assign training, walk-ins are not silently dropped: a toast reports "N not assigned this course yet — a coordinator needs to assign it first."
  • Check-in deliberately captures no training hours — the kiosk stays a fast tap-through by design; add hours afterwards via Edit completion if needed.
  • Duplicate scans are ignored (a badge held in frame doesn't double-check anyone in), and already-checked-in people are filtered out of the type-ahead.

Recurring courses and the next occurrence

Understand what happens automatically when a recurring course is completed: TrainGrid spawns the next pending occurrence itself, so refresher cycles never depend on someone remembering to re-assign.

Where: Automatic — visible in the Mark-complete toast ("N next occurrences scheduled"), the wizard success card, and a record's View details ("Recurs every N days")  ·  Before you start: The course must have recurrence configured (its recurrence interval, and certificate settings if it issues one) on the course form.

  1. Complete any assignment of a recurring course (Mark complete, check-in, or an impromptu recording).
  2. Read the success toast: it includes "N next occurrence(s) scheduled".
  3. Open Record Completion on the Pending view and find the employee's new row for the same course — that is the spawned next occurrence.
  4. Success: the completed record and its future follow-up both exist; the derived states (Due soon, Overdue, Expired) then track the new due date automatically.
Good to know:
  • The next occurrence's due date is the certificate's stored expiry when the course issues one — the refresher comes due exactly when the certificate lapses; otherwise it is the completion date plus the recurrence interval.
  • Correcting a completion date later moves the follow-up's due date to match (using the certificate expiry as stored, never recomputed from the course's current settings).
  • Statuses like Overdue, Due soon and Expired are always computed from dates — never stored — so they update by themselves as the calendar advances.
  • Deleting a completed parent record also removes the follow-up occurrence it had scheduled, and the delete confirmation says so.

Delete an assignment record

Permanently remove a single assignment record — a data-entry mistake, a duplicate created outside the wizard — with the deletion written to the audit log. This is deliberately rare and restricted.

Where: Sidebar → Record Completion → ⋯ → View details → "Delete record" (red button at the bottom of the panel)  ·  Before you start: Administrator only (the delete-records capability is owner-level by default and the button does not render otherwise).

  1. Open the record via ⋯ → "View details" and scroll to the bottom.
  2. Click "Delete record".
  3. Read the confirmation "Delete this assignment?" — it names the course and employee, notes the completion date, and warns that a follow-up occurrence scheduled by this completion will be removed too, that this cannot be undone, and that an audit log entry will be recorded.
  4. Click "Delete".
  5. Success: toast "Assignment record deleted." (or "…also removed N follow-up occurrences it had scheduled.") and the panel closes.
Good to know:
  • If a completed record spawned a recurring follow-up, deleting the parent removes that follow-up too, so compliance never counts a phantom obligation.
  • For "this person shouldn't have this training requirement", use Waive (N/A) instead — it keeps the audit trail; delete is for records that should never have existed.