Skip to main content

Validation

Validation runs in two stages. Passing the first does not mean a record will reach OTM.

StageWhere it runsWhat it can do
1. Pre-validationIn your browser, before you submitBlocks submission until you fix it
2. Validation against OTMOn the server, against live OTMCan reject the file, or set individual records aside

Stage 1 - Pre-validation

Runs on your machine, so errors surface while you can still fix them, and the interface stays responsive on a 50,000-row workbook. Each rule below can be switched off per template in Template Manager - Validations. Everything you do here is on the Data Upload screen.

Header check

ResultMeaning
MatchedPresent and recognised. Header turns green; required fields carry an asterisk
MissingRequired or expected by the template but absent. Red
ExtraIn the file but not in the template. Amber warning

Schema rules

Auto-derived from the template:

  • Required - empty values in required columns are flagged.
  • Type - Numeric and Currency columns must be numbers; Dropdown columns must match one of the allowed values.
  • Date format - accepts YYYY-MM-DD, YYYYMMDD, DD-MM-YYYY, DD/MM/YYYY and ISO datetime.

Business rules

  • Length - minimum, maximum or exact character count.
  • Conditional-required - "field X is required when field Y equals Z", e.g. postal code is required when location type is USZIP5.
  • Format normalisation & auto-fix - silent corrections applied for you, e.g. zero-padding USZIP3 to 3 digits and USZIP5 to 5 digits. Auto-fixed cells turn amber so you can see what changed.
  • Cross-field rules against master data - e.g. "if src_type is USZIP3, then src_postal must exist in the OTM postal master". Checked against the OTM master-data snapshot maintained via OTM Sync.
  • Unique check - duplicate Rate IDs within the same upload are flagged.
  • Allocation % must total 100% per lane - percentages are group-summed by lane; any lane whose total is not 100% across carriers is flagged before submission rather than after publish.

Duplicate detection

  • Fuzzy (level 1) - same rate identity plus same per-shipment cost block. Catches "looks like the same rate, different formatting".
  • Exact (level 2) - same identity, cost block and primary identifier.

Right-click a flagged row and choose Mark OK to dismiss a false positive. The dismissal applies for the current session.

Stage 2 - Validation against OTM

Once your file is submitted, a second validation runs on the server, against live OTM. Stage 1 can only check your file against itself and a local snapshot; this stage asks OTM directly.

What it checks

CheckWhat it means
Master records existEvery Rate Offering, Lane, Rate Service, Capacity Group and Service Provider your file references must already be in OTM
Already in OTMA record with the same identity is already loaded
Overlapping datesA record already in OTM covers part of the validity range you are loading

Records can be set aside, not just rejected

This is the important difference from Stage 1. Rather than failing the whole file, this stage can skip individual records: the rest of the file goes to OTM, and the skipped ones do not.

Common reasons, as they appear in the report - each names the missing record:

ReasonWhat it means
Rate Offering Missing: <id>The rate offering this record points at does not exist in OTM
Lane Missing: <id>The lane does not exist in OTM
Capacity Group Missing: <id>The capacity group does not exist in OTM
Service Provider Missing: <id>The carrier / SCAC is not registered in OTM
Rate Service Missing: <id>The rate service does not exist in OTM
Duplicate - already exists in OTMThis exact record is already loaded
Overlapping dates - a record already in OTM covers part of this rangeThe validity window collides with an existing record
Where to see them

In View Errors, each object's Flagged count opens its findings, with every record behind each one. Skipped records appear in the validation result on the upload row, as Skipped rows in View Source, and - when the file goes for approval - in a workbook and a text file grouped by reason, attached to the approval email. Approvers should read that list before approving: those records will not reach OTM. See Emails.

The failure threshold

Every project carries a threshold - the share of a file that may fail this stage while the file still goes through. It is set as a percentage on the GoRate Setting page, not on the template.

  • Above the threshold - the whole file is rejected (Validation Rejected).
  • At or below it - the failing records become skips and the rest of the file passes. The Upload Manager records that the threshold was applied.
  • 0% - any failure rejects the whole file.

This lets a large file proceed on the strength of its good records instead of being blocked by a handful of bad ones.

Transit-time defaults

Where a lane carries no transit time in either your file or OTM, validation can stamp a default rather than reject the row. Records treated this way are listed in the completion email, so the substitution is never silent.

When a lot of records are skipped for the same reason

A large, uniform skip count almost always points at missing master data in OTM rather than at your file. If half a file is skipped with Rate Offering Missing: <id>, the rate offering for that combination has not been created in OTM yet.

Take the reason and the count to your administrator - the fix is in OTM, not in the workbook. Once the missing records exist in OTM, Revalidate the same file from View Source; there is no need to upload it again.