Display options for number fields
Number fields support display options that control how values appear in reports without changing the underlying data.
This means you can format a value for readability, change the currency symbol, or label a number with its unit — all without affecting how the value behaves in sorting, filtering, calculations, or totals.
For example, a value stored as 1234567 can display as 1,234,567 — or as $1,234,567.00 if it's a currency field. The stored value remains 1234567 throughout.
Display options are configured on the custom field panel and apply everywhere the field is used. To set up a number field with display options, see Create a custom field.
In this article
- How display options work
- Format display option
- Unit display option
- Currency display option
- Need more support?
How display options work
Display options control how number values appear in reports without changing the underlying numeric value. Better Reports number fields support three display options: Format, Unit, and Currency — each described in the sections below.
Some display options support both Default and Expression modes, while others require a custom expression.
- Default — the field uses its standard display behaviour, determined by the numeric type and raw field output.
- Expression — you provide a custom expression that overrides how the value is displayed.
Display options affect presentation only. They do not change the value used in calculations, filters, sorting, or totals.
To learn about numeric types, see Field data types.
Format is available on all number fields. Currency and Unit appear only when the matching numeric type is selected.
The table below summarises how the three display options differ:
| Display option | Applies to | Expression returns | Affects display |
| Format | All number fields | A number format pattern | Decimal places, separators, symbols |
| Unit | Number fields with numeric type set to Unit | A unit label (kg, days, s) | Unit label appended to value |
| Currency | Number fields with numeric type set to Currency | An ISO 4217 currency code (USD, EUR) | Currency symbol and decimal formatting |
Format display option
The Format display option controls how a number is presented — decimal places, thousands separators, and symbols. It is available on all fields with Data type set to Number.
When no format expression is set, Better Reports displays the value using its standard numeric output for the store's locale. Use a Format expression when you need more precise or consistent control over how the number appears.
Syntax
Format expressions use Excel and Google Sheets-style number formatting patterns.
| Character | Meaning |
| 0 | Display this digit position; pad with 0 if empty |
| # | Display this digit position; omit if empty |
| . | Decimal separator |
| , | Thousands separator (when between digit placeholders) |
| $ | Literal currency symbol |
Examples:
- '0.00' — always show two decimal places
- '#,##0' — show thousands separators, no decimals
- '#,##0.00' — show thousands separators and two decimal places
- '0.0' — show exactly one decimal place
For the full formatting reference, see:
Use cases
Control decimal places
Use when values have inconsistent precision and you want a uniform display.
'0.00' // Input: 12.3 → Displays: 12.30 // Input: 12.345 → Displays: 12.35 // Input: 12 → Displays: 12.00
Add thousands separators
Use when displaying large numbers that are harder to read without separators.
'#,##0' // Input: 1234567 → Displays: 1,234,567 // Input: 840 → Displays: 840
Force a specific currency symbol
Use when you want a specific currency symbol to display regardless of the record or organisation currency — for example, to always display £ for a GBP field in a store whose default currency is USD.
Currency symbols in format expressions must use the [$<symbol>] syntax. This is an Excel/Google Sheets construct that explicitly marks the character as a currency symbol rather than a literal character.
'[$£]#,##0.00' // Input: 1500 → Displays: £1,500.00
⚠️ Always keep the field's Numeric type set to Currency when using a format expression for currency display. Do not switch to plain Number type to work around currency formatting — this affects how totals and calculations treat the value.
Unit display option
The Unit display option controls which unit label is displayed alongside the value for number fields with Numeric type set to Unit.
The field value is displayed as: number + unit (for example, 12.34 m , 45 kg , 3 days ).
When the unit varies by record — for example, a store that sells products in different weight units — use a Unit expression to source the unit from another field.
💡 Note: Duration units
The units 's' (seconds) and 'ms' (milliseconds) are handled differently from other units. They automatically display as durations in HH:MM:SS format.
For example, a value of 5400 with unit ‘s’ displays as 01:30:00.
This is useful for fields that store response times, processing durations, or session lengths as raw numeric values.
Syntax
Unit expressions can return any text value that represents a unit. Text values must be wrapped in single quotes.
Examples: 'kg', 'm', 'days', 's'
You can also return a unit dynamically from a field or expression — see use cases below.
⚠️ Mixed units warning
If records with different units are aggregated together in a total or subtotal row, Better Reports displays a warning to indicate that the total contains mixed units. This prevents misleading totals when comparing or summing values that don't share the same unit.
Use cases
Use a fixed unit
Use a fixed unit when all values share the same unit.
'kg' // Input: 2.5 → Displays: 2.5 kg // Input: 14 → Displays: 14 kg
Use a dynamic unit from a field
Use when the unit varies by record — for example, a store that sells products in different weight units.
[$.WeightUnit] // Record A: value 2.5, WeightUnit = 'kg' → Displays: 2.5 kg // Record B: value 5.5, WeightUnit = 'lbs' → Displays: 5.5 lbs
Display fulfillment or SLA times as durations
Use when a field stores time in seconds and you want a readable duration format.
's' // Input: 3600 → Displays: 01:00:00 // Input: 450 → Displays: 00:07:30
Currency display option
The Currency setting controls which currency is displayed for number fields with Numeric type set to Currency.
By default, Better Reports formats currency based on your organisation's default currency. If a record's currency matches the organisation's default, Better Reports displays the currency symbol — for example, $12,456.85 . If the record's currency is any other currency, Better Reports displays the currency code instead — for example, AUD 12,456.85 . This prevents ambiguity in stores that handle multiple currencies that share the same symbol, such as USD, AUD, and CAD, which all use $ .
Switching to Expression lets you override this default — useful when values have already been converted but the displayed currency needs to reflect the original or a standardised one.
💡 Currency expressions change the displayed currency symbol only. No currency conversion takes place — the underlying numeric value is not modified.
Syntax
Currency expressions must return a valid ISO 4217 3-letter ISO currency code. Text values must be wrapped in single quotes.
Examples: 'USD', 'CAD', 'EUR', JPY'
You can also return currency codes dynamically from fields or expressions — see use cases below.
⚠️ Mixed currencies warning
If records with different currencies are aggregated together, Better Reports displays a warning on the total row to indicate that the total contains mixed currencies. This prevents misleading totals when a report spans records with different currencies.
Use cases
Display a fixed currency code
Use when all values in the report are in the same currency and should always display consistently.
'USD' // All values display with USD formatting regardless of record currency
Use the record currency
Use when currency varies by record, and each row should display in its own currency. Common in multi-currency Shopify stores.
[$.CreditNote.Currency] // Organisation default currency: USD // Record A: value 100, CreditNoteCurrency = 'USD' → Displays: $100.00 // Record B: value 100, CreditNoteCurrency = 'EUR' → Displays: EUR 100.00
Use currency from JSON or metafields
Use when the currency code is stored inside JSON data, such as a Shopify metafield. This is common when your store uses custom pricing data stored as JSON objects, where the currency code is a property within that object.
JSON_VALUE([$.Metafield('custom.original_price','Text')],'$.currency_code')
For help with JSON_VALUE and other BRQL helper functions, see BRQL helper functions.
Need more support?
If you get stuck or have additional questions, you can contact our team directly through the Help widget in the bottom-right corner — we typically respond within one business day.