# RelayPoint AI — logistics operating demonstration

RelayPoint Logistics is fictional. This project uses reproducible synthetic operating records, not client work or public-market statistics. The business clock is 9 October 2026, 09:00 WAT (Africa/Lagos). No GPS, traffic, route optimisation or guaranteed arrival forecast is provided.

## Baseline and definitions

48 shipments reconcile to 20 active, 24 delivered and four cancelled. Eight active shipments have a promise before the fixed clock. Five other active shipments have a future/current promise and a recorded ETA beyond that promise. Four delivered shipments lack proof-of-delivery references. Seven shipments await dispatch. Delivered-only on-time performance is 21/24 = 87.5%; active and cancelled records are excluded.

The vehicle fixture contains five records. Lane and remaining-weight checks are partial dispatch eligibility tests, not a complete operating optimisation model. Vehicle volume, driver hours, road conditions and routing constraints require further production data.

## Reproduce the website fixture

Run `python projects/logistics/build_demo.py` in the website repository. The resulting `assets/data/logistics/operations.json` is also retained as `logistics_data/operations.json` in the live demo repository. Guided scenario answers are generated from `LogisticsTools` and `scenario_answer`; the website never invokes a language model.

The live runtime is maintained in `opeyemiagboolabethel/cedarstone-ai-demo`. Its shared Streamlit entry point routes `?industry=logistics` to RelayPoint. The website has a dedicated case page and sector-gallery entry.

## Live AI and controlled actions

Scenario mode routes known questions to deterministic tools. Live AI uses the configured Gemini provider to select six approved read/proposal tools. Tool evidence is retained with the answer. The AI has no allocation-commit tool. A human reviews a validated proposal in Action Lab and explicitly confirms it. The commit rechecks shipment state, vehicle compatibility, capacity and the expected session revision. It records role, fixed business timestamp, revision and before/after state. The fixed timestamp is not a wall-clock production audit timestamp.

Operations managers and dispatch coordinators can inspect fleet capacity and simulate allocations. Customer service can inspect shipment records and prepare drafts. Commercial value/fee fields are omitted for non-manager roles. Role switching is a permission demonstration, not production identity. Each session has independent in-memory state; reset or session loss discards simulated actions. Messages are drafts only and no real dispatch occurs.

## Verification

- `node projects/logistics/test-model.mjs`: website-model reconciliation, exception definitions and delivered-only denominator.
- `python -m unittest test_logistics -q` in the runtime repository: 25 tests covering reconciliation, role redaction, denial, capacity/lane/maintenance guards, no-write proposals, explicit confirmation, stale/duplicate commits, drafts, isolation and boundary cases.
- `python test_logistics_app.py`: routed app loading, grounded scenario answer, review/confirmation, updated allocation state and role isolation.
- Existing CedarStone regression suites continue to run because both sectors share an entry point.

A production deployment would add authenticated identities, durable storage, approved system integrations and fuller fleet constraints, then assess value with the measurement framework. No savings, delivery-rate lift or client outcome is claimed by this demo.
