How your data is parsed
Each field is stored as a type, and that type decides how its values are read. This page explains how numeric, date, categorical, and text values are parsed.
One consistent rule for every column
A value is read the same way no matter which field it maps to. The rules below decide whether a cell is a number and, if so, what number it becomes. A field stays numeric as long as most of its values are numbers; the occasional value that is not a number (such as "Pending") is kept but treated as empty.
Blank is empty, never zero
An empty cell and common placeholders for missing data (NA, N/A, none, a single dash) are treated as "no value". They are never read as 0, so they do not pull an average or a total down.
Plain numbers, signs, and decimals
Whole numbers and decimals are read as written, with an optional leading + or - sign. A leading or trailing space is ignored.
Thousands separators
Commas are removed only when they group digits correctly in threes, so 1,234.56 reads as 1234.56 and 1,234,567 reads as 1234567. The decimal point is always a period. A value whose commas do not group correctly (1,5 or 12,34 or 1,2345 or a zero-led 0,125) is never silently reinterpreted as a different number: it is kept as text. Numbers written in the European style, with a period for thousands and a comma for the decimal (1.234,56), are also kept as text and should be reformatted before upload.
Currency symbols and codes
A leading currency symbol ($, and the euro, pound, or yen symbols) and a leading or trailing 3-letter currency code (USD, EUR, GBP, JPY, CAD, AUD, CHF, CNY) are removed, so $1,234.56 and 1234.56 USD both read as 1234.56. The sign and the symbol can appear in either order: -$1,234.56 and $-1,234.56 both read as -1234.56. A currency marker by itself with no number stays text.
Parentheses mean negative
Accounting-style parentheses mark a negative amount, so (500) reads as -500 and ($1,200) reads as -1200. The currency symbol can sit inside or outside the parentheses: $(1,234.00) and ($1,234.00) both read as -1234.
A percent sign is removed, not rescaled
A trailing percent sign is removed and the number is read as written, so 5% reads as 5 and 8.36% reads as 8.36. The value is never divided by 100 at this stage. Whether a percent column means a fraction or percentage points is decided by the field type you choose, and that scaling is applied later when the value is used, so a column that mixes 5% and 8.36 stays consistent.
What is kept as text
Values that are not plain numbers are kept as text and are not available for numeric ranges. This includes abbreviated magnitudes (125k, 1.2M), scientific notation (1e3), values with letters or units other than a recognized currency (10 bps, 3 months), and anything with extra punctuation (1.2.3).
Precision
Numbers are stored with up to six decimal places. Values needing more precision than that are rounded.
Very large numbers
Reading a number never changes it, whatever its size. Stored measurements hold up to 14 digits before the decimal point (well past one hundred trillion); a numeric field value beyond that is kept in your raw data but recorded as unmeasurable rather than stored inaccurately, and it is counted so you can see it happened. This is a storage limit, not a parsing rule. Long identifiers such as account or reference numbers are unaffected: they are kept as text.
Worked examples
Each row shows a value as it might appear in your file and the number it becomes. Values that are not recognized as numbers are kept as text.
How dates are read
Date fields work the same way as numbers: one consistent rule, applied the same everywhere. Formats that can only mean one thing are always accepted; a date written as two numbers is read using the Day/Month order declared for that column — suggested from your data when it can be proven, otherwise the US Month/Day order, shown with the column so you can correct it.
One consistent rule for every date column
A date value is read the same way no matter which field it maps to. Formats that can only mean one thing are always accepted; a date written as two numbers, where the day and month could be swapped, is read using the order declared for that column (suggested from your data, US Month/Day when the data cannot settle it). A value that does not fit is kept as text and treated as empty for date fields, never guessed.
Formats that are always recognized
Year-first dates (2024-01-15, 2024/1/15, 20240115), month codes (2024-01, 202401), and dates with a written month name (Jan-2024, January 2024, 15-Jan-2024, Jan 15, 2024) are always read, whatever the column's declared order. Month names can be the 3-letter abbreviation or the full name, in any capitalization. A month-level value (Jan-2024 or 2024-01) is read as the month, with the day pinned to the first.
Day/Month order is declared per column
A date written as two numbers and a year (04/07/2025 or 01-15-2024) could be Month/Day or Day/Month. Each column carries a declared order. Your own data settles it when it can: a value whose first number is over 12 proves Day/Month, and a value whose second number is over 12 proves Month/Day. When nothing in the column settles it, the column is read in the US Month/Day order; that assumption is shown with the column so you can correct it before your data is used. A value that does not fit the column's order is kept as text, never silently flipped.
Only real calendar dates
A value must be a date that actually exists. February 30th, April 31st, and February 29th in a non-leap year are kept as text, not rounded to a nearby date. February 29th in a leap year (02/29/2024) is a valid date.
What is kept as text
Values that do not fit any recognized date format, or that do not fit the column's declared order, are kept as text and treated as empty for date fields. A bare 4-digit year (2024) is not read as a date, because it cannot be told apart from an ordinary number.
Worked date examples
Each row shows a value as it might appear in your file, the declared order it is read under, and the date it becomes. Values that are not recognized as dates are kept as text.