Admin loads
The Loads directory under Operations lists freight orders in your tenant. Use the Directory, Dispatch board, and Exceptions section tabs on that hub to switch views. The primary label is the Axivoy load number (formatted like AX-000042), not the Alvys vendor id.
Above the filters, a desk summary strip jumps you into common work queues. The tiles change per hub tab so each count matches what its click filters to on that tab. On the Directory tab:
- Active — loads in an active operational status (open, covered, dispatched, at pickup, in transit, at delivery); excludes drafts, delivered, and cancelled
- Drafts — draft/open compose loads in Directory with other filters cleared
- Not ready to invoice — delivered loads still marked not ready to bill (shown only with financials access)
- Detention watch — loads with at least one stop in free-time warning or active detention. When Detention monitoring is off this tile is shown but disabled with the note Detention monitoring is off (not a zero)
The Dispatch board and Exceptions tabs each show their own tiles (On board / At facility / Covered / In transit on the Board; Detention / Pending accessorials / TONU candidates on Exceptions, with Free time ending / In detention / Cleared under the Detention type).
Rate-con and blank intake compose loads stay hidden from the default directory until you click Create load (WIP compose with intake_started_at set and not yet finalized). Filter Operational status → Draft (or the Drafts desk card) to list active WIP compose drafts only.
Directory search matches Axivoy #, Alvys load # (when synced from Alvys), partner organization name, trip numbers (primary and linked segments), order, PO, indexed reference numbers (BOL, PRO, etc. on load_references), and invoice numbers (including voided documents). The Invoice # column still shows only the active settlement invoice when there is one.
Directory
The directory uses a compact finder: free-text search (debounced), partner typeahead, pickup/delivery date range, a More panel (operational status, outcome, driver, dispatcher, detention attention; billing status and billing hold when you have financials access), Customize, Sort, active filter pills, Clear filters, and Reset all.
Multi-select filters: Partner, operational status, outcome, driver, dispatcher, and billing status each accept more than one value (matches any of the chosen values). Status, outcome, and billing status are multi-select lists; partner, driver, and dispatcher are search-and-add chips. Each selected value shows its own removable pill. Everything works without JavaScript too — the filters submit as a normal GET form, and each pill is a plain link that drops just that value. A driver filter matches loads where that person is either the primary driver or the co-driver on a team trip. If you paste a link with too many values on one filter (more than 25), the page shows a clear "filter not applied" message instead of guessing.
Customize: Show or hide columns (partner, status, pickup, delivery, driver, dispatcher, attention, trip #, miles, truck, trailer, order #, PO #, outcome; with financials access also billing/funding status, rate, billed, collected, open balance, invoice #, collection status, invoiced/paid dates). Load # always stays on. Drag ⋮⋮ or use ↑ ↓ to reorder columns left-to-right (order is remembered separately from which columns are visible — hiding a column keeps its place when you show it again). Pin selected More filters onto the compact toolbar. Reset layout returns columns, column order, and pins to defaults without clearing your current filters. Hiding a column that is part of the current sort removes that sort level and returns you to page 1.
Sorting: Results can use up to three sort levels in the URL as sort=column:direction,column:direction (for example operational_status:asc,pickup:desc). Default is newest pickup first. Clicking a column header replaces the sort with that column only — if it is already the only sort, the click toggles ascending/descending; if it appears in a multi-level sort, the header click keeps that column’s current direction and drops the other levels. Use the Sort panel to add, remove, reorder, or flip levels — it only offers currently visible sortable columns (core columns plus optional/AR columns you turned on). Changing sort always returns you to page 1. Missing values sort to the bottom. Operational status, billing status, and funding status sort in lifecycle order (not alphabetically). Partner, driver, and dispatcher names sort case-insensitively. Attention, Open, and Invoice # are not sortable (open balance is each load’s own balance, not a consolidated invoice document balance).
Your last filters, sort, and column/pin layout are remembered when you return from load detail (page number comes only from the URL, never from saved prefs). Clear filters empties filters while keeping column/pin layout prefs. Reset all clears all saved directory preferences. Dispatchers see only roster-scoped loads. Billing columns and filters require financials access — crafted URLs cannot bypass that. Without JavaScript, the form still submits a normal GET; with JavaScript, results and pagination refresh in place and the address bar stays shareable (including ?page=).
Click a compose draft load number (active WIP intake) to open the composer; finalized and Alvys-synced loads open load detail.
Rows show how the load entered Axivoy: Alvys Sync, Rate Confirmation Upload, or Manual. Deleted compose drafts are not listed here — use Activity & logs → Recycle Bin to restore or permanently delete them. Profile locked means Alvys nightly sync will not overwrite TMS fields an admin edited.
Detention monitoring
When tenant Loads → Detention monitoring is enabled, Axivoy derives broker free time from rate con detention terms (primary intake), partner billing rules, or tenant defaults. The effective policy and Source (rate confirmation, customer profile, or system default) appear in the sidebar Financial snapshot card and under Financials in the main column. Stops with an arrived timestamp and no departed timestamp enter a Warning phase before free time ends, then Detention active after free time expires.
- Operations → Loads → Exceptions is the Ops worklist. Use the Detention type for active warnings and detention clocks (same behavior as the former Detention workspace). Live warning and in-detention rows show a ticking clock (Free time ends in while free time remains, then Detention active for after free time expires). When monitoring is off it stays on that list with an explanation instead of switching you to another view. The Cleared tile opens a read-only history of stops that already have a detention claim (Claimed) plus recently departed stops that likely qualified but have no claim yet (Missing), over the last 14 days — Cleared has no live clocks and only reads; it never creates or changes a claim. Pending accessorials lists draft / approval-requested customer charges (layover, lumper, detention, other) with a live aging clock per load (Auto-issue / Grace / Coalesce / Pending supplemental) and opens that line on load Financials (approve / deny / edit amount, supporting docs, follow-up email, log phone call) — the same drafts also appear on Accounting → Invoices → Waiting. TONU candidates lists cancelled loads that are not yet TONU and opens Mark as TONU on the load. Exceptions does not issue invoices.
- Dispatch board cards show compact Warning or Detention badges (no ticking clocks).
- Load detail → Needs attention lists detention issues with deep links to the relevant stop. Stop cards show a Warning or Detention badge, plus a Detention watch box under Schedule & actuals (collapsed by default) with the live free-time / detention-active clock; expand it for policy source, billable hours, and a link to Exceptions.
- When detention emails have been sent for a stop (free-time warning, started notice, claim request, or claim notice), the stop card shows a collapsible Detention communications summary. Open a row's type name to view the full message when your role can open Message log.
- The load Activity log includes those outbound detention / accessorial emails alongside sync milestones, status changes, notes, and phone calls logged from Financials exception case actions (with the related stop when available).
- Broker email notices use the communications platform; set Email delivery mode to Sandbox under tenant integrations to hold messages for review in Message log before sending live. Operator follow-up from Financials uses the same gate as detention broker notices.
Revised rate confirmations with an explicit detention line item can auto-approve a customer billing accessorial when Auto-execute supplemental detention is enabled (default off). Otherwise low-confidence signals route to the AI workflow inbox. When the matched detention line is already on an issued invoice, Axivoy leaves the original accessorial amount alone. Under Settings → Configuration → Automation, Require manual review (default) records the proposed change for a clerk to apply (debit/credit memo) or dismiss (no document); Automatically approve corrections issues the memo without clerk review. Paid or factored invoices stay flagged for clerk review under Correct invoice….
When Create load is visible, native load CRUD is enabled platform-wide (super operator toggle on Platform → Operations).
Document intake (rate confirmation)
When Rate confirmation extraction is also enabled, Create load offers upload-first intake or Start blank load:
- Upload a rate confirmation PDF or image or click Start blank load to skip the document.
- Axivoy allocates an Axivoy load number immediately and opens the composer (
/admin/loads/{load}/compose). - On the composer, review extracted values beside each field — sparkle (AI confidence on hover), warning (readiness flags such as not on document on hover), or a gray dot (Edited on hover) when you changed a value. While extraction runs, sections appear automatically without reloading. Use Full review on the document panel for corrections, reject, or reprocess. Customer and Trip assignment (dispatcher, driver, co-driver, truck, trailer) fields start as read-only text with a pencil icon — click the pencil to change a value, then Collapse when done (same pattern as Trip route, Freight, and Financials). When extraction names a customer or contact but no partner row is linked yet, open Customer edit to see one amber Confirm customer and contact panel: pick Customer, then Primary contact, each with pen-only preview and a dropdown of Link existing then Create new (type a different name to create that partner). Create load with create selected creates the partner organization and/or contact in Operations → Partners. Load-level reference numbers (order #, PO #, BOL, PRO, etc.) appear as compact chips in the Load summary sidebar — label and value stacked, with the same hint icons beside the pencil; click the pencil to edit, then the check mark to finish. Per-stop references use the same chip pattern on each Trip route stop card. Enter stops, freight, temperature, and financials as needed. Pickup and delivery milestones are read-only in the Load summary; edit stop schedules on each Trip route stop card.
- When extraction included driver/truck hints, check Trip assignment and the inline Assignment match hint (if shown) to confirm or pick fleet rows. Driver and co-driver pickers follow your Dispatcher assignments roster; choosing a driver auto-fills Dispatcher when that field is empty. Ambiguous matches are not applied automatically; exact and phone-assisted matches may pre-fill but still ask you to confirm.
- For each unlinked stop, use Confirm facility site: choose Partner site (preview + pen; search is not scoped to an organization). Use Link existing or Create new; badges show Linked / Suggested or Will be created on Create load. Creating a site shows a Grouped under strip for the brand company (automatic when clear; short brand choice when ambiguous; confirm when minting a new company). Editing Site name updates the Partner site preview and Grouped under. On compose Trip route, set Route origin with the same picker pattern (prior stop or home terminal recommended first, or Enter manual origin address).
- Use Save draft, Create load, and Delete draft from the page header (always visible while you scroll). Save draft persists assignment, route, freight, and partner picker choices without finalizing — partner directory changes apply only on Create load. Resolve any validation issues listed beside fields or in the banner above Create load, then click Create load to save, approve the extraction, provision partners, and finalize (
intake_finalized_atset). The load then appears in the directory. Use Delete draft to move WIP compose to Activity & logs → Recycle Bin (type the draft identifier to confirm).
Legacy Intake and Finalize URLs redirect to the composer. Directory search and KPIs use canonical load, stop, and reference tables — not extraction JSON.
Compose layout: The composer uses the same route-first 8/4 grid as load detail — sticky page header (load #, status, customer, lane, truck/driver, next appointment), Needs attention when issues exist, and Upload in the header for blank native drafts (opens a full-width upload strip; not duplicated in the Documents section). Sticky section tabs jump to Route · Assignment · Customer · Freight · Documents · Financials (no Activity tab). The right sidebar is the shared Load summary operations panel (progress, temperature, mileage, equipment, references). Save draft, Create load, and Delete draft stay in the action row below the breadcrumb.
To update an existing native load, upload a revised rate con on Documents, approve the extraction, then use Review changes → Apply to load (same load id). Alvys-synced loads keep Create native draft as a secondary path from extraction review.
Create and detail inline edit (Phase 9)
The legacy create wizard (POST /admin/loads) still accepts customer, references, temperature, schedule, status, dispatcher, and revenue in one request. Prefer Start blank load or rate-con upload → composer for new loads.
Use Start blank load on the create landing to skip document upload and open the load composer directly.
Both intake paths allocate an Axivoy load number immediately and open the composer (/admin/loads/{load}/compose) where you enter customer, stops, freight, and financials. After finalize, load detail is the edit surface: Customer, Trip assignment, Freight, Temperature control, and Trip route use pencil-triggered edit mode with Save / Cancel. Load summary reference tags (order #, PO #, and typed refs) use per-tag pencil → checkmark save with a brief green disk icon beside the value; scheduled pickup/delivery display read-only there and save on Trip route stop cards.
Composer: trip assignment, customer, contact, and facility matching
The composer includes the same Trip assignment panel as load detail (driver, co-driver, truck, trailer, dispatcher). Compose does not include an operational status picker — a hint under Trip assignment shows whether Create load will set Open or Covered from assignment completeness. When both driver and co-driver are assigned, pick Team Position 1 (lead) and Team Position 2 for Team Pay loads. After rate confirmation extraction handoff, Axivoy may pre-fill assignments when it finds a single fleet match. An inline Assignment match hint appears when extraction could not resolve every role (for example duplicate driver names or missing trailer numbers). Review the status labels (Exact match, Phone-assisted match, Ambiguous match, Unmatched) and confirm or change the trip fields before clicking Create load.
When AI extracted a field and you have not changed it, the composer shows a sparkle icon beside the label — hover or focus it for the AI confidence percentage from the provider. Readiness flags (for example Not on document) use an amber warning icon with the flag text on hover. After you edit or fill a field, a gray dot appears instead (Edited on hover); the underlying extraction metadata is preserved for analytics.
When extraction names a customer or primary contact but the load is not linked yet, open Customer edit to see one amber Confirm customer and contact panel: pick Customer, then Primary contact, each with pen-only preview and Link existing / Create new (type a new name under Create new, or Add a different… for a blank form). When you link an existing partner, preview lines show an amber dot on fields that will be filled in only where the partner row is still empty (hover for details). Create load with create selected creates the organization and/or contact in Operations → Partners using the same address fields as the partner profile. The native create wizard does not add new customer orgs — only compose intake does.
Editing the route on compose: On Trip route, click Edit route to add, remove, and reorder stops. Use Add stop (bottom) to append a stop, or Add stop here between stops to insert at that position; new stops default to delivery (or pickup when the route is empty) and you can change the type with the stop-type dropdown on the card (pickup / delivery / waypoint — waypoints save with the draft). Drag the Reorder grip to change stop order; if a new order would put stops out of schedule order, Axivoy asks you to confirm before saving. Use Remove to take a stop off the route. Each change saves immediately and refreshes mileage and needs-attention; route warnings appear only in the sticky Needs attention panel.
Stop addresses from extraction do not automatically link to the booking customer partner. Each unlinked stop shows Confirm facility site with a match status badge and From rate con address context when available. Confirm Partner site only (organization grouping stays in the background). Use the pen to open search (text is selected so typing replaces it; the main recommendation stays pinned at the top); dropdowns show Link existing (recommended pins, then other matches) and Create new (Create “{name}” as a new … from what you type, or Add a different…). Will be created on Create load selections reveal editable address fields plus Grouped under for the brand company. Changing Site name keeps the Partner site preview and Grouped under in sync with what you typed. Directory rows are created only when you click Create load. Inactive partner orgs and archived sites never appear in search or recommendations. After finalize, the stop shows the partner location like load detail.
- Native loads (
axivoy_native): full create, inline detail edit, cancel, and Mark as TONU. - Alvys-synced loads: profile and most fields stay read-only unless your role includes the sync-owned bypass permission. On detail, Alvys profile lock prevents Alvys from overwriting TMS fields you edited. Cancel and Mark as TONU still work when your role allows load cancel (Axivoy only — no Alvys API call).
Danger zone (Cancel / Mark as TONU / Recycle Bin)
At the bottom of load detail (below Activity log), the Danger zone shows peer buttons for Cancel load, Mark as TONU (when you have cancel permission), and Move to Recycle Bin (platform operators). Each button opens its own confirmation dialog titled with the load number — type that same number and pick a reason there, not on the page itself.
Cancel sets operational status to Cancelled and outcome to Cancelled. When the load already has an Axivoy settlement invoice, the confirm dialog lists AR consequences and blocks confirm if those consequences change before you submit:
- Single-load invoice — voids the invoice (after reversing applied payments and clearing suggested matches when needed).
- Consolidated invoice — keeps the shared invoice open and issues a full credit for this load’s billed share (only payments applied to this load reverse). Billing status stays Billed. Cancel is blocked when open balance plus cash on this load cannot cover that share — reattribute cash first (partial credits are not allowed).
Mark as TONU requires a TONU amount. After you enter it, Axivoy previews AR consequences on the server, then updates customer linehaul, sets outcome to TONU, and issues or rebills the customer invoice (void+issue when unpaid; reverse then rebill when paid). Consolidated already-invoiced loads cannot use Mark as TONU here — correct the shared invoice first. You can mark TONU from an active load or reclassify a load you already cancelled. Driver TONU pay applies when configured on the compensation plan. Neither Cancel nor Mark as TONU calls Alvys.
Status dimensions (Billing vs Funding)
Axivoy tracks four separate status columns so billing does not overwrite dispatch board execution state:
| What you see | Column | Meaning |
|---|---|---|
| Operational status | operational_status |
Where the truck is (Open, Covered, Dispatched, Delivered, etc.) |
| Billing status | billing_status |
Load billing readiness (Not ready to invoice → Ready to invoice → Billed). Distinct from the linked customer invoice’s document status (Issued / Sent / Paid). Collection lives on Funding status / the invoice document. |
| Funding status | financial_status |
Factor funding and payment collection (Not funded, Financed, Paid) |
| Outcome | load_outcome |
Exception classifier — set only by Cancel or Mark as TONU |
Financials shows Billing status and Funding status badges when your role includes financials management. They can differ: a load may be Billed but Financed when a factor holds the receivable. When an Axivoy invoice exists, Financials also shows that invoice’s document status and open balance (via View invoice).
Invoice PDF generation shows a secondary process line (for example Generating invoice…) without changing the Billing status badge. Operators with financials access can use workflow actions on the Financials panel:
- Release to Axivoy billing — only when Billing status is stuck on Billed without an Axivoy invoice document and money is still owed; clears the sticky stamp so readiness can set Not ready / Ready
- Mark invoiced — set Billing status to Billed without PDF generation
- Hold billing / Release billing hold — park or restore invoicing on any pre-invoice load (including Not ready). Hold requires a typed reason; it blocks Issue and auto-issue until released
- Retry generation — re-queue PDF generation after a failure (when the platform invoice feature is on)
- Mark financed — set Funding status to Financed for factored receivables (blocked when Alvys owns financials)
Delivery completion requirements (POD, BOL, custom kinds, etc.) are configured under Settings → Configuration → Data & routing → Load operations → Delivery completion policy. Pickup completion policy on the same tab governs required documents before leaving pickup stops (hard enforcement blocks setting pickup Departed). Document kinds lets you add carrier-specific kinds and drag the display order used in upload dropdowns and policy editors. Stop document catalog suggests upload kinds; it does not define Ready-to-invoice requirements. Invoice packet readiness (bill-to + required docs for Ready) is under Settings → Configuration → Automation → Invoice readiness — separate from departure completion. Operational status automation on that tab controls whether Axivoy auto-advances status from stops; when off, stop-milestone automation is skipped but Dispatch remains available. On Trip assignment, complete driver, dispatcher, truck, and trailer to reach Covered, then click Dispatch (Dispatched is not available from the status picker). The Trip milestone badge on that panel tracks execution on the linked trip segment (distinct from Operational status on the load header). Manual status overrides pause automation until the next stop milestone or Re-enable automation. Alvys-synced loads hide the operational status picker until you lock the Alvys profile on load detail. See ADR 0080.
Trip segments (multi-leg): When a shipment needs more than one execution leg (relay, recovery, etc.), use Add trip segment on the Trip segments panel or Split on the route line between stops (scissors icon). Axivoy never creates segments automatically from assignment or stop changes — only from these explicit actions, Alvys import, or native load bootstrap. Load Operational status reflects the furthest active segment; each segment has its own Trip milestone. After a segment is Delivered, Close segment is optional housekeeping. To undo an extra segment, use Remove segment — available only on a non-primary segment whose stops have not yet been arrived at or departed; it voids that segment and its stops (the primary segment cannot be removed).
Detail
In-place saves: On load detail, most edits (schedule and actuals, route structure, freight line add, documents, and financials) save without a full page reload. The matching sections update on the page so you can keep working. When a save queues an automatic customer invoice, the billing section can update a short time later once issue finishes (or if it fails) — you do not need to refresh the whole page. Without JavaScript, the same saves reload the page and show the updated load as usual.
The load detail page uses a wide Route-first layout on large screens: Trip route leads the main column, with Trip assignment, Customer, and Freight (+ Temperature control) below. The sticky page header shows load #, operational status, customer, lane, truck/driver, and next appointment. When issues exist, a Needs attention pill expands an amber Needs attention strip with exception chips (detention, documents, billing, geocoding / missing map pins, and similar); click a chip to jump to the relevant section or stop. When you can manage documents, Upload in the same header opens a full-width Upload document strip (load-scoped preset) below the context row — only one attention or upload strip is open at a time. Section tabs (Route · Assignment · Customer · Freight · Documents · Financials · Activity) stay visible while you scroll and jump to each area; collapsible sections remember expand/collapse for the current page visit only.
The sidebar is an operations quick-nav panel (no separate heading), in order: Current Progress (operational status badge in the card header, current stop, next appointment when available), Temperature (always shown — explicit No temperature requirement when none is set), Mileage (total, loaded, empty, deadhead %), Equipment & drivers (when assigned), compact References tags (same style as stop-card reference badges), Financial snapshot (billing status badge in the header; revenue, RPM, collected, outstanding when your role can manage financials; compact Detention policy line with source for all viewers), and closed Integration details. Click a summary card to jump to Route, Freight, Assignment, or Financials (keyboard: focus the card and press Enter). Documents are only in the full Documents section below the grid — not in the sidebar. When your role allows load update, reference tags in Load Summary edit individually: pencil on a tag, change the value, checkmark to save. Other sections use pencil-triggered edit with Save / Cancel: Customer, Freight, Temperature control, and Trip assignment. Edit scheduled pickup/delivery on Trip route stop cards (Schedule & actuals). Below the main grid: Documents, Financials, Notes, Activity log, and the Danger zone (Cancel / Mark as TONU when permitted).
When loads.organization_id is set (or bridged through the customer master), the Customer panel shows the partner (with invoicing address under the name), primary contact, and Load notification emails for this load (billing, load documents, accessorial). Use the pencil to edit customer/contact and those three emails. Fields prefill from your tenant’s resolve order under Settings → Configuration → Communications (sources include rate confirmation / info sheet, this load, partner profile emails, and primary contact), with a short hint under each field showing where the value came from. Changing the partner or contact refreshes empty fields and values you have not edited. Check Update partner profile on a field only when you want that load email copied to the partner. Missing emails show a warning until you fill them on Customer save. Detention and invoice emails use the same resolve orders (first valid address only — they do not send to every matching inbox). Full partner defaults (HQ, payment terms, integration ids) stay on View partner profile. Unbridged legacy loads without an organization FK may still link to the customer directory record.
Freight
The Freight section (between Customer and Temperature control) records what is on the load using your tenant product catalog.
- Search or pick an existing Commodity (for example Potatoes).
- If nothing matches, choose Create new commodity at the bottom of the search results.
- Add Line details for packaging or grade notes (for example Idaho russet, 50 lb bags). Reports group by the catalog product, not this text.
- Set Quantity, Unit (Pallets, Cases, and other fixed choices), optional Weight (lb), and Hazardous material when needed.
- Use Add freight line for multiple products on one load.
Similar catalog names may appear as suggestions when you type; pick an existing product when it is the same freight.
Temperature control
For refrigerated freight, set requirements under Temperature control in the Freight section on load detail. The Load Summary sidebar always shows a Temperature card — when nothing is configured it reads No temperature requirement so dispatchers know reefer is not required on the load.
- Check Requires temperature control, then choose Single temperature, Temperature range (whole °F), or Setpoint on BOL / instructions when the rate con requires reefer but the numeric setpoint is on the BOL (for example
bol°F CONTINUOUS). - Pick Continuous (default) or Start-stop run mode.
- For BOL deferral, enter the rate con note in Rate con / BOL note so dispatch and drivers see reefer is required even without a numeric °F on the load.
- Add optional Instructions for extra shipper rules when using single or range setpoints (for example protect from freeze).
- Clear requirement removes all temperature fields.
Alvys does not sync temperature; values you enter stay on the load. General notes without a required temperature belong in Notes, not temperature control.
Trip route
The Trip route panel combines trip mileage and stop detail in one vertical timeline:
- Trip mileage summary — compact chips for total, loaded, empty, and source (Alvys sync or Manual).
- Stop timeline — each stop is a card (
Pickup 1,Delivery 1, …) with a presentation status badge beside the stop type: Pending (no arrival yet), At facility (arrived, not departed), Completed, or Documentation pending (stop departed but required stop-linked documents are still missing per tenant delivery or pickup completion policy). This badge is derived from stop timestamps and document policy — it is not the same as Operational status on the load header or trip milestone on Trip assignment. Cards show location (linked partner site or Alvys company name and address; mostly-uppercase Alvys names render in readable title case) and the Schedule & actuals column (Appointment or FCFS window, ETA, Arrived, Departed) at all times beside the location on wide screens. Below the address, a collapsible Document requirements section lists each document kind once as a dense row: status icon, kind label (plain text), and an always-visible purpose line (Depart, Depart · Ad-hoc, Invoice · Policy, Depart · Ad-hoc · Invoice · Ad-hoc, Attached, etc.). Attached files open from small document icons immediately after the kind name (one icon per file — the kind name is never a link). Depart is departure completion; Invoice is Ready-to-invoice. A kind needed for both appears once. There is no separate Photos group — kinds marked as photo-type in Settings still appear as normal rows when required (e.g. Damage). Extra non-required attachments sit below the list as densified Attached rows (same layout as required rows; the file stays after Remove requirement). Row actions (Upload, Replace, Add another, Remove requirement) live in an always-visible ⋯ menu — items enable or disable by stage (missing vs uploaded, ad-hoc vs policy). When you can edit the load, + Require document lets you pick a kind with Depart and Invoice checked by default (uncheck if needed), then Save — that only stores the requirement (upload later from ⋯ or Documents). Remove requirement (when enabled) clears ad-hoc Depart and/or Invoice for that kind; policy rows keep Remove requirement disabled. More document types… is inside the open upload strip and deep-links to the Documents library full kind list. The full library and attach-to picker remain under Documents. The Trip route heading and sticky page header also expose Upload shortcuts (trip/load presets) that open the same strip pattern. After a successful upload, a brief green confirmation appears and Axivoy scrolls to the updated stop or section. More sits directly under the document panels and expands coordinates, compact stop-level reference tags (PO, REF, etc.), detention detail, and extraction hints. Load-level references stay in Load summary. Schedule times prefer normalized local values from the rate confirmation when provenance exists (hover for the original document string). Times show in the facility's local timezone with an abbreviation. When the stop or linked partner site has coordinates, Axivoy resolves the zone from that location (high confidence). When timezone resolution is still low confidence or unresolved (common in multi-timezone states without coordinates), an amber warning and Confirm IANA timezone picker appear on the stop card — confirming re-derives UTC from the document times, saves the IANA on the linked partner site when empty, and is audited, but does not block Create load. On Partners → Sites, you can also save an optional Timezone (IANA) on a facility for future stops. When your role allows load update (native) or sync-owned update (Alvys imports), use Edit schedule and actuals on the stop card to change schedule mode, appointment/window, ETA, arrived, and departed in one form with one Save. Manual edits show a Manual badge and are protected from the next Alvys stop sync until you Clear the value. Hard completion policy disables empty Departed until required documents are attached (advisory under Departed only); soft policy keeps Departed editable and may warn after save. Saving refreshes the trip route, Needs attention, Current Progress, and Trip assignment status in place. Before the first stop, a Previous stop card may appear with the same two-column layout: site and address on the left, read-only Actuals on the right (stop type, arrived, departed, and a link to the prior load when known). Axivoy suggests the driver team's most likely departure point for empty mileage — the route-end stop on the latest eligible other assigned load (including in-transit or booked loads when schedule times are available), with a dashed Suggested badge and provenance line ( Expected time when not yet completed). Use the Route origin picker to link a Previous stop or Home terminal (including the driver's assigned yard when configured) or enter a manual address (street, city, state required; company name optional). On load detail, click the pencil on the card to edit and Save route origin; on compose, the picker is part of the main form and saves with Save draft / Create load. Saving origin intent does not invent mileage — connectors show—until you add miles or apply PC*MILER. When tenant delivery or pickup completion policy requires documents, Needs attention lists each specific gap and the Documents section shows a Required documents missing callout with the same detail. Invoice readiness gaps also appear under Needs attention as Invoice: chips and jump to the stop Document requirements section (or Documents for load-scoped kinds). Configure Document kinds (built-in + custom order), Delivery completion policy, Pickup completion policy, and suggested uploads per attachment target under Settings → Configuration → Data & routing → Load operations. Upload Kind options on load detail follow the Document catalog for the selected attach-to scope (plus Other); use More document types… (inside the stop upload strip) or the Documents library for the full kind list. - Mileage connectors — a horizontal line between stops shows one figure per inbound leg, e.g.
68 mi. (empty)or1,448 mi. (loaded). Every connector has its own pencil icon, including the line before Pickup 1.
Editing the route on load detail: Click Edit route on Trip route to add, remove, reorder, and retype stops — the same controls as compose. Use Add stop (bottom) or Add stop here between stops; change a stop's type with the Stop type dropdown (pickup / delivery / waypoint); drag the Reorder grip to change order; use Remove to take a stop off the route (removed stops are hidden from the route but kept for history — this is a local edit, not an Alvys cancellation). If a new order would put stops out of schedule order, Axivoy asks you to confirm before saving, and already-arrived or departed stops stay locked. On loads with more than one trip segment, one editor spans every segment: you can drag a pending stop from one segment into another, and Axivoy moves it to that segment. Each change saves immediately, refreshes mileage and Needs attention in place (no full reload), and — if a background step like mileage or status update fails — shows a Needs attention note while keeping your stop change.
Edit trip mileage summary and stop-leg mileage inline via the pencil icon on the summary row or any connector line when your role allows it (LoadPolicy::updateTripRoute: native loads need update permission; Alvys-synced loads need sync-owned update permission). Stop-leg forms use a single Miles field; Axivoy tags the leg as empty (before or at the first pickup) or loaded (after the first pickup). When you enter or change leg miles, the trip mileage summary rolls up from leg totals and is marked Manual, which blocks Alvys from overwriting those totals. Clearing a leg to zero updates the summary accordingly. Saving route origin alone does not change the summary until leg miles are set. You can still edit the trip summary directly; that path does not roll up from legs. Alvys does not supply stop-level mileage in the ingested payload. If the trip total and the sum of leg miles both exist but disagree before you edit legs, an informational banner appears.
Planned route mileage (PC*MILER)
When a super operator enables Planned mileage engine on Platform → Operations and configures PC*MILER under Platform → Integrations, a Calculate button appears at the end of the trip mileage summary row for users who can edit the trip route.
Configure routing behavior under Settings → Integrations & Sync → Planned mileage (saved profiles; one Effective profile per tenant).
- Click Calculate to open a Calculate planned mileage preview modal. Axivoy runs PC*MILER using the effective profile and the saved route origin (prior stop, home terminal, or manual address).
- The modal shows each stop connector's current → proposed miles and a summary rollup derived from proposed legs (not PC*MILER header totals alone).
- Apply planned mileage writes stop legs and recomputes the canonical trip mileage summary from those legs. Payroll and metrics read that summary after apply.
- On load compose and load detail, when every route point (route origin, prior stop if used, and each trip stop) has a full street address and coordinates, Axivoy automatically calculates and applies planned mileage without opening the modal. It recalculates when any of those address fields or coordinates change. Loads with Alvys or manual mileage overrides still require explicit confirmation in the modal.
When a partner profile is linked, the breadcrumb trail is Admin / Loads / Partner name / Load # (partner name links to Operations → Partners).
Financial lines (Phase 10)
The Financials panel header shows a financial source indicator:
- Financial source: Axivoy — native loads; Axivoy owns billable amounts.
- Financial source: Alvys — Alvys-synced loads still receiving inbound financial amounts. Editing Linehaul or Fuel surcharge moves authority to Axivoy and locks Alvys from overwriting those fields.
- Financial source: Axivoy (financials locked) — you edited canonical amounts on an Alvys load; the lock timestamp appears when available.
This is separate from Profile locked on the load summary (operational/TMS fields only) and separate from Axivoy payment authority after a customer payment is applied (Alvys paid amounts stop updating; other components can still sync until financials are locked).
Customer billing uses full-width statement rows with inline Edit on Linehaul, Fuel surcharge, accessorials, and adjustments when your role allows. Use Add accessorial or Add adjustment at the bottom of that section. Alvys-synced accessorial import rows stay read-only.
Users with Manage customer payments (admin.customer_payments.manage) can Record payment (manual deposit applied to this load) or Apply existing payment (search unapplied payments) from Customer billing without opening the Accounting queue.
Users with Manage load financials (admin.loads.financials.manage) or View payroll (admin.payroll.view) can open Settlement preview under Accounting to see saved pay lines for a driver (not a payroll run). A banner warns when aggregate columns disagree with line sums.
Customer billing accessorial charges
The Customer billing statement lists linehaul, fuel surcharge, Accessorials (with indented lines per charge), customer rate, paid, and balance. Each accessorial line shows a status badge (Draft, Approval requested, Approved, Rejected) and a date trail (requested date; broker approval date when approved). Only Approved charges count toward customer rate and balance.
Use Add accessorial at the bottom of Customer billing to pick a type from the shared accessorial catalog (built-in and tenant additional types). Options are filtered by the load partner's Customer accessorial billing rules on the organization profile (Supported, contract Rate, Approval required).
Workflow when editing a draft or approval-requested line (same button row): Request approval (draft only — stamps that broker review was asked; does not bill), Approve (confirm to bill the requested amount, or choose a different approved amount), Reject charge (keeps the line for audit, zeros billing; optional notes), and Delete line (removes the row entirely). Approved and rejected lines keep amount/notes editing plus Delete line. Customer billing accessorials are separate from driver pay accessorials on the same load (both edited under Financials, different statement sections).
Legacy Alvys-synced accessorial rows remain read-only and are treated as approved.
Axivoy driver pay (calculated pay lines)
When the load has a linked trip, the Financials panel includes an Axivoy driver pay section.
Pay lines come from calculated pay_events for this load (load_calculation source, not voided). Each driver on the load gets their own statement: driver name once at the top, then base pay lines (for example Mileage pay with miles × rate in small gray text directly under the label), Accessorials, and Exceptions sections (empty sections are hidden except Accessorials when you can add lines), each line showing pay rule label, Approved, Needs review, or Preview status tag, calculation breakdown under the label when applicable (same pattern as payroll run driver statements), and amount, with Total payable at the bottom of that driver's statement. Pay recalculates automatically whenever you open load detail (including after saving mileage or other pay inputs on the page).
In-transit preview: Loads without a delivery/completion date may show Preview pay lines (estimated from scheduled delivery and the same pay engine). Preview lines are read-only on Financials and are not included in payroll runs or settlement preview. When the load delivers, preview lines promote to final calculated pay automatically.
Users with Manage load financials (admin.loads.financials.manage) can:
- Override calculated line amounts (requires a reason; shows Overridden badge)
- Use + on the Accessorials row to add catalog accessorials (lumper, bonus, etc.), Stop pay (when the pay plan includes stop pay but none is payable yet), or per-stop Detention or layover pay (pick Line type in the add panel)
- Edit or remove operator-created delay pay and accessorial lines inline
Pay lines locked in payroll (attached to a reviewed, exported, or finalized run, or marked locked_in_payroll after finalize) hide edit controls and show a single Locked in payroll badge with payroll run context in the row meta. The Accessorials add (+) control is hidden for that driver when any line is payroll-locked. Opening load detail auto-syncs driver pay for mileage or accessorial changes, but it does not replace or duplicate locked payroll snapshots.
- Empty state: No lines yet — assign a driver and effective pay plan for this load. In-transit loads may show preview amounts before delivery.
- Team loads: When both drivers share a Team Pay plan, each driver's statement shows a Team Position chip and pay lines include team position or split subtext. If trip team positions are missing, an amber Team Pay configuration issue banner explains what to fix on Trip assignment. If primary and co-driver resolve to different pay plans, a separate warning explains that pay is calculated for the primary driver only until both drivers share the same Team Pay plan.
There is no separate Driver accessorials section on load detail; all driver pay editing is on Financials.
Lines needing manual approval also appear under Accounting → Pay exceptions.
Dispatch board
Open Operations → Loads, then the Dispatch board tab. The board groups active loads by status (Open through Delivered). Same permissions and dispatcher roster scope as the directory.
Documents library
Load detail Documents is a thumbnail grid grouped by what each file evidences:
| Group | Attach when the file proves… | Examples |
|---|---|---|
| Load documents | Shipment or billing facts | Rate con, invoice, claim packet |
| Trip documents | Movement on the linked trip | Fuel receipt, toll, washout |
| Stop documents | A facility event on a stop | POD, signed BOL, lumper receipt |
Each card shows document kind plus a compact Attached to tag (for example 📦 Load 226, 🚚 Trip ABC123, 📍 Pickup • Walmart DC). Click the card to open the full file. When you can manage documents, the upload form uses one Attach to dropdown: the load, then each trip segment with Entire trip (fuel, toll, washout) and indented stops (POD, BOL, lumper). You can also fix a card in place: pencil on Attached to or Kind opens the same pickers (Kind choices omit rate confirmation and driver/carrier info sheet — those intake kinds stay locked). Rate confirmation and driver/carrier information sheet cards hide the pencil.
Unlinked BOL and POD files may auto-attach to arrived pickup/delivery stops in upload order (extras go to the latest arrived stop of that type). Auto-link runs after upload, Alvys import, stop arrival, or stop departure, and never moves a file that is already attached to a stop.
Operational shortcuts on load detail (sticky header, trip route heading, stop cards) use the same upload backend but open a full-width Upload document expansion strip with attach-to locked to the shortcut context. Strips share one coordinator so Needs attention and upload strips never stay open together. Submit shows Uploading… while the file posts; validation errors reopen the matching strip on reload.
Supplemental documents (multi-PDF enrichment)
After the first rate confirmation handoff, you can attach more PDFs to enrich the same load without starting a new stub.
| Upload kind | Typical content | Updates pay? |
|---|---|---|
| Rate confirmation | Revised linehaul/FSC, sometimes lane detail | Yes, when JSON has rates (unless Alvys financial locks apply) |
| Driver / carrier information sheet | Full stop addresses, appointments, driver/truck | Never — stops, refs, and assignment hints only |
Both kinds use the same AI extraction schema. Pick the correct kind at upload so the Documents library and pay safety gate stay accurate.
- Composer: use Add document on the document panel (
Rate confirmationorDriver / carrier information sheet). A switcher lists all enriching docs; the primary create-intake rate con is marked Primary. - Load detail: upload either kind under Documents on a finalized native load — Axivoy queues extraction and merges results automatically.
- Re-uploading identical file bytes is deduplicated (
content_sha256).
AI extraction review (rate confirmations)
When the AI platform is enabled, rate confirmation documents on load detail include an AI extraction link. The extraction page shows a document preview, extraction versions, and a human review panel.
- Run extraction queues an AI job. When it succeeds, the version moves to pending review.
- Optionally Save correction to fix fields before approval (corrections are append-only history).
- Approve freezes
approved_data(immutable per retention policy). Reject blocks approval until you Reprocess a new version. - Intake create path: approved extractions on intake stubs open the composer (legacy Finalize URLs redirect there).
- Native load update path: approved extractions on completed native loads offer Review changes → Apply to load.
- Alvys-synced loads: Create native draft remains available as a secondary fork when intake does not apply.
Permissions: view extractions (admin.ai.extractions.view), run/reprocess (admin.ai.extractions.run), approve/reject/correct (admin.ai.extractions.review).