| Trip ID | Customer | Trip Type | Pickup | Delivery | Time Window | Milestones | Courier | Status |
|---|
Today's Trips
Courier Roster
Courier Real-Time Map
Select a conversation
Choose a person or group on the left to start messaging.
Patrol Map
Patrol Officer Tracking
Manual Dispatch Board
Pre-scheduled visits. Log calls from officers below.
Daily Activity Report
StandardIncludes text fields and secure signature.
Incident Report
High PriorityIncludes dropdowns, photos, and signature.
Delivery Sign-off
CourierFor couriers finalizing a delivery.
Bank Cash Pickup Form
Armed TransportDenomination ledger calculator for bank collections.
Assign Form to Personnel / Role
Waiting for field submissions...
Immutable Ledger Audit Trail
Cryptographically sealed custody records  write-once, tamper-evident.
| Trip ID | Customer | Trip Type | Status | Pickup → Delivery | Courier | Bag IDs | Time Window | Timestamp | Dispatcher | Evidence | Hash | Trace |
|---|
📊 CEO Executive Summary & Operations Report
Sage bridge: checking…
Outbound ? upload payroll and billing to Sage
Outbound means NSCC → Sage (data leaves NorthStar and is written into Sage staging). Upload delivered trips and completed shifts for one day, a from–to date range, or all pending rows. Finance still posts from Sage afterward.
All pending ? every business date in the write-back queue (no date filter).
Pending: 0 · Staged: 0 · Failed: 0
| Trip / ID | Flow | Rate | Status | Queued |
|---|---|---|---|---|
| Loading queue… | ||||
- Preview on screen — Shows the payroll/billing rows that would be uploaded. Nothing is sent to Sage yet.
- Push to Sage staging — Sends those rows to Sage staging. Finance still posts in Sage afterward.
- Verify Sage received it — After a push: double-checks Sage staging still has those rows and amounts. Wait ~2 min, then open Leadership & Finance → Refresh KPIs.
- Verify Sage posted it — After Finance posts in CRE: diffs posted JC/PR vs the NSCC batch (off until Sage admin confirms the join key survives import).
- Copy IPS push command — Copies the server command if the browser queue is unavailable.
Roster and customer sites refresh from Back Office → Personnel and Customers — not here.
Recent activity
Latest requests (failures first). Click a failed row or ⚠ for steps. Full exports under Admin.
| When | User | Direction | Flow / reason | Status | Result | Batch |
|---|---|---|---|---|---|---|
| Open Sage Connect to load history. | ||||||
Inbound (Sage → NSCC): master data download about every hour, plus manual pull from Admin. Outbound (NSCC → Sage): on-demand Push to Sage staging for a single day, date range, or all pending rows. UI queue requests process within ~2 minutes.
Client billing invoices
IPS-letterhead invoices from NorthStar completed work and customer rates. Use them to compare against Sage 300 CRE receivables and simulate billing before push.
Invoices bill from operational data and NSCC customer rates ? not posted in Sage until Finance posts there.
- Save PDF — Downloads IPS-letterhead billing invoices for that service line. For review/compare only — does not post invoices in Sage.
- View invoices — Opens the on-screen invoice viewer for the same data.
Compare to Sage receivables and simulate billing. Two-courier payroll exceptions are not added to customer courier invoices.
Inbound ? download customer and roster data from Sage
Inbound means Sage → NSCC (data is read from Sage and cached in NorthStar). It is not a push of NSCC data into Sage. Downloads personnel and customer sites. For roster or sites only, use Personnel or Customers. Trip rates live in NSCC Customers.
Last server inbound poll
- Pull all from Sage — Inbound (Sage → NSCC): downloads personnel (EMPLOYEE) and customer sites (SERVICESITE) from Sage into the NSCC Firestore cache. Does not upload NSCC trips or payroll to Sage.
- Copy pull CLI — Copies the command to run that same inbound pull on the IPS / Sage server.
Dead-letter requeue (Admin)
Reset a dead_letter / failed write-back row to pending after the root cause is fixed. Administrator only — same controlled path as Push (middleware poll), not hand-run Python.
Copy live master data to demo sandbox
Refresh sage_sandbox_* Firestore from the live cache so /demo shows current personnel and customer sites without live ODBC reads.
- Copy live → sandbox — Copies the live Sage-cached personnel and customer sites into the demo sandbox collections used by
/demo. Does not talk to Sage ODBC and does not change live data.
Exports
PDF reports and CSV downloads from the Firestore cache. Same menu as the header Export… button.
- Open export menu — Opens PDF/CSV reports from the Firestore cache (bridge health, sync activity, master-data extracts). Export only — does not push or pull Sage data.
Advanced — bridge test & IT commands
- Run bridge test — Checks that the IPS host can reach Sage (ODBC) and Firestore. Does not move payroll or master data.
- Copy bridge CLI — Copies the host command for that same connectivity test.
- Copy push CLI — Copies the outbound (NSCC → Sage) push command for IT to run on the Sage server.
- Open IT ticket (template) — Opens a support ticket prefilled for a Sage sync failure.
- Support menu — Opens the general NSCC support form.
NSCC ↔ Firestore queue ↔ Python ODBC on IPS ↔ Sage 300 CRE. Browser cannot run ODBC — see docs/SAGESYNC_OPERATIONS_GUIDE.md. Remember: inbound = Sage → NSCC, outbound = NSCC → Sage.
Loading middleware commands…
Loading escalation guide…