NDSS CRM Manual / Chapter 8: Rostering & Shift Management
V3.8 · 2024/2025

Chapter 8: Rostering & Shift Management

Complete documentation of the NDSS CRM rostering module, including shift creation, calendar views, staff allocation, timesheet management, recurring shifts, shift notes, and unallocated shift alerts for NDIS service delivery scheduling.

8.1 Rostering Overview

The Rostering module is the operational backbone of NDSS CRM, enabling service coordinators, rostering officers, and team leaders to schedule, assign, and track support worker shifts for NDIS participants. The module provides both a list view and a weekly calendar view, with real-time status tracking, staff availability checking, and conflict detection.

Rostering is accessed via the Rostering link in the sidebar navigation. The landing page displays a summary of current shift statistics, filter controls, and the shift list. Users can toggle between List View and Week View using the view selector buttons.

8.1.1 Rostering Dashboard Wireframe

NDSS CRM - Rostering Module Overview
N NDSS CRM
Dashboard
Clients
Staff
Rostering
Finance
Compliance
Intake
Clinical
Learning
Messaging
Reports
Rostering & Shifts
🔔
JD
8
Total Shifts
6
Allocated
2
Unallocated
4
Confirmed
List
Week
Search shifts...
Status: All
Staff: All
Client: All
Date: This Week
+ New Shift
Shifts - This Week
Client Date & Time Staff Service Type Status Actions
Sarah Mitchell Mon 14 Oct, 09:00 - 13:00 James Wilson Daily Activities Confirmed ...
David Chen Mon 14 Oct, 10:00 - 14:00 Maria Garcia Community Scheduled ...
Emma Thompson Tue 15 Oct, 08:00 - 16:00 Unallocated SIL Support Unallocated ...
Tom Richards Tue 15 Oct, 14:00 - 17:00 Lisa Park Therapy In Progress ...
Amy Watson Wed 16 Oct, 09:00 - 12:00 Unallocated Daily Activities Unallocated ...
Fig 8.1 - Rostering module landing page showing stat cards (Total Shifts: 8, Allocated: 6, Unallocated: 2, Confirmed: 4), List/Week view toggle, search bar with filter chips, and the shift list table with status badges.

8.1.2 Rostering Module Access

Role Access Level Capabilities
Master Admin / AdministratorFullView, create, edit, delete all shifts. Approve timesheets. Manage recurring shifts. Access all reports.
Operations ManagerFullSame as admin. Full operational control over the roster.
Rostering OfficerFullPrimary roster management role. Full CRUD on all shifts and timesheets.
Service CoordinatorAssignedView and create shifts for their assigned clients. Cannot delete shifts created by others.
Team LeaderTeamView and manage shifts for their team members. Approve team timesheets.
Senior Support WorkerTeamView team shifts. Can view but not edit other team members' shifts.
Support WorkerOwnView only their own assigned shifts. Can clock in/out and submit timesheets.
Casual WorkerOwnView only their own shifts. Clock in/out and submit timesheets.
Client / FamilyViewView upcoming service schedules via the Client Portal. Cannot modify shifts.

8.2 Shift Calendar View

The calendar view provides a visual, week-at-a-glance representation of all scheduled shifts. Each day column displays shift blocks colour-coded by status, with client name and staff assignment visible at a glance. Users can navigate between weeks using the forward/back arrows and jump to a specific date using the date picker.

8.2.1 Weekly Calendar Wireframe

NDSS CRM - Weekly Calendar View
14 - 20 October 2024
Today
List
Week
Mon 14
Tue 15
Wed 16
Thu 17
Fri 18
Sat 19
Sun 20
09:00-13:00
S. Mitchell
J. Wilson
10:00-14:00
D. Chen
M. Garcia
08:00-16:00
E. Thompson
Unallocated
14:00-17:00
T. Richards
L. Park
09:00-12:00
A. Watson
Unallocated
13:00-17:00
S. Mitchell
J. Wilson
10:00-15:00
D. Chen
R. Brown
09:00-14:00
T. Richards
M. Garcia
No shifts
No shifts
Confirmed
Scheduled
In Progress
Unallocated
Completed
Cancelled
Fig 8.2 - Weekly calendar view showing shift blocks colour-coded by status. Each block displays time range, client name, and assigned staff (or "Unallocated" in red).

8.2.2 Calendar Interactions

  • Click a shift block: Opens a popover showing full shift details (client, staff, service type, status, notes) with action buttons (Edit, Cancel, View Notes).
  • Click an empty cell: Opens the "New Shift" dialog pre-filled with the selected date.
  • Drag a shift block: Moves the shift to a different day (requires Rostering Officer or Admin role). A confirmation dialog appears before the change is saved.
  • Hover over a shift: Displays a tooltip with the service type and duration (e.g., "Daily Activities - 4 hours").

8.3 Creating a New Shift

New shifts are created via the "New Shift" dialog, accessible by clicking the "+ New Shift" button on the rostering page or by clicking an empty cell in the calendar view. The form collects all required scheduling information and performs real-time validation including staff availability and shift conflict checking.

8.3.1 New Shift Form Wireframe

NDSS CRM - Create New Shift Dialog
Create New Shift ×
Client *
Search and select a client...
Shift Date *
Select date...
Start Time *
09:00
End Time *
13:00
Duration: 4 hours 0 minutes
Service Type *
Select service type...
Staff Assignment
Search and select a staff member (optional)...
Leave empty to create an unallocated shift
Location
Service delivery location...
Notes
Optional notes for this shift...
Make Recurring
Create this shift on a repeating schedule
Cancel
Create Shift
Fig 8.3 - The "Create New Shift" dialog with fields for Client, Date, Start/End Time, Service Type, Staff Assignment, Location, Notes, and a Recurring toggle.

8.3.2 Form Fields Reference

Field Required Type Validation Rules
ClientYesSearchable SelectMust select an active client. Searches by name or NDIS number.
Shift DateYesDate PickerCannot be in the past (except for admin backdating). Must be within the client's active plan period.
Start TimeYesTime Picker15-minute increments. Must be before End Time.
End TimeYesTime Picker15-minute increments. Must be after Start Time. Maximum shift duration: 24 hours.
Service TypeYesSelectMust match a valid NDIS support category configured in the system.
Staff AssignmentNoSearchable SelectIf selected, the staff member must be available during the shift time (no conflicting shifts). Checked in real-time.
LocationNoText InputFree text. Defaults to the client's home address if not specified.
NotesNoText AreaMaximum 1000 characters. Visible to the assigned staff member.
Make RecurringNoToggleWhen enabled, expands additional fields for recurrence configuration (see Section 8.8).

8.3.3 Service Type Options

Service Type NDIS Category Description
Assistance with Daily LifeCore - Daily ActivitiesPersonal care, meal preparation, household tasks, and day-to-day living support
Community ParticipationCore - CommunitySocial activities, community access, skill-building outings, and group programs
TransportCore - TransportTransporting participants to appointments, activities, and community engagements
SIL SupportCore - SILSupported Independent Living assistance in shared or individual accommodation
Therapeutic SupportCapacity BuildingAllied health sessions including behaviour support, OT, speech therapy, and psychology
Support CoordinationCapacity BuildingPlan implementation, service coordination, and provider liaison activities
Group ActivitiesCore - Daily ActivitiesGroup-based day programs and structured activities with multiple participants
Sleepover / Active NightCore - Daily ActivitiesOvernight support including sleepover (inactive) and active night (awake) shifts
Conflict Detection

When a staff member is selected, the system performs real-time conflict detection. If the selected staff member already has a shift that overlaps with the new shift's date and time range, a warning is displayed: "Conflict: [Staff Name] already has a shift from [time] to [time] on this date." The user can choose to proceed (creating a double-booking with a flag) or select a different staff member.

8.4 Shift Status Lifecycle

Every shift in NDSS CRM follows a defined status lifecycle from creation to completion. The status determines what actions are available, how the shift appears in the calendar, and whether it is eligible for invoicing.

8.4.1 Status Flow Diagram

NDSS CRM - Shift Status Lifecycle
Scheduled
Confirmed
In Progress
Completed
From any status:
Cancelled
From Confirmed/In Progress:
No Show
Fig 8.4 - The primary shift lifecycle flows from Scheduled to Confirmed to In Progress to Completed. Shifts can be Cancelled from any status, or marked as No Show from Confirmed or In Progress.

8.4.2 Status Definitions

Status Colour Triggered By Description
scheduled Blue Shift creation Default status when a shift is created and a staff member is assigned. The shift is on the roster but not yet acknowledged by the staff member.
confirmed Green Staff acknowledgement The assigned staff member has acknowledged and confirmed they will attend the shift. This can happen via the mobile app notification or the desktop shift detail view.
in_progress Indigo Staff clock-in The staff member has clocked in and is actively delivering the service. Clock-in is recorded via the timesheet module.
completed Grey Staff clock-out The staff member has clocked out and the shift is finished. A progress note should be submitted. The shift is now eligible for invoicing.
cancelled Red Manual cancellation The shift has been cancelled. A cancellation reason is required. Depending on cancellation timing, the shift may still be billable under NDIS cancellation rules.
no_show Amber Manual marking The staff member did not attend the shift, or the client was not available. No Show shifts are flagged for follow-up and may or may not be billable depending on the circumstances.

8.4.3 Status Transition Rules

From To Who Can Transition Conditions
ScheduledConfirmedAssigned Staff, Team Leader, Rostering Officer, AdminStaff member acknowledges the shift
ConfirmedIn ProgressAssigned Staff (via clock-in)Clock-in must be within 30 minutes of the scheduled start time
In ProgressCompletedAssigned Staff (via clock-out)Clock-out time must be recorded. Progress note is prompted.
AnyCancelledRostering Officer, Service Coordinator, AdminCancellation reason must be provided. Support workers cannot cancel their own shifts.
ConfirmedNo ShowRostering Officer, Team Leader, AdminTypically marked after the shift time has passed without a clock-in
In ProgressNo ShowAdmin onlyRare case where clock-in was recorded but service was not actually delivered

8.5 Staff Allocation

Staff allocation is the process of assigning a support worker to a shift. NDSS CRM provides tools to match the right staff member to each shift based on availability, qualifications, client preferences, and location proximity.

8.5.1 Allocation Methods

  • Direct Assignment: Select a specific staff member from the dropdown when creating or editing a shift. The system shows availability status next to each staff name.
  • Availability-Based Matching: Click "Find Available Staff" on an unallocated shift to see a filtered list of staff members who are available during the shift time slot, have the required qualifications, and are not already assigned to a conflicting shift.
  • Drag-and-Drop (Calendar View): In the weekly calendar view, drag a staff name from the "Available Staff" panel and drop it onto an unallocated shift block.

8.5.2 Availability Checking Criteria

When determining staff availability, the system evaluates the following criteria:

Criterion Priority Description
Shift ConflictsBlockingIf the staff member has an existing shift that overlaps with the new shift's time range, they are marked as "Unavailable - Conflict".
Availability ScheduleBlockingEach staff member has a weekly availability schedule (set in their profile). If the shift falls outside their available hours, they are marked as "Unavailable - Not Rostered".
Leave / Time OffBlockingIf the staff member has approved leave on the shift date, they are excluded from the available list.
QualificationsWarningIf the service type requires specific qualifications (e.g., medication administration, behaviour support), staff without those qualifications are shown with a warning badge.
NDIS Worker ScreeningBlockingStaff with expired or missing NDIS Worker Screening clearance are excluded from assignment.
Working With Children CheckConditionalRequired if the client is under 18. Staff without a valid WWC check cannot be assigned to shifts with child participants.
Client PreferencesAdvisorySome clients have preferred staff or staff exclusions recorded in their profile. Preferred staff are shown at the top of the list with a star icon. Excluded staff are hidden unless the user specifically requests to see all staff.
Overtime ThresholdWarningIf assigning this shift would push the staff member over their weekly hour limit (typically 38 hours for full-time), a warning is displayed.
Smart Matching

The "Find Available Staff" feature sorts results by relevance: preferred staff for the client appear first, followed by staff with matching qualifications and geographic proximity to the service delivery location. Staff who have previously worked with the client are ranked higher to support continuity of care, which is a key NDIS quality indicator.

8.6 Shift List View

The list view provides a tabular representation of all shifts, offering powerful sorting, filtering, and bulk action capabilities. It is the default view when the Rostering module is opened.

8.6.1 Shift List Table Wireframe

NDSS CRM - Shift List View (Detailed)
Client Date & Time Duration Staff Member Service Type Status Actions
Sarah Mitchell
NDIS: 430123456
Mon 14 Oct 2024
09:00 - 13:00
4h 00m James Wilson
Support Worker
Daily Activities Confirmed View Edit
David Chen
NDIS: 430234567
Mon 14 Oct 2024
10:00 - 14:00
4h 00m Maria Garcia
Senior Support Worker
Community Scheduled View Edit
Emma Thompson
NDIS: 430345678
Tue 15 Oct 2024
08:00 - 16:00
8h 00m Unallocated SIL Support Unallocated Assign
Tom Richards
NDIS: 430456789
Tue 15 Oct 2024
14:00 - 17:00
3h 00m Lisa Park
Support Worker
Therapy In Progress View
Amy Watson
NDIS: 430567890
Wed 16 Oct 2024
09:00 - 12:00
3h 00m Unallocated Daily Activities Unallocated Assign
Showing 1-5 of 8 shifts
Previous
1
2
Next
Fig 8.5 - Shift list view with checkbox selection, client and NDIS number, date/time, duration, staff assignment, service type, status badge, and action buttons. Unallocated shifts are highlighted with a yellow background and an "Assign" button.

8.6.2 List View Features

  • Column Sorting: Click any column header to sort the table. Click again to reverse the sort order. Default sort is by date (ascending).
  • Multi-Select: Use the checkboxes to select multiple shifts for bulk actions (bulk cancel, bulk reassign, bulk export).
  • Row Click: Clicking a row opens the shift detail panel on the right side of the screen, showing full shift information, notes, and timeline.
  • Inline Actions: The Actions column provides quick access to View, Edit, Assign, Cancel, and Clone operations depending on the shift status and user permissions.
  • Export: The entire filtered shift list can be exported to CSV or PDF via the Export button above the table.
  • Pagination: The list displays 25 shifts per page by default. Page size can be changed to 10, 25, 50, or 100.

8.7 Timesheet Management

The timesheet system in NDSS CRM tracks the actual hours worked by support staff on each shift. It provides clock-in/clock-out functionality, timesheet review and approval workflows, and integration with the finance module for accurate payroll and NDIS billing.

8.7.1 Clock In / Clock Out

Support workers record their working hours using the clock-in and clock-out feature available on their shift detail view:

  1. Clock In: When the staff member arrives at the service location, they open their assigned shift and tap/click the "Clock In" button. The system records the current timestamp as the clock-in time and transitions the shift status to in_progress.
  2. During Shift: While the shift is in progress, the staff member can view a live timer showing the elapsed time since clock-in.
  3. Clock Out: When the service delivery is complete, the staff member taps/clicks "Clock Out". The system records the clock-out timestamp and transitions the shift to completed.
  4. Post-Shift: After clock-out, the staff member is prompted to submit a progress note for the shift (see Section 8.9).

8.7.2 Clock-In Rules

Rule Value Description
Early Clock-In Window30 minutesStaff can clock in up to 30 minutes before the scheduled start time. Earlier clock-in is blocked.
Late Clock-InNo limitStaff can clock in after the scheduled start time. A "late" flag is automatically added if the clock-in is more than 15 minutes late.
Minimum Shift Duration15 minutesA shift must be at least 15 minutes between clock-in and clock-out to be valid.
Maximum Shift Duration24 hoursShifts exceeding 24 hours require manual timesheet adjustment and supervisor approval.
Missed Clock-OutAuto-flag after 2 hoursIf a shift remains "in progress" for 2 hours past the scheduled end time, the system sends a notification to the team leader and flags the timesheet for review.

8.7.3 Timesheet Approval Workflow

Completed timesheets go through a multi-step approval process before they are processed for payroll and NDIS billing:

  1. Auto-Approved: If the actual clock-in/clock-out times are within 15 minutes of the scheduled start/end times, the timesheet is automatically approved.
  2. Pending Review: If the actual times differ from the scheduled times by more than 15 minutes, the timesheet is placed in "Pending Review" status and requires supervisor approval.
  3. Supervisor Review: The team leader or rostering officer reviews the timesheet, adjusts hours if needed, and approves or rejects it.
  4. Rejected: If rejected, the staff member receives a notification with the reason and can submit a corrected timesheet.
  5. Final Approval: Approved timesheets are locked and sent to the Finance module for payroll processing and NDIS claim generation.
Timesheet Status Colour Description
auto_approvedGreenActual times match scheduled times within tolerance. No manual review needed.
pending_reviewAmberTimes differ from schedule. Awaiting supervisor review.
approvedBlueManually reviewed and approved by a supervisor.
rejectedRedRejected by supervisor. Staff member must resubmit.
processedIndigoSent to Finance for payroll and billing. Locked from further edits.

8.7.4 Manual Timesheet Adjustment

In cases where the clock-in/clock-out times are incorrect (e.g., staff forgot to clock out, or clocked in from the wrong location), authorised users can manually adjust the timesheet. This requires entering the corrected times and providing a justification note. All manual adjustments are recorded in the audit log with the original values, new values, the user who made the change, and the timestamp.

8.8 Recurring Shifts

NDIS participants often receive regular, ongoing supports on a fixed schedule (e.g., every Monday and Wednesday from 9 AM to 1 PM). The recurring shifts feature allows rostering officers to create a shift once and have it automatically replicated across a defined period, eliminating the need to create each shift individually.

8.8.1 Recurrence Options

When the "Make Recurring" toggle is enabled on the New Shift form, the following recurrence configuration fields appear:

Field Options Description
FrequencyDaily, Weekly, Fortnightly, MonthlyHow often the shift repeats. "Weekly" is the most common for NDIS services.
Days of WeekMon, Tue, Wed, Thu, Fri, Sat, SunFor weekly/fortnightly frequency, select which days the shift occurs. Multiple days can be selected.
End ConditionEnd Date, Number of Occurrences, Plan End DateDetermines when the recurrence stops. "Plan End Date" automatically uses the client's NDIS plan end date.
End DateDate pickerIf "End Date" is selected, specify the last date for the recurring shift.
Number of OccurrencesNumeric inputIf "Number of Occurrences" is selected, specify how many times the shift should repeat (e.g., 12 for 12 weeks).
Same StaffToggle (Yes/No)Whether to assign the same staff member to all generated shifts, or leave them as unallocated for individual assignment.

8.8.2 Recurrence Generation

When a recurring shift is created, the system generates individual shift records for each occurrence:

  • Each generated shift is a standalone record in the shifts table with its own id, shift_date, and status.
  • All shifts in a recurrence series share the same recurrence_id and have is_recurring set to true.
  • The system calls the /api/shifts/bulk-create endpoint (Python-backed) to generate all shift records efficiently.
  • A maximum of 52 shifts (1 year of weekly shifts) can be generated in a single recurrence creation.

8.8.3 Editing Recurring Shifts

When editing a shift that is part of a recurring series, the user is presented with three options:

Option Behaviour
This Shift OnlyModifies only the selected shift. The shift retains its recurrence_id but is marked as an exception. Other shifts in the series are not affected.
This and FollowingModifies the selected shift and all future shifts in the series. Past shifts are not affected.
All Shifts in SeriesModifies all shifts in the recurring series that have not yet been completed or cancelled.

8.8.4 Exception Handling

Exceptions occur when a single shift in a recurring series needs to be different from the pattern (e.g., a public holiday, a one-off time change, or a staff substitution). NDSS CRM handles exceptions by:

  • Allowing individual shifts to be edited without affecting the rest of the series (using "This Shift Only").
  • Allowing individual shifts to be cancelled without cancelling the entire series.
  • Marking exception shifts with an "Exception" badge in the calendar and list views so they are visually distinguishable from standard recurring shifts.
Public Holiday Detection

NDSS CRM includes an Australian public holiday calendar (national and state-specific). When generating recurring shifts, the system warns if any occurrences fall on public holidays and gives the option to skip those dates or create them with a "Public Holiday" flag. Public holiday shifts may attract higher pay rates, which the Finance module handles automatically during payroll processing.

8.9 Shift Notes

Shift notes allow support workers and coordinators to record important information about a shift before, during, or after service delivery. Shift notes are distinct from progress notes (which are more formal and linked to client goals). Shift notes capture operational details such as access instructions, client mood observations, handover information, and any issues encountered during the shift.

8.9.1 Note Types

Note Type When Added Description
Pre-Shift NoteBefore the shift (by coordinator)Instructions for the support worker, e.g., "Client has a medical appointment at 10 AM - please assist with transport" or "New support plan in place, please review before arriving."
During-Shift NoteWhile the shift is in progressReal-time observations recorded by the support worker during the shift, e.g., "Client is feeling unwell, reduced activity level today" or "Medication administered at 2 PM as per care plan."
Post-Shift NoteAfter clock-out (by support worker)Summary of the shift, including what activities were completed, how the client responded, any concerns, and handover notes for the next worker.
Coordinator NoteAny time (by coordinator/admin)Administrative notes added by a service coordinator, e.g., "Shift rescheduled per client request" or "Cancellation reason: public holiday."

8.9.2 Adding a Shift Note

Shift notes can be added from the shift detail panel by clicking "Add Note" and selecting the note type. Each note records:

  • Note content (free text, up to 2000 characters)
  • Note type (pre-shift, during-shift, post-shift, coordinator)
  • Author name and role
  • Timestamp (automatically set)
  • Optional attachments (photos, documents)

8.9.3 Note Visibility

Note Type Visible To
Pre-Shift NoteAssigned staff member, team leaders, coordinators, admins
During-Shift NoteAuthor, team leaders, coordinators, admins
Post-Shift NoteAll staff with access to the shift, coordinators, admins. Optionally shared with the client via the Client Portal.
Coordinator NoteInternal staff only (coordinators, admins, team leaders). Not visible to support workers or clients unless explicitly shared.

8.10 Unallocated Shift Alerts

Unallocated shifts represent scheduled services that do not have a staff member assigned. These shifts require urgent attention to ensure that NDIS participants receive their supports as planned. NDSS CRM provides a multi-layered alert system to ensure unallocated shifts are visible and actioned promptly.

8.10.1 Alert Channels

Alert Type Trigger Timing Description
Dashboard WidgetReal-timeThe Dashboard module displays an "Unallocated Shifts" counter in the stat cards section. Clicking the counter navigates to the rostering page filtered to show only unallocated shifts.
Rostering BadgeReal-timeThe "Rostering" link in the sidebar navigation displays a red badge with the count of unallocated shifts (e.g., "Rostering (2)").
Email Alert48 hours before shiftIf a shift is still unallocated 48 hours before its scheduled date, the system sends an email to the rostering officer and service coordinator with shift details.
SMS Alert24 hours before shiftIf the shift remains unallocated 24 hours before the scheduled date, an SMS alert is sent to the rostering officer with a direct link to the shift.
In-App Notification48 hours and 24 hoursPush notifications appear in the notification bell (top-right of the topbar) at 48 and 24 hours before an unallocated shift.
Daily DigestDaily at 7:00 AMA daily email summary is sent to all rostering officers listing all unallocated shifts for the next 7 days. Generated by the Python notification worker.

8.10.2 Escalation Rules

If an unallocated shift is not addressed within the alert windows, the system escalates through the following chain:

  1. 48 hours before: Alert sent to the Rostering Officer and assigned Service Coordinator.
  2. 24 hours before: Alert escalated to the Team Leader and Operations Manager.
  3. 4 hours before: Critical alert sent to the Administrator and Operations Manager. The shift appears with a red "URGENT" badge in all views.
  4. Shift time passed (unallocated): An incident is automatically flagged in the Compliance module as a "Service Gap" for review.

8.10.3 Resolving Unallocated Shifts

There are three ways to resolve an unallocated shift:

  • Assign Staff: Click the "Assign" button on the unallocated shift to open the staff selection dialog. Use "Find Available Staff" to see qualified, available workers.
  • Cancel Shift: If the service cannot be delivered, cancel the shift with a reason (e.g., "No staff available", "Client request"). Depending on NDIS rules, a cancellation fee may apply.
  • Reschedule: Move the shift to a different date/time when a staff member is available. The client and coordinator are notified of the schedule change.
NDIS Compliance Note

Under NDIS Practice Standards, providers must make reasonable efforts to deliver supports as agreed in the participant's service agreement. Persistent unallocated shifts or service gaps may be flagged during NDIS audits. NDSS CRM's compliance module tracks service gap incidents and can generate reports showing the organisation's shift fulfilment rate for audit preparation. See Chapter 10: Compliance & Incidents for more details.

Further Reading

For information on how completed shifts flow into invoicing and NDIS claims, see Chapter 9: Finance & Invoicing. For staff qualification and availability management, see Chapter 7: Staff Management. For the technical architecture behind real-time shift updates, see Chapter 3: Architecture & Technical Stack.