Skip to main content

Sorting and Columns

Click a column header to sort the table by that column. The table is sorted by Total Cost (highest first) when you open the page. This page covers how the sort headers behave and what changes the table back to page 1. For what each column actually shows, see The Jobs Table.

tip

The table loads sorted by the biggest jobs first. Click any other header to re-sort by that column.


Default sort

The Total Cost column is the active sort on first load, in descending order. The Total Cost header shows a small arrow to indicate this. No other header carries an arrow until you click it.


Which columns are sortable

Six of the seven columns are sortable. The Status column is the only one that doesn't sort.

ColumnSortable?Sort behavior
Job #YesAlphabetical
Job NameYesAlphabetical, case-insensitive
CoYesAlphabetical
PMYesAlphabetical on the raw PM value
Total CostYesNumeric
StatusNo
% CostedYesNumeric
warning

The Status column is the only header you can't sort by. Click it and nothing happens — the cursor doesn't even change to a pointer when you hover the header. That's the visual cue.


How clicking a header works

Three rules cover every interaction with the sort headers:

  1. Click a sortable header that isn't currently active. The table sorts by that column, descending. The arrow moves from the previous active header to this one.
  2. Click the header that's already active. The direction flips. Descending becomes ascending; ascending becomes descending. The arrow flips with the direction (↓ becomes ↑, or the reverse).
  3. Click the Status header. Nothing happens.

Reading the arrow

Only the active sort column shows an arrow, appended after the column label:

  • — descending order (largest first for numbers, Z–A for text).
  • — ascending order (smallest first for numbers, A–Z for text).

If no arrow shows on a header, that header isn't the active sort.


Accessibility

info

The active sort column reports its direction to screen readers via the aria-sort attribute, which reads as either "ascending" or "descending." Inactive columns omit the attribute. The table is fully usable with a keyboard and a screen reader.


What resets pagination to page 1

The footer's page indicator returns to Page 1 of N whenever you do any of the following:

  • Change the sort column or direction.
  • Add or remove a Company or PM filter chip on the filter bar.
  • Toggle My Jobs on or off.
note

The reset is intentional, not a defect. If you sorted while on page 5 of 10, the rows under your eye would suddenly belong to a completely different slice of the data — most readers find that more disorienting than helpful. Returning to page 1 keeps the sort change visible and predictable.


Sort details worth knowing

A few small notes on what specific columns sort by:

  • % Costed sorts on a value computed at sort time (Costed ÷ Total Cost). A job with a Total Cost of $0 sorts as 0%.
  • PM sorts the raw PM display value as a string, which means a job whose PM field reads "Jared" sorts separately from a job whose PM field reads as a user ID for the same person. Expect duplicates and odd ordering when several jobs share a PM in the data — the cell shows what's stored, and the sort follows.
  • Job # sorts as a string, not a numeric quantity. Most job numbers are pure digits and sort as you'd expect; a numeric-looking value with extra characters can land in an unexpected spot.
  • Numbers can be up to four hours stale. If you sort by Total Cost or % Costed and a recently confirmed PO doesn't seem to lift a row, see Data refresh rates.

The colors on the % Costed column reuse the PO lifecycle color tokens but are not a lifecycle status — sorting by % Costed groups jobs by health threshold, not by lifecycle.


The set of columns is fixed

There's no UI today to hide, reorder, or add columns to the All Jobs table. If you want a column the page doesn't show, that's not a feature here. The closest analog — toggling the visibility of widgets in the region below the table — is covered on Showing and hiding widgets, but that page is about widgets, not table columns.