What - This enhancement enables immediate processing of work type-based accruals when off-roster entries are approved, eliminating the previous delay where accruals were only processed during the midnight batch job and ensuring accruals are added to employee banks in real-time rather than waiting until the next day.
Why - This improvement was implemented due to customer request to provide immediate feedback on accrual calculations and reduce the delay between shift approval and bank updates that could impact payroll accuracy and employee visibility into their earned time.
How - To utilize this enhancement:
Use Case - When a firefighter works an off-roster overtime shift on Monday and the administrator approves it Tuesday morning, the employee's vacation or sick time accruals are immediately added to their available balance rather than waiting until the next day's batch processing, allowing for accurate real-time tracking of earned benefits.
What - This enhancement allows users to customize how they receive notifications by selecting specific delivery methods including App Notification, Email Notification, and Notification Center for different notification types, enabling users to manage notification fatigue while ensuring they never miss critical updates.
Why - This feature was developed due to customer request to provide granular control over notification delivery methods and reduce notification overload while maintaining reliable communication for essential updates.
How - To configure notification preferences:
Use Case - A fire captain can choose to receive time-off notifications only via email while receiving trade notifications through both app and email channels, allowing them to customize their communication preferences based on the urgency and type of information while ensuring they remain informed of all critical scheduling updates.
What - This enhancement addresses the filtering logic for time clock punches to ensure proper data access control by correctly filtering Own Punches to display only the logged-in user's records and restricting Employee Punches visibility based on appropriate permissions.
Why - This improvement was implemented due to customer request to enhance data security and ensure users only see time clock information they are authorized to access, preventing unauthorized viewing of other employees' punch data.
How - This feature works automatically based on user permissions:
Use Case - A firefighter can view their own punch records in the Own Punches section to verify their time entries, while only supervisors with appropriate permissions can access the Employee Punches section to review and manage time clock data for their entire crew, ensuring proper data security and role-based access control.
What - This enhancement improves shift visibility by displaying pending off-roster entries alongside approved entries in the My Shifts view, allowing users to easily track the status of their overtime submissions and ensure timely payroll processing without navigating between multiple views.
Why - This feature was developed due to customer request to consolidate shift information in one location and improve user experience by eliminating the need to check multiple screens for complete shift status information.
How - This enhancement works automatically:
Use Case - A firefighter who submitted overtime for three different shifts can now view all their regular scheduled shifts plus see which overtime requests are still pending approval and which have been approved, allowing them to follow up with supervisors on pending items and confirm their total expected hours for the pay period.
What - This enhancement modifies call shift rotation behavior to honor contract-specified timing by allowing users to rotate to the bottom of the ranking list on the actual day of their shift rather than when they accept it, providing more accurate rotation timing that aligns with organizational contracts and ensures fair distribution of call shift responsibilities.
Why - This improvement was implemented due to customer request to align rotation timing with existing labor contracts and ensure fair distribution of call shift opportunities by preventing users from losing their ranking position simply by accepting shifts in advance.
How - To enable this feature:
Use Case - When a firefighter accepts a call shift on Monday for a Thursday shift, they maintain their current position in the rotation ranking until Thursday morning arrives, at which point they automatically rotate to the bottom of the list, ensuring their ranking reflects the actual work date rather than the acceptance date and providing fair rotation opportunities for all personnel.
What - This enhancement improves staffing visibility by incorporating unassigned 24-hour call shifts into the global vacancy count on the shift board, providing administrators with more accurate real-time staffing numbers by treating unassigned call shifts as potential coverage for vacant positions.
Why - This feature was developed due to customer request to provide more comprehensive vacancy tracking that reflects actual available coverage options and improves situational awareness for staffing decisions.
How - This enhancement works automatically:
Use Case - When a fire station shows 5 vacant positions but has 2 unassigned 24-hour call shifts available, the vacancy display shows 3, giving the shift commander a more accurate picture that two positions could potentially be covered by call shift personnel if needed for emergency response.
What - A new time clock feature allows organizations to enable early clock-in capability with a configurable time window of 1-60 minutes before scheduled shift start times. Administrators can control this functionality through Time Clock settings with a simple toggle and numerical input, while the system preserves actual clock-in times for accurate payroll and reporting purposes. The feature includes validation controls that prevent clock-ins outside the allowed window and provides clear error messaging when users attempt to clock in too early.
Why - This enhancement was implemented due to customer request to accommodate operational needs where personnel may need to arrive and begin preparations before their official shift start time, while maintaining policy compliance and accurate time tracking for payroll purposes.
How - To configure early clock-in capability:
Use Case - A fire department configures a 15-minute early clock-in window for their 8:00 AM shift. Firefighters arriving at 7:50 AM can clock in immediately to begin equipment checks and station preparations. If a firefighter attempts to clock in at 7:40 AM (25 minutes early), the system displays an error explaining the early clock-in limit. The system records the actual clock-in time of 7:50 AM for payroll accuracy, rather than adjusting it to the 8:00 AM scheduled start time.
What - A new configuration setting has been added to the time clock module that allows organizations to select which source (Time Card or Time Clock entries) is used to calculate daily hour totals. This enhancement resolves double-counting issues for organizations using both time card and time clock entries simultaneously, while maintaining complete visibility and editability of both entry types. The setting is configured through a single-select dropdown on the time clock configuration page, and the selection applies organization-wide.
Why - This feature was developed due to customer request to address the issue where organizations with both time card and time clock entries were experiencing double-counted hours in their day totals, creating inaccurate payroll calculations and reporting discrepancies.
How - To configure the Day Total Source:
Use Case - A fire department uses both shift board scheduling (time card entries) and biometric time clocks (time clock entries) for their personnel. Previously, when a firefighter worked a 24-hour shift and clocked in/out on the biometric system, the day total showed 48 hours (24 from the shift board + 24 from the time clock). After configuring the Day Total Source to "Time Clock," the system correctly displays 24 hours in the day total while both the shift board entry and biometric clock entry remain visible and editable when viewing time card details.
What - The compound rotation creation process has been enhanced to calculate start dates based on the actual first occurrence of each rotation's recurrence pattern, rather than using artificial date offsets. The system now includes intelligent filtering that prevents users from selecting compound rotations when the first rotation doesn't occur on the selected start date, ensuring rotations appear on the shift board exactly when intended according to their frequency patterns.
Why - This enhancement was implemented due to customer request to address issues where compound rotations were not aligning with their actual recurrence patterns, causing rotations to appear on incorrect dates on the shift board and creating scheduling confusion.
How - The enhancement operates automatically during compound rotation creation:
Use Case - A battalion chief creates a compound rotation with a start date of January 15th for a firefighter. The first rotation in the compound pattern follows a weekly recurrence (every Monday), and January 15th is a Wednesday. Previously, the system would create both rotations starting January 15th with an artificial offset, causing the second rotation to appear on incorrect dates. Now, the system calculates that the first Monday occurrence is January 20th and either filters out this compound rotation from the selection list or calculates the proper start dates, ensuring the firefighter's shifts appear on the shift board aligned with the actual weekly pattern.
What - The polling interval for active call shift data has been optimized from 5 seconds to 30 seconds, and intelligent tab visibility detection has been implemented to ensure data only refreshes when users are actively viewing the page. The system automatically pauses polling when users switch away from the call shift tab and immediately refreshes data with current information when they return, reducing server load while maintaining data accuracy.
Why - This update was implemented due to customer request to improve system performance and reduce unnecessary server load caused by frequent polling requests, particularly when users had call shift details open in background tabs.
How - The feature operates automatically with no configuration required:
Use Case - A shift commander opens call shift details to monitor personnel acceptance status for an emergency staffing need. While waiting for responses, they switch to another browser tab to review incident reports. During this time, the system pauses polling requests, reducing server load. When the commander switches back to the call shift tab 10 minutes later, the system immediately displays the most current acceptance status and resumes 30-second polling, allowing them to see updated information without manually refreshing the page.
What - Administrators can now manually add time clock punches for users through both the Time Clock Management page and the Shift Board interface. This feature includes built-in validations to prevent duplicate entries, respects organizational early clock-in settings, supports shifts that cross midnight, allows optional notes up to 80 characters, and provides specific error messaging to guide proper entry. The system validates all entries against existing active punches and shift parameters to ensure accurate time tracking.
Why - This feature was developed due to customer request to provide administrators with the ability to create time punches for users who forget to clock in, ensuring proper shift tracking and allowing personnel to clock out normally at the end of their shift.
How - To manually add a time punch:
Use Case - A firefighter forgets to clock in at the start of their 8:00 AM to 6:00 PM shift. At 10:00 AM, the shift supervisor receives a call from the firefighter explaining they forgot to clock in. The supervisor navigates to the Time Card page, clicks "Add Time Punch," selects the firefighter from the roster, enters today's date and time as "08:00am," adds a note "Forgot to clock in - called supervisor at 10am," and submits the entry. The system validates the entry, creates the punch record, and the firefighter can now clock out normally at 6:00 PM without any timekeeping discrepancies.
What - A new "Show unavailable" toggle has been added to the Availability tab that allows authorized users to view unavailable users within their results when needed. The feature is controlled by both a user-level permission (can_view_unavailable_users) and a system-level configuration setting in Scheduling Settings. The toggle state persists across sessions, unavailable users are visually distinguished when displayed, and backend validation ensures only authorized users can access unavailable user data. The toggle is dependent on 'Available' filters being active.
Why - This feature was implemented due to customer request to provide greater visibility into the full user roster when authorized personnel need to view both available and unavailable users for operational planning and decision-making purposes.
How - To configure and use the Show Unavailable feature:
Use Case - A battalion chief planning coverage for an upcoming holiday period needs to see both available and unavailable personnel to understand the full staffing picture. With the "Show unavailable" toggle enabled in Scheduling Settings and the can_view_unavailable_users permission granted, the chief navigates to the Availability tab, activates the available filters, and clicks the "Show unavailable" toggle. The system displays all personnel with unavailable users visually distinguished (perhaps marked with approved vacation time), allowing the chief to identify gaps and plan callback assignments. The toggle preference is saved, so when the chief returns to this tab later, the view remains consistent with their previous selection.
What - A new "On Duty" toggle filter has been added to the call shift creation and edit interface that allows administrators to filter personnel lists to show only those whose scheduled shift ends at the exact time the call shift begins. The filter automatically updates when toggled or when the call shift start time is changed, the toggle state persists with the call shift configuration, and all existing eligibility rules (max hours, time off, exclusion rules) continue to apply to the filtered results.
Why - This enhancement was implemented due to customer request to streamline the call shift assignment process by automatically identifying personnel who are transitioning from their regular shift, making it easier to staff call shifts with on-duty personnel who are already present and available at the station.
How - To use the On Duty filter:
Use Case - A fire department needs to staff a call shift starting at 6:00 PM for a special event. The shift supervisor creating the call shift activates the "On Duty" toggle and sets the start time to 6:00 PM. The system automatically filters the personnel list to show only firefighters whose regular shift ends at exactly 6:00 PM, displaying five A-shift members who are transitioning off duty at that time and already present at the station. This allows the supervisor to quickly identify and assign personnel who require no travel time and are familiar with current station operations, rather than scrolling through the entire roster of 50+ eligible personnel.
What - New API endpoints have been introduced for personnel data management, providing programmatic access to view, create, and update personnel records through RESTful operations. The API supports GET requests for retrieving individual personnel records, POST requests for creating new personnel records, PATCH requests for partial updates of specific fields, and PUT requests for full record updates requiring complete object structure. All operations validate client authorization and maintain data integrity through structured request/response patterns.
Why - These API endpoints were developed due to customer request to enable integrated systems to programmatically manage personnel data, streamlining data synchronization workflows and reducing manual data entry requirements for organizations using multiple systems.
How - To use the Personnel API endpoints:
/fd-api/v1/personnel/{personnelId} to retrieve individual personnel record/fd-api/v1/personnel with complete personnel object structure in request body/fd-api/v1/personnel/{personnelId} with only the fields to be updated (one or more fields can be updated without requiring the entire object structure)/fd-api/v1/personnel/{personnelId} with complete personnel object structure (all fields must be present even if only updating specific fields)Use Case - A fire department uses a separate HR management system for employee onboarding and needs to synchronize new hire data with the scheduling system. When a new firefighter completes onboarding, the HR system automatically sends a POST request to the Personnel API with the complete personnel record (name, employee number, hire date, certifications, emergency contacts). The scheduling system creates the personnel record and returns a confirmation with the new personnel ID. Later, when the firefighter completes additional certifications, the HR system sends a PATCH request updating only the certifications field without requiring the entire personnel record, keeping both systems synchronized automatically without manual data entry.
What - Employees can now update their own emergency contact information directly from the My Personnel view when granted the appropriate permissions. The feature includes a new Save button that persists changes to all three emergency contact sections (Emergency Contact Info #1, #2, and Medical Contact Info), a Cancel button with confirmation prompt for unsaved changes, field validation for phone number formats and required fields, and clear success messaging. The emergency contact fields become editable only when users have the "Emergency Contacts - Self Access → Update" permission enabled.
Why - This enhancement was implemented due to customer request to enable employees to maintain their own emergency contact information directly, reducing administrative burden on personnel staff and ensuring contact information remains current without requiring ticket submissions or administrator intervention.
How - To configure and use emergency contact editing:
Use Case - A firefighter recently got married and their spouse's phone number has changed. Instead of submitting a personnel update request and waiting for an administrator to process it, the firefighter logs into the system, navigates to My Personnel, clicks the Emergency Contacts tab, updates Emergency Contact #1 with their spouse's new phone number, and clicks Save. The system validates the phone number format, saves the changes immediately, and displays a success confirmation. If the firefighter had changed multiple fields and then clicked Cancel, the system would prompt for confirmation before discarding all unsaved changes and reverting to the original values.
What - The Personnel Emergency Contacts and NEMSIS Licensure/Certifications Import Wizards now support both Excel (.xlsx) and CSV file formats, allowing users to directly upload Excel templates without requiring manual conversion to CSV and streamlining the import process while maintaining template validations and formatting rules.
Why - This enhancement was implemented due to customer request to eliminate the extra step of converting Excel templates to CSV format and reduce potential conversion errors that could impact data integrity during personnel imports.
How - To use the enhanced import functionality:
Use Case - HR personnel can now directly upload the Excel template they use for collecting emergency contact information from new firefighters without having to save it as a CSV file first, reducing the risk of formatting errors and streamlining the onboarding process while preserving dropdown validations and data formatting rules.
What - This enhancement improves administrative oversight by displaying work type and time-off type subtypes during the time card approval process, providing administrators with complete context that was previously limited to viewing only the main category during approval decisions.
Why - This improvement was implemented due to customer request to provide complete visibility into time card details during the approval process, enabling more informed approval decisions with full context of the work performed.
How - This enhancement works automatically:
Use Case - When reviewing pending time cards, a fire chief can now see that overtime was worked specifically for "Training - Hazmat Certification" rather than just "Training," allowing them to make more informed approval decisions and better track specialized training costs and compliance requirements.
What - The Scheduling module has been integrated with the platform's global audit log system, providing a unified audit experience across all platform modules while maintaining robust scheduling-specific audit capabilities. All 144 scheduling actions are now written to both the legacy scheduling audit log and the new global audit log simultaneously, ensuring comprehensive audit trails and enhanced visibility for administrators and compliance teams.
Why - This enhancement was implemented due to customer requests for consolidated audit tracking across multiple modules, enabling compliance teams to review platform-wide activities in a single interface while maintaining backwards compatibility with existing scheduling audit workflows.
How -
Use Case - A fire department's compliance officer needs to review all system changes made during a specific pay period for audit purposes. They can now access the global audit log, filter for scheduling module events, and see all 144 tracked scheduling actions alongside other platform activities such as personnel changes and administrative updates, providing a complete picture of system modifications without switching between multiple interfaces.
What - The Accruals Hours Import Wizard now supports native Excel (.xlsx) file uploads in addition to the existing CSV format. Users can import data directly from provided Excel templates without the extra conversion step to CSV, and the system automatically detects the file type and processes data from the first worksheet tab with clear error messaging for unsupported file formats.
Why - This enhancement was implemented due to customer requests to streamline the import process and reduce potential errors from manual file conversions, allowing departments to work directly with the Excel templates provided without additional formatting steps.
How -
Use Case - A fire department administrative assistant receives the monthly accrual hours update in the provided Excel template format. Instead of opening the file, converting it to CSV, and verifying the conversion was successful, they can now directly upload the Excel file to the Import Wizard, reducing the import process time and eliminating the risk of data corruption during file format conversion.
What - The Accruals Profile Import Wizard now supports native Excel (.xlsx) file uploads in addition to the existing CSV format. Users can import data directly from provided Excel templates without the extra conversion step to CSV, and the system automatically detects the file type and processes data from the first worksheet tab with clear error messaging for unsupported file formats.
Why - This enhancement was implemented due to customer requests to streamline the import process and reduce potential errors from manual file conversions, allowing departments to work directly with the Excel templates provided without additional formatting steps.
How -
Use Case - When implementing new accrual policies for probationary firefighters versus veteran personnel, the HR coordinator can prepare the accrual profiles in the provided Excel template with different accumulation rates and carryover rules for each group, then directly upload the .xlsx file to update all personnel profiles in a single import operation without converting to CSV format.
What - New custom rotation patterns have been added to the scheduling system, providing additional flexibility for shift assignments and workforce scheduling.
Why - These rotation patterns were added due to customer requests for scheduling configurations that match specific departmental staffing models and operational requirements not covered by existing rotation options.
How -
1 on / 3 off / 1 on / 9 off
3 on / 46 off
5 on / 44 off
2 on / 14 off / 5 on / 28 off
1 on / 23 off / 1 on / 17 off
2 on / 7 off / 3 on / 7 off / 2 on / 7 off
3 on / 7 off / 2 on / 7 off / 2 on / 7 off
1 on / 1 off / 1 on / 1 off / 1 on / 3 off / 1 on / 1 off / 1 on / 1 off / 1 on / 1 off
1 on / 2 off / 2 on / 3 off / 2 on / 2 off / 2 on
3 on / 6 off / 3 on / 2 off
6 week 48/96
2 on / 4 off / 2 on / 4 off / 2 on / 4 off / 2 on / 4 off / 2 on / 4 off / 2 on / 4 off / 2 on / 46 off
Use Case - A fire department transitioning to a new staffing model that requires a 48 on/120 off rotation pattern for their emergency response teams can now select this pre-configured rotation rule instead of attempting to create a custom workaround. The scheduler includes the new rotation rule, associates it with the appropriate shift, and assigns personnel to the rotation, ensuring accurate schedule generation and Kelly Day calculations that align with the new staffing agreement.
What - Organizations can now configure how early employees can clock in before their scheduled shift start time through a new Time Clock setting. Administrators can set an organization-wide early clock-in window of up to 60 minutes, allowing employees to clock in for legitimate pre-shift activities while ensuring accurate time tracking that reflects actual clock-in times rather than scheduled shift start times.
Why - This feature was implemented due to customer requests to accommodate pre-shift activities such as equipment checks, briefings, and station preparations without requiring manual workarounds or shift board adjustments, while maintaining accurate time records that align with contractual and policy requirements.
How -
Use Case - A fire department requires all apparatus operators to arrive 15 minutes before shift start to perform equipment checks and inventory before going in service. The administrative chief enables the early clock-in feature with a 15-minute window, allowing operators to clock in when they arrive for their pre-shift duties. An operator scheduled for an 8:00 AM shift arrives at 7:45 AM, clocks in immediately upon arrival, and their timecard accurately reflects 7:45 AM as the start time, ensuring proper compensation for all pre-shift work performed.
What - Assignment scheduling capabilities have been expanded to allow administrators to apply custom rotation recurrence rules directly to assignments during creation. This enhancement works with both AWT (Advanced Workforce Tracking) and regular assignment types, and assignments appear on the shift board only on dates matching the selected recurrence pattern, automatically hiding them on non-applicable days to minimize blank space.
Why - This enhancement was implemented due to customer requests for more sophisticated assignment scheduling that aligns with specific rotation patterns, enabling departments to schedule specialized assignments that follow the same rotation cycles as their shift schedules without creating duplicate entries or manual workarounds.
How -
Use Case - A fire department operates a specialized Technical Rescue Team that follows a 48 on/96 off rotation pattern matching their A Shift schedule. The training coordinator creates a "Tech Rescue Standby" assignment and applies the 48/96 rotation recurrence rule during creation. The assignment now automatically appears on the shift board only during the 48-hour on-duty periods for A Shift, and personnel assigned to this specialized duty can be scheduled accordingly without the assignment cluttering the schedule on off-duty days, providing clear visibility of when the team is available for deployment.
What - The Personnel API now includes POST functionality, enabling programmatic creation of new personnel records through the API. This enhancement completes the full suite of CRUD operations (Create, Read, Update) for personnel management using a consistent data structure across all endpoints, with each successful POST request automatically generating a unique personnel ID and real-time validation against existing client data.
Why - This functionality was added due to customer requests for complete API-based personnel management capabilities, allowing external systems and integrations to create new user records alongside the existing GET and PATCH capabilities without requiring manual data entry through the web interface.
How -
https://[your-environment].firstdue.com/fd-api/v1/personnel/https://[your-environment].firstdue.com/fd-api/v1/personnel/[personnel-id]https://[your-environment].firstdue.com/fd-api/v1/personnel/[personnel-id]Use Case - A fire department uses an external HR system that manages new hire information and needs to automatically create corresponding user accounts in the scheduling system when new firefighters complete orientation. Their IT department develops an integration that uses the POST Personnel API endpoint to create new personnel records when the HR system triggers a "new hire onboarding complete" event, automatically populating department, station, rank, and other relevant fields. The API returns the new personnel ID, which the HR system stores for future updates, eliminating manual data entry and ensuring immediate scheduling system access for new personnel.
What - The time clock kiosk has been expanded to support clocking in for Activities/Events, Training, and Incidents in addition to the existing Shift Board functionality. Users can now select from four module options when clocking in and accurately log their time across multiple operational areas without being required to appear on the shift board, with the system displaying relevant options based on the selected module (all activities available for the current day, training classes assigned to the user for the current day, or open incidents from current and previous day).
Why - This enhancement was implemented due to customer requests for comprehensive time tracking across all department activities beyond scheduled shifts, allowing accurate logging of time for training exercises, special events, and incident responses while maintaining consistent data structure and reporting across all time clock functions.
How -
Use Case - A firefighter arrives at the station for a scheduled hands-on training class on vehicle extrication techniques. Instead of clocking in through the shift board (where they are not scheduled that day), they access the time clock kiosk, select "Training" from the module options, choose "Vehicle Extrication Class - October 15" from the dropdown of their assigned training classes, and clock in. Their time entry accurately reflects attendance at the specific training class with the class name recorded in the Location field. Later that day, if they respond to an actual vehicle accident, they can clock in again by selecting "Incidents" and choosing the specific incident, ensuring separate and accurate time tracking for both the training activity and the emergency response.
What - The shift assignment process now includes intelligent availability duration tracking that accurately calculates and displays remaining availability based on whether shifts consume full or partial availability windows. When users are assigned to shifts, the system determines if the assignment uses their complete availability window (such as a 24-hour shift for 24-hour availability) or only a portion (such as an 8-hour shift for 24-hour availability), and the Availability tab updates in real-time to reflect remaining unassigned hours.
Why - This enhancement was implemented due to customer requests for real-time visibility into partial availability after shift assignments, enabling schedulers to identify personnel who remain available for additional assignments rather than removing them completely from the availability pool when they still have unassigned hours.
How -
Use Case - A scheduler is staffing multiple units for an anticipated busy day and sees that a paramedic has indicated 24-hour availability. The scheduler assigns the paramedic to an 8-hour shift on the primary ambulance. Instead of disappearing from the Availability tab completely, the paramedic remains visible with 16 hours of remaining availability displayed. Later in the scheduling process, when a different unit needs coverage for a 12-hour period, the scheduler can easily identify and assign the same paramedic to fill that shift, maximizing utilization of available personnel without having to manually track who has partial availability remaining.
What - This fix resolves a critical issue where trade acceptors were being incorrectly removed from the Unassigned Person section after editing Trade Time Off records, ensuring proper maintenance of trade acceptor visibility and status throughout the entire trade lifecycle for accurate personnel tracking and workflow continuity.
Why - This fix was implemented due to customer request to address data integrity concerns in the trade management workflow where personnel visibility was being lost during routine record maintenance activities.
How - This fix works automatically:
Use Case - When a firefighter who accepted a trade has their Time Off record edited to add project codes or update notes, they remain visible in the Unassigned Person section, ensuring supervisors can continue to track their availability and the trade remains properly documented in the system without losing personnel assignment visibility.
What - This fix resolves a critical bug where editing Time Off Requests incorrectly updated the Initiated date to the current timestamp instead of preserving the original creation date, ensuring accurate reporting and maintaining proper audit trails for approval workflows.
Why - This fix was implemented due to customer request to address reporting accuracy issues that were causing confusion in approval workflows and impacting audit trail integrity for time off management.
How - This fix works automatically:
Use Case - When a firefighter submits a vacation request on January 15th and later edits it on January 20th to add additional notes, the system continues to show the Initiated date as January 15th, ensuring accurate reporting of request timing and proper audit trails for administrative review and approval processing.
What - This fix resolves a console error that occurred when switching users and attempting to copy week data on the time card page, ensuring seamless user switching functionality and eliminating browser console errors that previously disrupted the copy week workflow.
Why - This fix was implemented due to customer request to address data handling issues that could have led to data integrity problems or unexpected behavior during timecard management operations.
How - This fix works automatically:
Use Case - When a supervisor needs to copy the previous week's timecard data for multiple firefighters, they can switch between different personnel using the user dropdown and use the copy week function without encountering system errors, ensuring reliable timecard management across all employees under their supervision.
What - This fix resolves a critical issue where the system failed to properly detect users with APPROVE/DENY TIME OFF permissions when those users were assigned to multiple roles with mixed permission sets, ensuring users with required permissions are correctly identified and available for time off approval workflows regardless of which specific role grants them the permission.
Why - This fix was implemented due to customer request to address approval workflow bottlenecks where eligible approvers were not available for assignment despite having the correct permissions through their assigned roles.
How - This fix works automatically:
Use Case - A fire captain who has both "Station Officer" and "Training Coordinator" roles, where only the Station Officer role includes time off approval permissions, will now correctly appear in the list of available approvers, ensuring they can be assigned to approve vacation requests and other time off for their personnel without permission detection failures.
What - This fix resolves a critical validation issue where users on rotation for split shifts could exceed configured maximum working hours when being assigned to call shifts, ensuring proper enforcement of hour limits across all shift types and rotation statuses for compliance with configured work time restrictions.
Why - This fix was implemented due to customer request to ensure consistent application of maximum hour limits regardless of shift assignment status and prevent scheduling violations that could impact personnel safety and regulatory compliance.
How - This fix works automatically:
Use Case - A firefighter working alternating morning and afternoon rotations who has accumulated 36 hours over several days will be correctly excluded from available call shift assignments if the maximum consecutive hours is set to 39 hours with a 9-hour break requirement, ensuring compliance with fatigue management policies and preventing over-scheduling.
What - This fix resolves a critical issue where users were incorrectly excluded from call shifts due to faulty consecutive work hours validation, ensuring the system properly calculates maximum consecutive work time including partial shifts and break periods so that eligible users are correctly available for assignment.
Why - This fix was implemented due to customer request to address scenarios where users were being incorrectly marked as unavailable for shifts despite having adequate break time and not exceeding actual consecutive work hour limits.
How - This fix works automatically:
Use Case - A firefighter who worked 24 hours on November 8th, 8 partial hours on November 9th, and 24 hours on November 10th (totaling 56 total hours but only 32 consecutive hours) followed by a 48-hour break period will now be correctly available for shifts on November 13th since their consecutive hours (32) are below the 48-hour maximum and they had adequate break time, rather than being incorrectly excluded from assignment.
What - This fix resolves a critical issue where Job Board notifications were not being sent to users at their scheduled times, ensuring that when Job Boards are created with daily notification settings, users receive timely SMS and email notifications as configured for improved operational reliability in call shift management.
Why - This fix was implemented due to customer request to address notification delivery failures that were impacting operational communication and call shift coordination when Job Board functionality was enabled.
How - This fix works automatically:
Use Case - When a fire department creates a Job Board for available overtime shifts with daily notifications scheduled for 8:00 AM, all eligible firefighters now receive their SMS and email notifications reliably at the configured time, ensuring proper communication about available opportunities and maintaining operational readiness for call shift coverage.
What - The system now correctly calculates and displays off-days for 48/96 rotation schedules in the My Shifts view, ensuring users see the expected 4 days off in their rotation cycle rather than an incorrect 3-day display. This fix addresses a calendar display inconsistency that occurred specifically when a 48/96 rotation rule was deactivated and subsequently reactivated, causing the calendar calculation logic to lose sync with the rotation parameters.
Why - This fix resolves a data integrity issue affecting 48/96 rotation schedules where the calendar display did not match the shift board after rotation rule activation changes, causing confusion for personnel trying to plan their schedules around the correct rotation cycle.
How -
Use Case - A fire department temporarily deactivates their 48/96 rotation rule during a pay period transition and then reactivates it at the start of the new pay period. A firefighter on B Shift checks their My Shifts calendar to plan a family event during their upcoming off-duty period and now correctly sees 4 consecutive days off (96 hours) following their 48-hour shift, allowing them to accurately plan their time off without confusion. Previously, the calendar would have shown only 3 days off, potentially causing the firefighter to miss a day of their actual off-duty time or incorrectly believe they had duty on a day they were actually off.
What - The system now correctly maintains Time Off scheduling restrictions for call shifts even when the associated Time Off type has been deleted from the system. Users with active Time Off periods remain properly excluded from contactable lists for call shifts, honoring the original "Include in Call Shift" configuration regardless of whether the Time Off type still exists.
Why - This fix resolves a critical scheduling issue where users with deleted Time Off types were incorrectly appearing as contactable for call shifts during their off dates, due to the system losing Time Off context when the relationship was severed by type deletion.
How -
Use Case - A fire department reorganizes their Time Off type structure and deletes the legacy "Personal Leave" category after migrating active requests to a new "Discretionary Time Off" type. A battalion chief creates a call shift for emergency coverage on a date when several personnel had previously been approved for Personal Leave (before the type was deleted). The system correctly excludes these personnel from the contactable list for the call shift, preventing them from being contacted during their approved time off and maintaining the integrity of the original Time Off approval, even though the Personal Leave type no longer exists in the system.
What - Console errors that were occurring during basic interactions on the Mandatory Ranking page have been eliminated. The errors previously appeared when selecting options from the STATUS dropdown menu and when clicking the RESET button, and have been resolved to ensure stable page performance without changing any visible functionality or user workflows.
Why - This fix was implemented to address underlying technical errors that could have potentially led to system instability or performance degradation over time, ensuring reliable operation of the Mandatory Ranking page even though users were not experiencing broken features.
How -
Use Case - A training coordinator accesses the Mandatory Ranking page to review certification compliance across all personnel and uses the STATUS dropdown to filter for only those with expired certifications, then clicks RESET to view all personnel again. These interactions now occur without generating console errors, ensuring the page operates reliably during daily certification tracking and compliance reporting activities without any technical issues affecting system performance.
What - Time off editing functionality is now consistent across different navigation paths within the system. Users can now edit time off entries and adjust time frames (including START TIME and END TIME fields) from both the Shiftboard → Scheduling Deputy → Time off interface and the Time off → Review interface, providing the same level of control regardless of the access path used.
Why - This fix resolves an inconsistency where users could only edit time off entries and adjust time frames from the Time off → Review interface, while the same editing capability was unavailable in the Shiftboard → Scheduling Deputy → Time off view due to START TIME and END TIME fields not being displayed.
How -
Use Case - A deputy chief reviewing the shift board for the upcoming week notices that a firefighter has a vacation day scheduled but needs to adjust the start time from 0800 to 1200 to allow the firefighter to work a partial shift in the morning. Instead of navigating away from the shift board to the Time off → Review section, the deputy chief can now edit the time off entry directly from the Shiftboard → Scheduling Deputy → Time off view, adjusting the START TIME field and saving the change without disrupting their scheduling workflow.
What - The iCal calendar feed now properly synchronizes updated assignment names to external calendar applications after user assignment modifications. When users are removed from shift assignments and those assignments are subsequently modified, the changes now immediately reflect in both the MY SHIFTS view and the iCal calendar feed, ensuring consistent scheduling data across all platforms and eliminating discrepancies between internal views and external calendar applications.
Why - This fix resolves a critical synchronization issue where the iCal calendar feed displayed outdated assignment names in external calendar applications despite the MY SHIFTS view showing correct updated information, due to the iCal feed generation logic not properly refreshing assignment data after user deletion events.
How -
Use Case - A firefighter is initially assigned to "Engine 5 - A Shift" but is later moved to "Ladder 3 - A Shift" by the scheduler. The firefighter uses the iCal feed to sync their schedule with their personal Google Calendar for family planning purposes. Previously, their Google Calendar would continue showing "Engine 5 - A Shift" despite the MY SHIFTS view correctly displaying "Ladder 3 - A Shift," causing confusion when they arrived at the wrong station. With this fix, when the assignment change is made on the Shift board, the iCal feed immediately updates, and upon the next refresh cycle, their Google Calendar accurately displays "Ladder 3 - A Shift," ensuring they arrive at the correct assignment location.
What - The system now properly validates and enforces maximum consecutive working hours rules when assigning users to call shifts. The validation calculates total consecutive working hours across all shift types and automatically excludes agents who have worked up to or beyond the configured maximum consecutive hours threshold from subsequent shifts until they complete the required minimum break period. The system displays clear exclusion reasons during call shift initiation and universally applies the validation across regular shifts, call shifts, and other shift categories.
Why - This fix was implemented due to customer request to address a scheduling validation gap that was allowing personnel to be assigned to consecutive shifts without adequate rest periods, potentially violating rest period requirements and contributing to personnel fatigue and burnout.
How - The validation operates automatically during call shift assignment:
Use Case - A firefighter works an overnight shift from 6:00 PM on January 9th to 8:00 AM on January 10th (14 hours). Later that morning, a call shift becomes available from 8:00 AM to 6:00 PM (10 hours). Previously, the system might have allowed assignment to this call shift, resulting in 24 consecutive working hours, exceeding the department's 19-hour maximum consecutive hours policy. With this fix, the system calculates that accepting the call shift would result in 24 consecutive hours, automatically excludes the firefighter from the available personnel pool, displays "Maximum consecutive hours exceeded" as the exclusion reason to administrators, and the firefighter becomes eligible for new assignments again at 1:00 PM (after the required 5-hour break period from their 8:00 AM shift end time).
What - The Call Shift Processor cron job has been enhanced with time-based filtering to prevent processing of outdated or stuck Call Shifts that remain in a pending status indefinitely. The enhanced SQL filtering now identifies and excludes pending Call Shifts that started beyond a defined threshold, skips Call Shifts without a start time that were created long ago, de-prioritizes or skips tiered Call Shifts during standard processing, and continues to properly process future-scheduled Call Shifts when their scheduled time arrives.
Why - This enhancement was implemented due to customer request to eliminate performance degradation caused by the processor repeatedly attempting to process old, irrelevant Call Shift records that were stuck in pending status from weeks, months, or years ago and would never complete, while ensuring legitimate Call Shifts continue to process without interruption.
How - The enhancement operates automatically through the Call Shift Processor:
Use Case - A fire department has several Call Shifts from two years ago that became stuck in pending status due to a system migration issue, and the Call Shift Processor has been attempting to process these irrelevant records every cycle, degrading performance. After this enhancement, the processor automatically identifies these outdated records based on their start dates and creation timestamps, excludes them from processing, and focuses only on current and future Call Shifts. The processor performance improves immediately, processing cycles complete faster, and a Call Shift scheduled for next month continues to process normally when its scheduled time arrives, ensuring no disruption to standard operations.
What - Several technical corrections have been implemented to improve user experience and system stability in the Vacation Bid module. These backend fixes address console errors when clicking pause, resolve runtime errors during vacation bidding operations, and correct a TypeError related to null parameter handling in the time off auction bid time validation function. No functional changes have been made to vacation bidding processes or user workflows.
Why - These corrections were implemented due to internal identification of technical issues that were causing console errors and runtime exceptions, which degraded user experience and system stability during vacation bidding operations.
How - The improvements operate automatically with no configuration or user action required:
Use Case - During a vacation bidding period, a shift supervisor was monitoring the bidding process and clicked the pause button to temporarily halt bidding while addressing a personnel question. Previously, this action would trigger a console error that could potentially disrupt the bidding interface. With these stability improvements, the pause function operates smoothly without errors, the bidding session pauses as expected, the supervisor addresses the question, resumes the bidding session, and the process continues without any technical disruptions or unexpected behavior.