Skip to content
Foxx Cyberfoxxcyber/docs

The compliance dashboard

How RailCompliant works out what is due, and what to do about it.

Compliance Due answers the question the shop asks every morning: what is due, and on what. It computes every tracked obligation for every locomotive from the records you have filed, rather than from a date someone typed into a calendar.

Reading the board

The page opens with three counts — overdue, due soon, and current — and then one row per locomotive and obligation:

Compliance Due board with overdue, due soon and current counts, and rows pairing each locomotive with an obligation, its CFR citation, service-day or calendar basis, elapsed and remaining interval, projected due date, and status

ColumnWhat it tells you
LocomotiveThe engine the obligation belongs to
Inspection / testThe obligation, with its CFR citation linked
BasisWhether it is counted in service days or calendar days
ElapsedHow much of the interval has been used
RemainingWhat is left before it comes due
Last doneThe date the obligation was last cleared, or "never"
DueThe due date, or the condition that will trigger it
Statuscurrent, due soon, or overdue

The last column holds a File → link that opens a new inspection already pointed at the right locomotive and the right form, and, for a row that is not current, Open WO or View WO → (see below).

On a phone each row becomes a card, with the locomotive and status on top and the figures and actions beneath, so nothing is cut off.

The same table, narrowed to one engine, appears as Interval status on the Compliance tab of each locomotive's record page.

Which locomotives are listed depends on where your trains run and your track gauge. On narrow gauge, and off the general system on a line that is not insular, only steam locomotives are listed: Part 229 covers standard gauge only (§229.3(a)), and off the general system FRA applies only the rules that specifically reach beyond it, Part 230 among them (49 CFR Part 209, Appendix A). On an insular line, a line that runs freight only inside an installation, or track under 24 inches, none are listed, because no federal locomotive intervals apply. A note under the table says why, with the citation, and each locomotive's Compliance tab says so as well.

When no locomotive interval is tracked at all, the dashboard's Locomotive compliance gauge reads Not tracked with the reason, not a percentage.

The two clocks

Obligations are counted on one of two bases, and the difference matters.

Service days count days the locomotive was actually in service, not days on the calendar. An engine that ran twelve days last year has used twelve service days, whatever the date says. RailCompliant collects service days from three places and deduplicates them per date:

  • dates the locomotive appears in an excursion,
  • dates with a mileage entry, and
  • days logged directly with Log day on the locomotive page.

Filing a daily inspection also records a service day for that date. Every service-day clock counts every logged day since that obligation was last cleared — or every logged day on record, if it has never been done — so days you entered from before the locomotive came onto the app count the same way toward every clock.

Calendar days count wall-clock time regardless of use — the Part 230 annual and the Part 229 obligations work this way.

For service-day obligations the app also projects a likely calendar date from how often the locomotive runs, so you get an estimate of when the interval will run out as well as the raw count remaining. The pace is the engine's recent one — the faster of its last 30 and last 180 days — unless you set an expected number of service days per week on the locomotive's Compliance tab; see Locomotives. Status never depends on the projection: due soon and overdue count the days actually logged. A projection never runs past a hard calendar limit, described next.

Due, then overdue. An obligation is due on its due date and overdue from the next day. The regulations count that day as still inside the interval, so an inspection done on its due date is on time.

Obligations with two limits

Two Part 230 obligations are due on whichever of two limits comes first, and the board applies both:

  • The 1472 boiler inspection is due at 1472 service days or 15 years from the last one. The projected due date is capped at the 15-year date, the row turns due soon 180 days before it — a 1472 is a teardown measured in months — and overdue on it, however few service days the engine has run. Fifteen years from a 1472 done on 29 February ends on 28 February. If no last 1472 date is on file, the row says the 15-year limit is unknown and asks you to record the date on the locomotive.
  • Air brake valves (§230.74) are due at 368 service days or the second annual inspection, whichever comes first. The projected date is capped at when the second annual would fall due.

The superset rule

Part 230 inspections are a nested hierarchy: daily is contained within the 31-day, which is contained within the 92-day, which is contained within the annual, which is contained within the 1472-day. Each tier includes every item below it.

RailCompliant applies that: completing a higher tier resets the clocks of the tiers beneath it, because the higher inspection necessarily covered them. Filing an annual clears the daily, 31-day, and 92-day clocks at the same time; you do not file four records for one job.

Part 229 is different: each clock resets only on its own record. Filing the §229.27 annual tests does not reset the §229.23 periodic inspection, because neither includes the other.

What is tracked

49 CFR Part 230 — steam

  • Daily inspection — §230.13, one service day
  • 31 service day inspection — §230.14
  • 92 service day inspection — §230.15
  • Annual inspection — §230.16, within 368 calendar days
  • 1472 service day boiler inspection — §230.17, 1472 service days or 15 years, whichever comes first (see above)
  • Flexible staybolt caps — §230.41, due at every fifth annual since the caps were last removed, and also satisfied by a 1472
  • Air brake valves clean and test — §230.74, 368 service days or the second annual, whichever comes first

49 CFR Part 229 — diesel and modern

  • Daily inspection — §229.21
  • Periodic inspection — §229.23: every 92 days, or every 184 days for a locomotive with condition monitoring controls (§229.23(b)), set on the locomotive. That setting also adds the 33-day daily inspection by a qualified mechanical inspector that §229.23(b)(2) requires.
  • Annual inspection — §229.27

Service-day counting for Part 230 follows §230.18. A run that was cancelled gives no service day; a filed daily or a logged service day still does. Part 229 calendar clocks take out-of-use credit under §229.33: record when a diesel is out of use on its Compliance tab, and each period of at least 30 consecutive days without service since the last inspection extends the due date by those days. The credit shows beside the due date.

Turning a due item into work

Two buttons turn the board into shop work:

  • Open WO opens a work order for a single due item, straight from its row.
  • Open WOs for all overdue, in the page header, opens work orders for everything overdue in one action.

RailCompliant also opens these automatically each day as obligations come due, so an interval does not lapse because nobody was watching the board, and administrators get a daily digest of what is coming due. Each work order is tied to the specific obligation it covers, so the daily run — or clicking the button yourself — never creates a second work order for the same thing. Once one exists, the row shows View WO →, which goes straight to it; the dashboard's Needs attention list and the locomotive's Compliance tab link to it too.

Filing the inspection closes the work order. The clock resets when the inspection record is filed complete or approved, and at that moment RailCompliant completes the open compliance work orders the inspection satisfies — its own tier and every tier beneath it, and the staybolt caps on a 1472 — noting the inspection that closed each one. It only closes a work order when the obligation then shows as current, so back-filling an old inspection never closes a work order for work that is still owed.

Completing the work order by hand is not the same as clearing the obligation. The clock resets when the inspection record is filed, so finish the job by filing the inspection — see Recording inspections & tests.

Completing a Part 230 inspection also creates the FRA filing deadlines that follow from it; those are tracked separately on FRA filings. To read the underlying rule for any row, follow its citation into the regulations library.

Last updated October 7, 2026