Skip to content

How addresses are stored

Addresses in this system are not one long line of text. Every address — a customer’s billing address, a pickup, a delivery — is held as the same eight parts.

LineWhat it holdsLabelled on screen
1CompanyCompany
2Apartment / unit / suiteAddress Line 2 (Apt, Unit, Suite)
3Street numberStreet Number
4Street nameStreet Name
5Suburb—
6CityCity / State
7PostcodeZip Code
8Country—

The on-screen labels above are from a customer’s address in Accounts. Other screens label some of these lines differently, or do not show them — the booking form, for example, shows two boxes rather than eight (see below).

Why the number is separate from the street

Section titled “Why the number is separate from the street”

This is the part that surprises people, and it is deliberate.

Consider a hospital campus, an industrial park, or an airport. The delivery is to Building 4 at 120 Airport Drive. If the street number and street name sat in one box you would be forced to write something like “Building 4, 120 Airport Drive” and hope whoever reads it works out which number is the building and which is the street.

Keeping them apart means:

  • Line 1 carries the site or company name
  • Line 2 carries the unit, suite or floor
  • Line 3 carries the street number on its own
  • Line 4 carries the street name

So a driver, a label and an invoice can each show the right piece. Sorting and searching also work properly, because a street number is not buried inside a sentence.

You do not have to fill them in one by one

Section titled “You do not have to fill them in one by one”

When you book a job you do not see eight boxes. You see two:

  • “Pickup address or business name…” — type here and pick the match. The system splits what it finds across the lines for you.
  • “Company, Unit, Flat, Floor, Building etc…” — the part a street lookup cannot know.

That second box is the campus case made concrete. The lookup can find 120 Airport Drive; it cannot know you want Building 4. So the street part is searched, and the site part is typed.

That is the trade being made: structured underneath, two boxes on top. The separate fields are what make the structure possible; the search is what stops you paying for it.

On the booking form these appear as Extra From Info and Extra To Info, one for each end of the job.

Because the parts are stored separately, they can be recombined differently depending on what is being produced. Invoices, for example, can show the street number and street name as one line or as two, and can show suburb, city and postcode together or apart — without anyone re-typing an address.

That is also why an invoice can carry just the pickup postcode and just the delivery postcode as their own columns. Those are line 7 of each address, available on their own precisely because the address was never one lump of text.

Internal: how this page was verified draft
Checked by
kenneth on 2026-07-31
How
ui-walkthrough, source-check
Where
staging · otgcargo · logged in as internal-staff
Against
  • ui: Accounts > Clients > (client) > Details > Address Information, walked 2026-07-31 — fields are Company, Address Line 2 (Apt, Unit, Suite), Street Number, Street Name, City, State, Zip Code
  • accounts ClientApp/src/pages/InvoiceBuilderPage/constants.ts — 'GlobalAddress schema, same 8-line breakdown as Client Address: 1=Company, 2=Apt/Unit/Suite, 3=Street Number, 4=Street Name, 5=Suburb, 6=City, 7=PostCode, 8=Country'
  • same file — combined variants exist for display: client/origin/dest _address_line_3_4 ('Street Number & Name') and _address_line_5_6_7 ('Suburb, City & PostCode')
Likely to change
low — The eight-line shape is shared by customers, pickups and deliveries and is relied on by invoice output, so it is not a thing that moves casually.
Re-check by
2027-01-31
Open questions
  • Whether the booking form's address search can be bypassed to type the eight lines directly, if the lookup cannot find an address.
  • The table's labels were read on an environment configured for US addressing (State, Zip Code). Confirm what the baseline build labels these lines — the schema names lines 5-7 Suburb/City/PostCode, so the on-screen wording may differ.
  • Not re-walked on the baseline (2026-09-24 rebaseline). The address search box and extra-info field were seen on the baseline booking form; the behaviours described here are plausibly build-independent but unconfirmed there.