# SI-Prefix Number

Key: `representation.numeric.si_number`

Human-readable number with SI/business notation suffix indicating magnitude. Common in dashboards, reports, and financial summaries. K=thousands, M=millions, B=billions, T=trillions. May include optional currency prefix ($, €, £) or sign (+/-).

Page: <https://meridian.online/docs/projects/finetype/types/representation/numeric/si_number>

Samples: `12.2K`, `1.5M`, `2.3B`, `$500K`, `-1.2M`

## Background

### Origin

In written English, the symbol K is often used informally to indicate a multiple of thousand in many contexts.[[1]](https://en.wikipedia.org/wiki/Metric_prefix)

FineType's registry says this type was inspired by the python-ballpark library's business notation.[[2]](https://github.com/meridian-online/finetype/blob/main/labels/definitions_representation.yaml) The python-ballpark library introduces business notation as an offshoot of engineering notation, for producing better human-readable numbers.[[3]](https://github.com/debrouwere/python-ballpark)[[4]](https://pypi.org/project/ballpark/) The ballpark package on PyPI lists Stijn Debrouwere as its author.[[4]](https://pypi.org/project/ballpark/) The python-ballpark README shows business notation turning 11234.22, 233000.55 and 1175125.2 into 11.2K, 233K and 1.18M when each value is formatted on its own.[[3]](https://github.com/debrouwere/python-ballpark) The python-ballpark README observes that, even with a thousands separator, at a glance you might easily mistake a billion for a trillion.[[3]](https://github.com/debrouwere/python-ballpark)

### Use

Unicode's LDML specification, UTS \#35, describes compact number formats that can produce strings like “$10K” or “$3–7M”.[[5]](https://www.unicode.org/reports/tr35/tr35-numbers.html) UTS \#35 says the short non-currency compact format is designed for UI environments where space is at a premium.[[5]](https://www.unicode.org/reports/tr35/tr35-numbers.html) MDN documents that JavaScript's Intl.NumberFormat, given notation "compact" and compactDisplay "short" in the en-GB locale, formats 987654321 as 988M.[[6]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat) MDN's example of compact notation in the zh-CN locale formats 987654321 as 9.9亿.[[6]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat) In a Microsoft Excel custom number format, a comma that follows a digit placeholder scales the number by 1,000.[[7]](https://support.microsoft.com/en-us/office/review-guidelines-for-customizing-a-number-format-c0a1d1fa-d3f4-4018-96b7-9c9354dd99f5) Microsoft's guidelines show the format 0.0,,"M" displaying 12200000 as 12.2M.[[7]](https://support.microsoft.com/en-us/office/review-guidelines-for-customizing-a-number-format-c0a1d1fa-d3f4-4018-96b7-9c9354dd99f5)

Wikipedia warns that an informal K could be confused with the symbol for the kelvin temperature unit if the context is unclear.[[1]](https://en.wikipedia.org/wiki/Metric_prefix)

When converting, strip any currency symbol and sign separately, keep the sign, scale by the suffix, and keep the raw string beside the number so the rounding stays visible. (Meridian's view) Check whether the column mixes suffixed values with plain numbers, or K, M and B in the same field, before deciding a single rule fits every row. (Meridian's view)

## Sources

1. [Metric prefix](https://en.wikipedia.org/wiki/Metric_prefix) — secondary source
2. [finetype/labels/definitions\_representation.yaml at main · meridian-online/finetype](https://github.com/meridian-online/finetype/blob/main/labels/definitions_representation.yaml) — FineType
3. [GitHub - debrouwere/python-ballpark: Better human-readable numbers](https://github.com/debrouwere/python-ballpark) — secondary source
4. [ballpark · PyPI](https://pypi.org/project/ballpark/) — secondary source
5. [Unicode Locale Data Markup Language (LDML) Part 3: Numbers](https://www.unicode.org/reports/tr35/tr35-numbers.html) — standard
6. [Intl.NumberFormat() constructor - JavaScript \| MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat) — documentation
7. [Review guidelines for customizing a number format](https://support.microsoft.com/en-us/office/review-guidelines-for-customizing-a-number-format-c0a1d1fa-d3f4-4018-96b7-9c9354dd99f5) — documentation
