Weekly roster planning, allocation and operational checks — processed locally on this device.
Created by Lee Joonmin, 2026 · Interface v7.51
One workbook, one sheet named Tables, one Excel table. Blank separator rows are removed. IDs, route/shift codes and times are kept as text. v2 fixes Excel repair warnings. Manning Status can run in fast mode with Worksheet Summary + Unallocated File Details; add Employee Absence, Activity Master, Rest Day/Day Off, or Transferred Employees reports for the full operational view.
Drop one or more .html / .htm / .txt reports here or click to choose files. You can mix supported report types when using Auto-detect.
Waiting for report
Tip: use Auto-detect for normal use. Use a specific report type only when you want to force the parser to extract that exact report layout.
Include Activity Master File Report. Add Rest Day/Day Off List for WRD available.
Manning Status with Loyang Support
Include Transferred Employees Report. E → L standby BCs are removed only on their actual support dates.
The worksheet report splits absences by shift: AM/SPL drivers go to Early, PM drivers go to Late. Unmatched absence employee IDs appear separately. Standby duties SP, SPE, SPL and Sxxxx are recognised only when an actual employee number is assigned; vacant worksheet standby rows are ignored. Cancellation reasons 01 Error/14 NOT REQUIRED are ignored for unallocated-duty counting.
Waiting for Manning Status data
Loyang Support
Shows East Coast employees transferred from Depot E to Depot L. PM transfers ending in the early hours use the preceding operational day, so a transfer ending at 03:00 on 25/07 is counted through 24/07 only.
WRD Calculator
Shows WRD activated from the Worksheet Summary * marker and WRD available from the Rest Day/Day Off List. Activity Master File Report is used to classify activated WRD duties as Early, Split, or Late based on first sign-on and last sign-off.
Waiting for Worksheet Summary / Rest Day-Day Off List data
Rest Day/Day Off List — supplies WRD available counts by worksheet shift.
Employee Absence Report — supplies absence reason codes and descriptions.
Activity Master File Report — extracts activity master timings, boards, places, pay values and valid days. It is also used by the WRD calculator to classify activated WRD duties into Early/Split/Late.
Sign On Details — extracts sign-on/sign-off times, running boards, employees, activities and sign-on notes by sign-on location.
Transferred Employees Report — identifies East Coast BCs supporting Loyang by actual operating date and removes their standby from Manning Status only on those dates.
Right-click anywhere in the report and choose View source.
In the source/debugger window, press Ctrl+A, then Ctrl+C.
Paste the HTML into this converter and click Parse pasted report text below.
Preview
No data parsed yet.
Data sources0 / 5 loaded
Early-morning transfer end times belong to the previous operating day. Example: ending Saturday 03:00 means support through Friday only.
Saved weeks0 savedRecovery available
Route Qualification Finder settings
Waiting for finder reports
Duty search applies route and rest eligibility. Shift auto-filtering can be disabled manually when schedule data is inconsistent.
Live Manning & Open Duties
Select an open duty, then assign a qualified BC from the panel beside it.
Paste Unallocated File Details to activate live manning planning
Qualified BCs
Candidate lists update automatically when you select an open duty.
No search run yet.
Standby BCs qualified and available
No data yet.
Qualified BCs deployed to other duties
No data yet.
Qualified BCs on rest day / day off
No data yet.
Early BCs on RD the next day
Optional split-duty support view. It shows only qualified BCs whose selected-day assignment is Early and whose worksheet cell on the following day is exactly RD.
Early standby includes SPE and numeric standby duties from S0400 to S1030. Deployed duties are classified as Early using the Activity Master File Report.
Run the finder to calculate this section
Early standby BCs — RD next day
No data yet.
Early deployed BCs — RD next day
No data yet.
RD / DO BCs
Pick a BC first. The right panel will show only currently open duties they are route-qualified and shift-compatible to cover.
Load Worksheet Summary, Activity Master, Route Knowledge and Unallocated File Details to use this view.
Qualified Open Duties
Assign directly from here. The live manning state updates exactly like an RD/DO assignment in the duty-first planner.
Select an RD / DO BC from the panel beside it.
Standby BCs
Pick any currently available standby BC. The right panel will show the open duties that match this BC's route qualifications.
Load Worksheet Summary, Activity Master, Route Knowledge and Unallocated File Details to use this view.
Qualified Open Duties
Assign directly from here. Standby BCs follow the same existing Finder rule: route qualification is checked, while standby remains eligible across duty types.
Select a standby BC from the panel beside it.
Suggest Allocations
Ranks legal allocations while preserving versatile BCs where possible.
Load the four Finder reports to generate recommendations.
No suggestions generated yet.
Route Coverage Dashboard
Tampines-package route coverage from the live roster and Route Knowledge report.
Load Worksheet Summary + Route Knowledge to calculate coverage.
No coverage calculated yet.
Weekly Roster Matrix
Waiting for Worksheet Summary0 changes0 selected
Roster display settings
Duty cell details
Identity columns
BC Emp ID always remains visible.
Appearance
Selection Sets — custom BC filters
Leave fields blank for all. Separate multiple services or locations with commas (exact matches). Values within a field use OR; different fields use AND on the same duty. Any matching day includes the BC’s full week. These filters also combine with the matrix search and column filters. Service/location details require Activity Master data. Shift uses duty type, standby rules, then worksheet shift when unavailable.
All BCs selected.
Saved sets are kept in this browser. Exports include only visible BC rows, in the current sort order, with the enabled identity columns and duty details.
0 / 0
Paste a Worksheet Summary File Report to build the roster matrix.
Effective Standby by Shift
Unallocated File Details not loaded
Paste Unallocated File Details to calculate effective standby.
Roster Stats
Waiting for roster
Paste a Worksheet Summary File Report to calculate roster stats.
Edit roster cell
BC—
Day / Date—
Current assignment—
Worksheet—
Eligible open duties
Select an open duty to assign directly to this BC.
0 duties
No eligible duties loaded.
Suggested BC swaps
If this BC cannot cover an open duty, swap with a BC whose current duty this BC can safely cover, freeing the other BC for allocation.
0 BCs
No swap suggestions loaded.
Type an activity code to preview its details.
Planning simulation only — mirror final changes in DAS.
Bulk assign roster cells
Apply the same manually keyed duty / activity to every selected cell.
One Undo rolls back the entire bulk assignment. Manual bulk assignment follows the normal manual-edit rest checks.
Daily Despatch Control
Dropped-duty overview, standby assignment and same-day duty reallocation using the shared Roster & Allocation data.
Shared planning state
Load the Roster & Allocation data sources first.
Despatch settings
Used when recommending a BC to reassign from another duty. A/B/C variants follow their base service; 10E remains separate from 10.
Dropped Duty Grid
Blank cancellation reason and 04 Not covered — no staff are shown. Click any duty to allocate it.
Load the shared reports to build the daily despatch grid.
Trip Operations Monitor
Compare scheduled BRR departures against the live Worksheet / Unallocated planning state to spot trips that will not operate and the headway gaps they create.
Worksheet + Unallocated linked
BRR trip dataNo BRR data
Paste BRR rows to begin.
All services
Red services have at least one unallocated BRR trip anywhere on the service.
Starting pointSelect a service first.
Direction:
Scheduled trips
Red = duty still unallocated. BC ID comes from the live Worksheet roster. Revised departures can be keyed into Rev Dep; H/W recalculates immediately.
Load BRR data to build the trip operations monitor.
Standby Route Knowledge
Paste today's standby BCs, then build a compact printable route-knowledge sheet.
Auto mode fills this list from the shared Worksheet Summary. Untick Auto-generate if you need to paste/override the list manually.
No standby list yet.
Route Knowledge source
Route Knowledge not loaded.
Standby Route Knowledge Sheet
Date: —Shift: —Standby BCs: 0
Standby Sheet
Build the sheet from the standby list.
Enter a route to highlight qualified standby BCs.
No standby sheet generated yet.
Assign dropped duty
Select a dropped duty first.
Rest check includes the next day's roster where available. Minimum rest is 9 hours. Changes are shared with Roster & Allocation.
Employee Work Calendar
Paste any number of DAS Worksheet Summary / Worksheet Report HTMLs. Each report contributes its own MON–SUN week to one continuous employee calendar.
Waiting for reports
Drop multiple Worksheet HTML files here or click and select several files
Worksheet names/numbers are deliberately ignored. Output is Employee ID + Employee Name + dated activity columns only.
No Worksheet HTML loaded
0 employees0 dates
Build the calendar to see the multi-week matrix.
Route Knowledge Exporter
Convert a DAS Employee Route Knowledge HTML report into a simple Excel file with one row per employee: Employee ID + comma-separated Routes.
If variants are hidden, 18A → 18, 39A → 39, 129A/B → 129.
10E always remains 10E.
Drop Employee Route Knowledge HTML here or click to choose .html / .htm / .txt
Waiting for Route Knowledge Report
Preview
Excel output contains exactly two columns: Employee ID and Routes.
0 employees
Build the export to preview the result.
Changelog
Major changes to DAS Operations Toolkit, newest first.
Current · v7.51Local changelog
0 releases
v7.51Drop report files into data sourcesData sources
Drop TXT, HTML or HTM files directly into report input boxes, with a highlighted drop prompt.
Manual paste remains available. Dropping replaces that source and triggers its existing input workflow.
v7.50Selection Sets and roster exportsWeekly Roster
Save custom selections using pasted BC IDs, service, start/end location and shift.
Export the filtered and sorted matrix with the current display settings to Excel or a PDF print view.
v7.49Trip matching engine fix & single red problem stateDespatch / Trip Monitor
Fixed root cause of incorrect .A/.B/.C cut-duty matching: Unallocated File Details entries were losing their split-piece suffix before matching, so an open 5001.B record could wrongly mark 5001.A trips as unallocated even while 5001.A was fully staffed. Each cut piece is now matched only against its own actual Sign-on/Sign-off window.
The same fix corrects Daily Despatch split-piece grouping, which relied on the identical suffix and was silently never grouping cut duties.
Removed the AMBER "no BC" tier. Any trip problem — an open Unallocated record or an unresolved BC — now renders as a single RED problem state at service, starting-point and trip-row level. Hover a red row for the specific reason.
Service selector buttons are now compact for a denser overview strip.
v7.48 was not merged into this build; v7.47 is the baseline, so the Service-first overview architecture below is unchanged. Allocate Duty, Revised Departure / effective Headway and v7.33 roster scrolling are all preserved as-is.
Trip Operations is now a true all-service overview: every BRR service for the selected day is shown first, regardless of starting point.
A service button turns red if any BRR trip on that service is currently unallocated at any starting point; amber still indicates a roster trip where no BC can be resolved.
Clicking a service now opens that service and automatically selects one starting point only.
Starting points are shown as a second row of buttons, e.g. Svc 31 → Tampines Int / Toa Payoh Int. Click another starting point to switch the trip control board.
If a particular starting point contains problems, its button is also marked so the controller can drill down directly to the affected origin.
Direction remains a secondary control only when the selected service + starting point genuinely has more than one Service Direction.
Redesigned Trip Operations into a controller-style headway console: service buttons across the top, From selector, and a compact trip table.
Service buttons are blue when clear, red when that service has unallocated trips, and amber when the roster has trips with no BC found.
The trip table now follows Sch Dep · Rev Dep · H/W · Duty · BC · Block · Destination, with the existing Allocate duty action retained for unallocated duties.
Unallocated trips are shown as full red rows. Headway is calculated only between operated trips, so a missing trip automatically increases the next operated trip's H/W.
Controllers can key a revised departure into Rev Dep. H/W and headway-break calculations immediately use the revised time while leaving the BRR scheduled departure unchanged.
Revised departures are saved locally in the browser and remain tied to the specific BRR trip/day.
Added Despatch → Trip Operations for comparing BRR scheduled trips against the live allocation state.
Paste BRR Excel rows directly with Service Direction, Service No., Block No., Duty, scheduled departure, trip locations and Date Type.
Filter by MON–SUN, service and service direction. Weekdays automatically use BRR Weekday rows; Saturday/Sunday use their matching Date Type.
BC ID is resolved from the live effective Worksheet roster, including local roster/despatch overrides and composite duties such as 5003.A+5002.B.
Any matching duty still open in Unallocated File Details is shown as a full red NOT OPERATED trip row. Cut .A/.B pieces are matched to the correct trip timing only.
Consecutive missing trips are grouped into a red HEADWAY BREAK band showing the effective gap between the previous and next operated departures.
Unallocated trip rows include an Allocate duty button that opens the existing Daily Despatch Standby / Reassign screen for the same duty.
Increased the Daily Despatch assignment-dialog font sizes, cell padding, tab sizing and overall dialog width for faster reading at the despatch desk.
Added live Excel-style text filters directly below candidate-table column headings. Filters can be combined and update the visible row count without recalculating the recommendation engine.
Reassignment tables can now be filtered by Employee ID, name, duty, shift, Original service, Reallocated service, rest and route-knowledge count.
Standby candidate tables also have live filters for Employee ID, name, standby duty, shift and rest.
Replaced the technical labels Source svc / target with despatcher-friendly Original service / Reallocated service.
Drop balancing is now written explicitly as e.g. Original service: 0 → 1 dropped and Reallocated service: 1 → 0 dropped.
Daily Despatch now changes Split-duty allocation scope according to the selected operating shift.
Early: a full Split duty continues to be allocated as the complete duty.
Late: a full Split duty with detected Activity Master work blocks is allocated as second half only.
Late second halves can be assigned directly to an eligible Late standby BC.
The new Swap 2nd half list only uses BCs currently rostered to another Split duty. Their first/morning block remains intact, while their existing second half is released as the new dropped duty.
Example simulation: BC on 5003 can keep 5003 morning and take 5002 afternoon; the released 5003 second half appears as a new open cut duty.
Next-day 9-hour rest is recalculated from the replacement second-half end time. Source first-half / target second-half overlap is blocked.
Roster overrides can now display composite work such as 5003.A + 5002.B, and composite/cut timing is understood by later rest checks.
v7.42Split duties shown as separate timeline work blocksDespatch Timeline
Activity Master leg detail is now retained in the shared duty map instead of being reduced only to first start / final end.
Work blocks are separated when Activity Master shows a meaningful Sign Off → new Sign On restart, or a large gap between consecutive activity legs.
Full Split duties can therefore render as two or more clickable bars on the Daily Despatch Timeline with the actual long break visibly left empty in the middle.
The gap is labelled with its break duration, while every block still opens the same duty assignment / reassignment popup.
Unallocated File Details remains authoritative for the outer start/end of the duty. If Activity Master differs by more than two hours, the timeline safely falls back to the normal single bar.
Cut fragments such as 5001.a / 5001.b continue to use their own actual Unallocated timing and are not expanded back into the parent duty's full split blocks.
Duplicate Unallocated File Details records for the same day and exact duty are now consolidated before they enter the shared planning state.
If one duplicate is historical 04 Not covered — no staff and another regenerated instance has a blank cancellation reason, the blank active instance wins and the duty is shown once as Unallocated.
The winning row's actual timing is retained, with missing non-status fields filled from duplicate records only when necessary.
Cut-duty suffixes remain distinct: e.g. 5001.a and 5001.b are never treated as duplicates of each other.
Because deduplication happens in the shared live state, Daily Despatch Grid/Timeline, Open Duties and Effective Standby all use the same corrected duty count.
v7.40Interactive dropped-duty timelineDespatch
Added Grid / Timeline view switching to Daily Despatch.
The Timeline plots every visible dropped duty as a clickable bar using actual Unallocated File Details start/end times.
The operating-day scale runs from 04:00 to 04:00 next day and handles duties crossing midnight.
A red live-time line follows the device system clock when the selected day is the current operating day.
Duties starting within 60 minutes, within 30 minutes, or already started are visually prioritised to help despatchers see urgency.
Clicking any timeline duty opens the same Standby / Reassign / chop allocation screen used by the dropped-duty grid.
Timeline view follows the existing Early = Early + Split / Late = Split + Late selector and cannot-drop service configuration.
Fixed BCs appearing as available standby when the Worksheet Summary has a second continuation row with a blank employee cell and another assigned duty.
The toolkit now inherits employee context across same-line / blank-line continuation rows when checking a BC's activities for the day.
If an employee has S1330/SPE/SPL/etc. on one row but another duty/activity on a continuation row, they are excluded from Daily Despatch standby candidates.
The same rule now applies to Effective Standby counts, the Standby → Duty Finder view and the auto-generated Standby Route Sheet.
Standby Route Sheet can now auto-generate directly from the loaded Worksheet Summary instead of requiring a pasted standby list.
Early standby sheet includes SPE, SPM and S0430–S1030; Late includes SPL and S1200–S1730. Numeric standby suffixes such as T are accepted.
Auto-generated standby lists exclude employees transferred to Loyang on the selected operating day.
Added Daily Despatch shift selector: Early displays Early + Split drops; Late displays Split + Late drops.
The dropped-duty totals, summary and reassign balancing counts follow the selected Despatch shift.
Daily Despatch day/shift selections are synchronized into the printable Standby Route Sheet.
v7.37Half-split reassignment to Split BCsDespatch
Daily Despatch now preserves whether a cut duty such as 5001.a/5001.b originates from a Split duty.
A Split-shift BC can be recommended for any fragment of an original Split duty, even when that isolated fragment's actual timing would otherwise classify as Early or Late.
Existing Early/Split/Late compatibility rules remain unchanged for normal non-fragment duties.
The Reassign / chop table now shows each candidate BC's roster shift explicitly.
Removed the v7.34 mouse-wheel recovery layer entirely.
Restored the Weekly Roster / Effective Standby / Roster Stats scroll synchronisation exactly to the v7.33 implementation.
Removed the additional overscroll and scroll-behaviour CSS introduced in v7.34.
All v7.35 Daily Despatch functionality remains unchanged.
v7.35Daily Despatch ControlDespatch
Added a new Daily Despatch module inside the Despatch section using the five shared Roster & Allocation reports — no duplicate data entry.
Builds a service-by-service dropped-duty grid with Early / Split / Late duty slots from Unallocated File Details.
Daily Despatch only includes duties with no cancellation reason or cancellation reason 04 Not covered / no staff.
Unallocated File Details timing takes precedence. Cut duty fragments such as 5001.a / 5001.b are grouped by base duty and actual timing; later fragments are treated as Split for despatch allocation.
Clicking a dropped duty opens standby candidates with route, shift, Loyang-transfer and previous/next-day 9-hour rest checks.
If no standby is suitable, the module recommends deployed BCs to reassign/chop; their original duty becomes the new dropped duty in the shared simulation.
Added persistent cannot-drop service configuration. Protected services are excluded as source duties when recommending reallocations.
Report Converter for DAS HTML reports and Excel/CSV export.
Manning Status with Early/Late standby, unallocated duties, absence/reason mapping and Effective Standby.
WRD Activated / Available calculations.
Route Qualification Finder using Worksheet Summary, Activity Master and Employee Route Knowledge.
Employee Hours Checker and Loyang-support / transferred-employee handling.
No changelog entries match your search.
Employee Hours Checker
Paste or load the DAS Employee Hours Report before the payroll period closes. The checker scans every employee week, flags payroll exceptions, extracts DAS warning messages, and produces an Excel-ready exception report. This module is separate from the Report Converter and Route Qualification Finder.
Drop an Employee Hours Report .html / .htm / .txt file here or click to choose the report file
Waiting for Employee Hours Report
Paid / no-pay absence mismatchHO/HOS must be credited under Paid Abs. NPH/UL must be credited under No Pay Abs.
All No Pay Abs entriesEvery employee/day with a non-zero No Pay Abs value is listed separately so you can check the reason before payroll closes.
Basic hours below 4:00Any non-zero daily Basic value below 4.00 is flagged for possible lateness deduction.
Multiple WRD valuesMore than one non-zero WRD entry for the same employee in the week is flagged as an error.
DAS warningsWarnings printed at the top of the Employee Hours Report are extracted into a separate table and included in the downloadable file.
Exception summary
No report checked yet.
Employee Hours exceptions
No exceptions checked yet.
All employees with No Pay Abs
This is a review list, not necessarily an error. Each row shows the employee, day, No Pay Abs value, and the activity/absence codes found on that day.