Skip to main content

5-Dot Compliance

Every MARS work order must clear five document checkpoints before it can reach Completed status. These are displayed as five status dots on every WO row in the Active Queue โ€” giving the FSS team instant visibility into which documentation is pending for any in-flight order.

The 5-Dot Compliance Standard: Essential Work Order Indicators

The Five Dotsโ€‹

#DotFull NameWhat it verifies
1BOLBill of LadingOfficial transport documentation โ€” the legal record that a haul occurred
2LSPLogistics Service ProviderThe hauler identity and responsibility chain for the initial pickup movement
3TONTonnage / Weight TicketMeasured weight of the material โ€” required for billing accuracy and regulatory reporting
4DSPDisposal Site ProviderThe authorized facility where materials were delivered for final disposal
5CODCertificate of DestructionQuantitative proof that the material was properly processed and destroyed
LSP and DSP are pre-qualified

LSP and DSP are verified at WO creation from registered provider lists โ€” they don't require document uploads, only confirmation that a valid provider is on record. BOL, TON, and COD require file uploads.

Dot Statesโ€‹

Each dot transitions through three states:

StateColorMeaning
pendingGreyNot yet uploaded or confirmed
reviewAmberDocument uploaded, awaiting verification
verifiedGreenConfirmed โ€” this dot clears the gate

Rejection sends a dot back to pending.

The Compliance Gateโ€‹

Orbit's 5-Dot Standard: The Path to Verified Compliance

The compliance gate blocks WO state progression at a critical point:

  • Serviced โ†’ Completed requires all five dots to be at review or verified โ€” checked via allUploaded() in frontend/src/utils/compliance.js
  • Full verification (allVerified()) is a stricter check โ€” all five at verified โ€” used for final compliance reporting and the Hauler Compliance Scorecard

A WO stuck with grey dots in the Active Queue cannot advance to Completed regardless of its other fields. The FSS dispatcher can see exactly which dots are blocking by opening the WO's SideDrawer.

The Work Order Journeyโ€‹

Orbit's 5-Dot Compliance: The Journey of a Work Order

The work order lifecycle maps onto the 5-dot gate as follows:

PhaseWO StatusesCompliance role
IntakeNew โ†’ Acknowledged โ†’ Dispatched โ†’ ScheduledNo dots required yet โ€” haul hasn't happened
Service ExecutionDispatched โ†’ ServicedHauler executes the pickup; documents begin accumulating
Compliance GateServiced (blocked)All 5 dots must reach review or verified before advancing
Clearing the GateServiced โ†’ CompletedGate opens once all dots are satisfied
Final DestinationCompletedAll compliance docs verified โ€” WO is closed

Where Compliance Appears in the UIโ€‹

Active Queue โ€” Each WO row shows all five dots inline. Grey dots flag actionable WOs at a glance. The "NTE Pending" and "Has Issue" badges also surface from the same row.

SideDrawer โ€” Expandable compliance panel shows each dot's current state with upload controls and reviewer action buttons.

/compliance view โ€” Five tabs:

  1. Program Coverage (default) โ€” Quality Risk Matrix across all WOs
  2. LSP Registry โ€” Registered logistics service providers
  3. DSP Registry โ€” Registered disposal site providers
  4. Disposal Tracker โ€” Per-WO disposal record
  5. Non-Conformance Register (NCR) โ€” Compliance violations and remediation tracking

Hauler Portal (/h/compliance) โ€” Hauler-scoped compliance scorecard filtered by vendorId, with 14 / 30 / 90 / YTD date range selectors.

Implementationโ€‹

Compliance logic is implemented as pure functions in two files that must stay in sync:

FileRole
frontend/src/utils/compliance.jsallUploaded(), allVerified(), dot state helpers โ€” used by WO rows and SideDrawer
backend/app/state_machine.pyGate enforcement on Serviced โ†’ Completed transition โ€” called on every state advance API request

The backend is the authoritative gate. The frontend mirrors it for optimistic UI, but the backend will reject any transition that doesn't satisfy the compliance check, regardless of what the frontend shows.

MARS customers only

All current WOs in the system are MARS customers, so all WOs require all 5 dots. Non-MARS customers (future) will have compliance requirements defined per customer profile โ€” the compliance module is already structured to support per-customer rules.