v1.4 · operations platform

Allocate volume across racks. Publish to DTN. Stay out of the spreadsheet.

Terminal is the operations layer that sits between SAP / S/4 and DTN TABS. Operators schedule policy-driven runs, preview every override, and publish in one click — with audit, RBAC, and per-row tracking that holds up to a Big-4 walk-through.

DTN TABS · live3 distributors in pilotSOC 2 type II · in audit
run · DTN-TABS-PROD · cycle 2026-05-18 · operator: dana@cascadeAWAITING APPROVAL
Ship-toWant (gal)AllocateΔStatus
ACME-EAST · 770412,00012,000 0OK
CASCADE FUEL · 4421 8,500 8,250−250REVIEW
PROVIDENT-COFFEEN · A2 24,000 24,000 0OK
MIDWEST DISTRIB · 0918 6,200 6,200 0OK
RIVERSIDE BULK · 1149 15,000 12,400−2,600HOLD
5 of 87 ship-tos shown · 2 held · last preview 00:12 agoPUBLISH TO DTN
10.4Mgallons preview / day
87ship-tos served
12racks under management
0publish errors past 90d
01 / The problem

You shouldn’t be allocating volume in Excel.

The morning loop at most refined-fuel distributors looks the same. An ABAP export drops into SharePoint. Three Excel tabs get massaged. A 9am Teams call confirms which ship-tos are in scope. Someone pastes into the TAS Web form by hand. DTN rejects half a load and nobody knows why.

TodayABAP export → 3 Excel tabs → Teams call → copy-paste into TAS Web.TerminalOne policy. One preview. One publish. One audit log.
02 / Workflow

Four steps. One auditable cycle.

The same loop the operator runs every morning. Policy is the ground truth; everything downstream is derived and verifiable.

  1. STEP 01

    Define a policy

    Formula, ratable window, override rules, who can override. Versioned; previous policies stay queryable.

    RATABLE 30DMAX_OVERRIDE 5%REQUIRES 2 APPROVERS
  2. STEP 02

    Generate a preview

    Per ship-to demand vs. available — calculated against current open volumes in under 2 seconds. No state mutation.

    acme-east12,000 gal
    cascade-4421 8,250 gal
    midwest-0918 6,200 gal
  3. STEP 03

    Approve overrides

    Row-level annotation. Every override carries an actor, a reason, and a timestamp — straight to the audit log.

    −250 gal · cascade-4421dana@cascade · “tank gauge low” · 18 May 11:04
  4. STEP 04

    Publish to DTN

    Idempotent write to TABS. The auto-reconciler watches the response and surfaces drift on the dashboard.

    POST /tabs/allocations200 OK · 87 rows
03 / Capabilities

The boring, important parts. Done.

Per-row preview

Every ship-to gets a line. Diff against last cycle, overrides annotated, exportable to the controller before publish.

acme-east12,000 gal
cascade-4421 8,250 gal
midwest-0918 6,200 gal

Signed audit trail

Append-only event log. Actor, subject, payload, occurred_at. Filtered views by ship-to, by operator, by reason code.

11:04integration.updateddana@cascade
10:42run.publisheddana@cascade
09:18user.role_changedmatt@acme

Roles that hold

Admin, operator, viewer. Last-admin guard. Tenant_user.role surfaced everywhere the api enforces it.

admin2operator6viewer11
04 / Proof
“We used to call a 9am Teams meeting just to confirm which ship-tos were in scope. Now everyone reads the run preview, comments inline, and the publish happens at 10:30. The meeting died.”
Dana Reyes · Allocations Lead, Cascade Refined Products · tenant: cascade
05 / Pricing

Priced per rack. Pilot is free.

Pilot

$030 days

DTN TABS hookup. One published policy. Full audit + RBAC. Ends or converts to Pro — no auto-bill.

Start pilot

Pro

most picked
$2,400per terminal / month

Production rack. Up to 8 active policies. Slack + email alerting. 99.9% publish SLO.

Start Pro

Enterprise

Customannual contract

Multi-rack, multi-tenant. SSO, custom audit retention, named SRE contact, on-premise option.

Talk to sales
06 / Ready

Retire the morning spreadsheet.

Start 30-day pilotTalk to sales