# Release notes - 18 July 2026

Version 1.29.0, released 2026-07-18. Source: https://vektortms.com/releases/release-2026-07-18

> This release adds a Locations page under Dispatch that brings every place on your loads together, along with smaller improvements and fixes across dispatch, accounting and reports.

![Release notes - 18 July 2026](https://storage.googleapis.com/vektor-public-storage/changelog/cover/67a74fcf97681658c7231f16.jpg)

## At a glance

- Dispatch, Locations is one page for every place you haul to, with median dwell, on-time and a map view
- Add Facility looks the place up on Google with its photo, hours and address, or lets you drop a pin
- The dispatcher filter on the dispatch schedule stays applied instead of resetting
- Cargo has a container number field that you can search on
- The carriers list can be exported to a file, and transactions can be filtered by an amount range

## New features

### Locations: every place you haul to, and what it costs you

Dispatch → Locations is one page for every place on your loads: All, Facilities and Locations over the same book, median dwell and on-time as sortable columns, a map view, and an Add Facility flow that looks the place up on Google with its photo, hours and address, or lets you drop a pin where Google has nothing.

- Read more: https://vektortms.com/releases/locations-and-facilities.md

## Improvements

### Batch invoice table section headers are plain text without emojis

- Why we changed it: Section headers in the batch invoice tables carried emojis, which looked out of place in billing documents and on exports.
- How it helps: Billing staff read cleaner headers that match the rest of the invoicing screens.
- How to use it: Open batch invoices; the headers already read this way.

### The carriers list can be exported to a file

- Why we changed it: The carriers list could only be read on screen, so working with it outside the dashboard meant copying rows by hand.
- How it helps: Staff can pull the carrier list into a spreadsheet for review, sharing or their own reporting.
- How to use it: Open the carriers list under Coverage and use the export button above the table.

### Cargo now has a container number field that you can search on

- Why we changed it: There was nowhere to record a container number, so it lived in notes and could not be looked up.
- How it helps: Intermodal loads can be found by container number instead of by guessing which order it belongs to.
- How to use it: Fill the container number on the cargo, then search for it from the orders search.

### Transactions can be filtered by an amount range

- Why we changed it: Transactions could only be narrowed by date and type, so finding a charge of a known size meant scrolling.
- How it helps: Billing staff can isolate transactions between two amounts when reconciling.
- How to use it: Open the transactions list and set the minimum and maximum in the amount filter.

### Payment imports now open in a dedicated import dialog scoped to the payments category

- Why we changed it: Importing payments went through a shared import flow that offered categories that did not apply, which made it easy to pick the wrong one.
- How it helps: Staff importing payment files see only what belongs to payments, so the import takes fewer steps and fewer corrections.
- How to use it: Open the payments list and choose Import.

### The order report covers more order detail in its columns

- Why we changed it: The order report was missing fields people were exporting to spreadsheets by hand.
- How it helps: Order reporting can be pulled straight from the report without side-by-side lookups.
- How to use it: Open the order report under Reports.

## Fixes

### Deleting a period from the schedule now works from the dialog without leaving the page

- Why we changed it: The delete period dialog did not complete the deletion, so periods stayed in place after confirming.
- How it helps: Planners can remove a period straight from the dialog and see the schedule update.
- How to use it: Open the period you want to remove and confirm deletion in the dialog.

### Detention alerts show the alert template name instead of a raw key

- Why we changed it: The detention alert was rendering the internal template key on screen instead of the readable template name.
- How it helps: Dispatchers can tell at a glance which detention alert fired without decoding an internal identifier.
- How to use it: Nothing to switch on; open any load with a detention alert and the template name is shown.

### The dispatcher filter on the dispatch schedule stays applied instead of resetting

- Why we changed it: The dispatcher filter on the schedule cleared itself after the view refreshed, so the board jumped back to every dispatcher.
- How it helps: Dispatchers keep their own slice of the board in view while they work through the day.
- How to use it: Set the dispatcher filter on the dispatch schedule; it stays until you change it.
