Number formats
How Halo displays numbers, currency, percentages, basis points, durations and compact values, how to write your own format such as #,##0.00, and where to set them.
Halo Data, reports, embeds, PDFs, data alerts and their emails share one set of formatting rules, so a number reads the same everywhere. A format belongs to a field, and every chart over that field starts with it.
Where to set a format
On a field: the Format on its row in a dataset's Fields tab. This is the default everywhere.
In a report: Numbers as in a chart's Display section. It overrides the field for that chart in that report: The chart's, Number, Percent, Dollars, Dollars and cents, Euros or Pounds.
Formats
| In Halo Data | Format string | Reads as |
|---|---|---|
| Automatic | none | Like Number |
| Number | number | 1,234.5 |
| Currency (USD) | currency:USD | $1,235, or $12.50 under 1,000 |
| Decimals 2, on a currency field | currency:USD:2 | $1,234.50 |
| Percent | percent | 12.3% from the value 0.123 |
| Basis points | bps | 125 bps from the value 0.0125 |
| Duration (hh:mm:ss) | duration | 01:02:05 from 3725 seconds |
| Custom… | a pattern, such as #,##0.00 | See Your own format |
Format strings are what the dataset definition and the API store. A field with a format that doesn't read can't be saved, and says why. A chart's Numbers as picks from its own list.
Plain numbers
Whole numbers and counts show no decimals, and other numbers show up to two, with thousands separators. 1234.5 reads 1,234.5, and 3400 reads 3,400.
Currency
Each field names its own currency with an ISO code. Halo Data offers USD, EUR, GBP and CAD. A field set to another code, through discovery or the API, keeps it, as in currency:JPY.
Cents from 1,000 up
By default, amounts of 1,000 or more show no cents, and smaller amounts show the currency's usual digits. Long columns of revenue stay easy to read, and small amounts stay exact.
| Value | currency:USD |
|---|---|
| 233,800,000 | $233,800,000 |
| 1,234.50 | $1,235 |
| 999.995 | $1,000 |
| 12.50 | $12.50 |
| -1,250 | -$1,250 |
An amount that rounds up to 1,000 counts as 1,000, so it never reads $1,000.00. "Usual digits" follow the currency: two for USD, none for JPY, three for KWD.
Fixed decimals
To fix the decimals, add them to the format, from 0 to 4. In Halo Data, a currency field's More settings has Decimals.
| Value | currency:USD:0 | currency:USD:2 |
|---|---|---|
| 1,234.50 | $1,235 | $1,234.50 |
| 12.50 | $13 | $12.50 |
Prices and unit costs usually want :2. Totals usually read best as they are.
Percent
percent treats the value as a ratio: 0.42 reads 42%, and 0.1234 reads 12.3%, with up to one decimal.
A field holding 42 to mean 42% will read 4,200%. Divide it by 100 in a calculated field, or leave it as a number.
Basis points and durations
bps treats the value as a ratio, like percent, and writes it in hundredths of a percent with no decimals: 0.0125 reads 125 bps, and 0.12345 reads 1,235 bps.
duration treats the value as a number of seconds: 3725 reads 01:02:05, and hours keep counting past 24, so 400000 reads 111:06:40.
Your own format
Pick Custom… as a field's format, and write the pattern in its More settings, under Custom format. It shows what the pattern writes as you type, and what's wrong with one that doesn't read.
| Pattern | Value | Reads as |
|---|---|---|
#,##0.00 | 1234.5 | 1,234.50 |
0.0% | 0.125 | 12.5% |
$#,##0.0,,"M" | 2500000 | $2.5M |
#,##0,"K" | 12345 | 12K |
0.00# | 1.2345 | 1.235 |
000 | 7 | 007 |
"Up "0.0" pts" | 3.25 | Up 3.3 pts |
hh:mm:ss | 3725 | 01:02:05 |
mm:ss | 3725 | 62:05 |
h:mm | 3725 | 1:02 |
0always shows a digit, and#shows one only when needed. The digits after the point set the decimals:0.00always shows two,0.0#one or two.A comma among the digits groups thousands. A comma after the digits divides by 1,000, so two divide by a million.
%shows the value times 100.Words go in quotes, as in
0 "visits". A backslash writes the one character after it, as in0\x.$ € £ ¥ ₹ - + ( ) / :and spaces need no quotes.Durations take seconds:
hh:mm:ss,h:mm:ss,hh:mm,h:mm,mm:ssorm:ss. The largest unit keeps counting, somm:sson an hour reads60:00.
Numbers round half away from zero, on the number as written: 1.005 with two decimals reads 1.01. A negative number takes its minus sign before the pattern, as in -$2.5M. A pattern shows as written in charts and tables, even where other values go compact.
Compact values
Where space is short, charts shorten large numbers: axes, reference line labels, legend scales and scorecards when the number doesn't fit.
| Value | Plain | Currency |
|---|---|---|
| 950 | 950 | $950 |
| 1,234,567 | 1.2M | $1.2M |
| 2,500,000 | 2.5M | $2.5M |
Compact values keep up to one decimal. Tooltips and table views show the full value. There's nothing to set.
Other values
| Value | Reads as |
|---|---|
| Missing | — |
| True or false | Yes or No |
| Date or time | By its time grain, such as Jan 2026 or Q1 2026. A Breakdown's legend reads the same, such as 2025 or FY2026 |
| DMA code | The DMA's name, in tables, axes, tooltips and a Breakdown's legend. Exports keep the code |
Language and separators
Numbers show with US English separators, the language Halo ships in today.