MeridianMERIDIAN

Currency Amount (Indian Lakh/Crore)

finance.currency.amount_lakh

Indian numbering system with irregular grouping: first three digits, then groups of two (XX,XX,XXX pattern). Lakh = 1,00,000 (100k), Crore = 1,00,00,000 (10M). Serves 1.4 billion people. Rupee symbol prefix. Period decimal separator.

Worked samples

DuckDB 1.5.5 · finetype 0.6.64

ValueAs VARCHARnumeric_valuesymbol
₹12,34,567.891234567.891234567.89₹
₹1,00,000.00100000.00100000.00₹
₹99,999.5099999.5099999.50₹
Rs. 1,23,456.78123456.78123456.78Rs.
₹1,00,00,000.0010000000.0010000000.00₹

Shape

Pattern
^[₹]?(?:Rs\.?\s?)?[0-9]{1,2}(,[0-9]{2})*(,[0-9]{3})(\.[0-9]{1,2})?$
ValueLengthShape
₹12,34,567.8913matches
₹1,00,000.0012matches
₹99,999.5010matches
Rs. 1,23,456.7815matches
₹1,00,00,000.0015matches
₹12,34,567.89914rejected: one character extra

Background

Origin

In the Indian numbering system, a lakh is one hundred thousand and a crore is ten million.[1] A crore is equal to 100 lakh.[2] The word lakh derives from the Sanskrit lakṣa, which was used as the numeral for 100,000 in Gupta-era Classical Sanskrit.[3] The word crore derives from the Prakrit kroḍi, which in turn comes from the Sanskrit koṭi.[2]

The Indian numbering system groups the first three digits to the left of the decimal point, as the international system does.[1] After the first three digits, the Indian numbering system groups by two digits.[1] Wikipedia's article on the Indian numbering system says the two-digit grouping aligns with the naming of quantities at multiples of 100.[1] In the Indian convention of digit grouping, a lakh is written 1,00,000 and a crore 1,00,00,000.[1] The Indian numbering system uses a period as the decimal separator and the comma for grouping.[1]

The Indian rupee sign ₹ was first presented to the public by the Government of India on 15 July 2010.[4] The ₹ sign was designed by D. Udaya Kumar.[4] The Indian rupee sign was given the code point U+20B9 in Unicode 6.0, released on 12 October 2010.[4] Until the ₹ sign came fully into use, the Indian rupee was commonly signified by the abbreviation Rs, a notation shared with several other countries.[4]

Use

Unicode's LDML specification allows a number pattern to have a primary grouping size for the least significant digits and a different secondary grouping size for the rest.[5] The LDML specification gives the pattern #,##,##0 as the case of a primary grouping of 3 and a secondary grouping of 2, formatting 123456789 as 12,34,56,789.[5] MDN's documentation for Intl.NumberFormat shows the en-IN locale formatting 123456.789 as 1,23,456.789.[6]

A Rs prefix on its own does not prove the amount is Indian, and lakh grouping does not prove the currency either; look for the currency code or the source's country before converting. (Meridian's view)

Formal written publications in English in India tend to use lakh and crore for Indian currency and Western numbering for foreign currencies.[3] The Reserve Bank of India's Weekly Statistical Supplement gives its reserve money table in ₹ crore, with figures such as 5269901 written without grouping separators.[7]

Detection notes

New in format coverage expansion. Indian numbering (2,2,3 grouping). Key distinguishing signal is irregular comma placement.

Use it

CLI · DuckDB
$ finetype infer -i "₹12,34,567.89" --mode column
→ finance.currency.amount_lakh

SELECT ft_infer('₹12,34,567.89');
-- → 'finance.currency.amount_lakh'
Cast expression
CAST(REGEXP_REPLACE(REGEXP_REPLACE({col}, '^(₹|Rs\.?)\s*', ''), ',', '', 'g') AS DECIMAL(18,2))

Schema

https://meridian.online/schemas/finance.currency.amount_lakh · Frictionless type string

finetype taxonomy finance.currency.amount_lakh -o json-schema

Aliases

amount_indianlakh_croreinr_amount

Type Registry