Seller Profit Guard · How it works · CSV privacy
CSV date and currency normalizer
Normalize two invented seller-export examples under explicit date patterns, numeric UTC offsets, decimal conventions, currency codes, and dated target-per-source exchange-rate assumptions. The browser-local worksheet returns UTC timestamps, normalized source amounts, converted target amounts, rate age, and Ready, Review, or Block without uploading or rewriting a CSV.
Maintained by Seller Profit Guard Editorial Team. Last reviewed: 2026-07-31.
Declare one event grain
Normalize one invented event at a time: for example, an item sale, refund event, payout line, or fee observation. Record what the timestamp and amount represent before parsing either value.
Mixed order, payment, and settlement grains can be technically parseable but analytically incomparable.
Use invented examples only
Enter one synthetic timestamp and one synthetic amount per scenario. The worksheet does not upload, inspect, transform, save, or rewrite a CSV file.
Never paste buyer, customer, order, address, payment, credential, bank, private export row, or full production file.
State the literal date pattern
Choose an explicit supported pattern such as MM/DD/YYYY HH:mm:ss, DD.MM.YYYY HH:mm:ss, DD/MM/YYYY HH:mm:ss, or YYYY-MM-DD HH:mm:ss.
A value such as 07/08/2026 is ambiguous until the month-day order is declared.
Validate the calendar date
The parser checks month length, leap-year rules, hour, minute, and second ranges instead of accepting rollover behavior.
February 30 must Block rather than silently become a March date.
Record a known numeric UTC offset
Attach Z, +00:00, or a known signed numeric offset such as -04:00 or +02:00 to the local fixture. RFC 3339 -00:00 expressly marks an unknown local offset, so this worksheet Blocks it instead of pretending it is UTC.
Abbreviations such as CST, EST, or IST are ambiguous and intentionally unsupported.
Separate offsets from IANA zones
A numeric offset identifies one relationship to UTC at one instant. A versioned IANA zone carries historical and future civil-time transitions.
For operational transformations, retain the named zone and tzdb version when daylight-saving reconstruction matters.
Normalize to an RFC 3339-style instant
The output uses a four-digit year, two-digit month and day, T separator, 24-hour clock, seconds, and Z suffix.
The normalized value represents an instant only under the declared local pattern and offset.
Preserve the original timestamp
Store the source text beside the normalized result, declared pattern, offset or zone, rule version, and parse decision.
Never overwrite the original field before reconciliation and rollback evidence exist.
Declare the decimal convention
Choose whether comma or period is the decimal separator and whether the other mark groups thousands. The fixture must match that declaration.
The text 1.234 can mean one point two three four or one thousand two hundred thirty-four.
Reject mixed money syntax
The parser accepts one declared grouping and decimal contract and Blocks malformed grouping, stray symbols, or an unsupported convention.
Do not strip every comma and period before determining their roles.
Normalize the source amount
After parsing, display a fixed two-decimal analysis amount with its three-letter source currency code.
Two decimals are a worksheet display convention, not a universal currency-minor-unit rule.
Record source and target currencies
Use distinct three-letter codes and retain both. A bare number cannot identify its monetary unit or conversion direction.
The tool checks code shape but does not certify that every entered code is current or appropriate.
State the rate direction
Enter target-currency units per one source-currency unit. Converted amount equals normalized source amount multiplied by that rate.
Reversing USD-per-EUR with EUR-per-USD creates a plausible-looking but wrong output.
Use a positive bounded rate
Zero, negative, nonnumeric, or implausibly unbounded rates Block the packet.
The worksheet never downloads or invents a live market rate.
Record the observation date
Every seller-entered rate requires a YYYY-MM-DD observation date and a source pointer.
An undated rate cannot support a reproducible reconciliation.
Close the temporal evidence contract
The declared YYYY-MM evidence period must contain both event dates and both rate-observation dates. The policy effective date must be on or before all four dates, the source-contract review date must be on or after them, and the inclusive policy-to-review window must meet the minimum evidence days.
A parseable value is still Blocked when it falls outside the governed period or was reviewed under a policy that did not yet apply.
Apply the rate-age threshold
Rate age is the absolute day difference between the local event date and the observation date. A structurally valid but older rate returns Review.
The threshold is an internal evidence policy, not a claim that a rate is transaction-appropriate.
Read Ready
Ready means both invented timestamps, offsets, amount texts, currency codes, rate directions, rate dates, contexts, and global evidence fields pass the entered contract.
It does not prove the platform used the same rate, zone database, rounding rule, or settlement date.
Read Review
Review means parsing succeeds but at least one rate observation is older than the seller-declared threshold.
Select a documented rate source and date before using the normalized value in a protected workflow.
Read Block
Block means a date pattern, calendar value, offset, decimal convention, amount, currency code, rate, date, context, scope, or declared conflict is invalid.
Repair the evidence contract rather than coercing the value.
Work the US-formatted fixture
07/15/2026 09:30:00 at -04:00 normalizes to 2026-07-15T13:30:00Z. The amount 1,234.56 parses as 1234.56 USD.
At 0.86 EUR per USD, the target amount is 1061.72 EUR after final display rounding.
Work the mixed-locale fixture
15.07.2026 18:45:00 at +02:00 normalizes to 2026-07-15T16:45:00Z. The amount 1.234,56 parses as 1234.56 EUR.
At 1.16 USD per EUR, the target amount is 1432.09 USD after final display rounding.
Keep date conversion and currency conversion separate
Timestamp normalization establishes an instant; money normalization establishes a numeric amount and monetary unit. Neither operation validates the other.
A correct UTC timestamp cannot rescue a reversed exchange rate.
Keep mapping separate
Use the CSV Column Mapper to decide which source columns become canonical timestamp, currency, amount, rate, and rate-date fields.
This tool evaluates invented field values under an already declared mapping.
Keep schema drift separate
Use a schema checker to detect added, removed, renamed, or retyped columns before running a normalization rule.
A format rule cannot prove that the source header still means the same thing.
Keep privacy minimization separate
Use the CSV Privacy Redactor to decide which fields are necessary for the declared derivative schema.
Normalization does not remove identifiers or sensitive content.
Control rounding
Preserve full calculation precision through multiplication and round only the displayed target amount. Record any platform-specific minor-unit and settlement rounding separately.
Repeated intermediate rounding can create reconciliation differences.
Control negative amounts
A syntactically valid negative amount can represent a refund, reversal, adjustment, or data error. The event grain and sign convention decide its meaning.
Do not silently convert negative text to an absolute value.
Control daylight-saving transitions
A numeric offset fixture is deterministic, but an operational named-zone conversion needs the correct IANA zone and database release, especially near clock gaps or repeated times.
Do not infer historical offsets from a current browser clock.
Assign human authority
Name the source owner, format owner, currency-rate owner, independent reviewer, stop authority, and restoration owner.
Ready cannot authorize a production rewrite or accounting entry.
Back up and restore
Preserve source fingerprints, original values, patterns, zones or offsets, currency codes, rate source and date, code version, normalized output hash, exceptions, and the prior accepted rule.
A browser result is not a backup or restoration test.
Retest counterexamples
Test an unsupported two-digit-year pattern, February 30, alphabetic zone, malformed grouping, same source and target currency, zero rate, invalid rate date, stale rate, short context, and open conflict.
Every public fixture stays invented and contains no operational row.
Release through ordered gates
Index only after distinct intent, working calculations, current sources, counterexamples, answer-first content, metadata, schema, diagrams, links, privacy, similarity, mobile, backup, deployment, and live checks pass.
Search signals are measured after release and are not a quality prerequisite.
Version the normalization contract
Record real ordered source-contract and policy dates, an evidence month containing every event and rate observation, a minimum inclusive policy-to-review duration, explicit amount and exchange-rate maxima, and all nine timestamp, money, currency, rate, precision, counterexample, restoration, privacy, and authority confirmations.
Invalid governance controls Block the packet and mask every derived timestamp, amount, direction, and rate-age result.
Quarantine blocked outputs
When pattern, calendar, offset, amount grammar, currency, rate, dates, thresholds, evidence scope, confirmations, or conflicts fail, treat all ten derived scenario outputs as unavailable. Preserve source text and the failed rule only in an authorized exception workflow.
A partial-looking UTC value or converted amount from a blocked packet must never flow into reconciliation, settlement, accounting, tax, or production rewrite decisions.
Sources and further reading
- ISO 8601-1:2019: Current date-and-time representations for information interchange, confirmed in 2024.
- RFC 3339: Internet timestamps: Standards-track timestamp profile; -00:00 means the local offset is unknown and is not semantically equivalent to Z or +00:00.
- IANA Time Zone Database: Versioned civil-time and daylight-saving transition data.
- Unicode LDML Part 4: Dates: Locale-aware date, time, calendar, and zone pattern semantics.
- Unicode LDML Part 3: Numbers: Locale-aware decimal, grouping, currency-decimal, and currency-group symbols.
- ISO 4217 currency codes: Standard alphabetic and numeric currency-code framework.
- ECB euro reference rates: Dated informational reference rates with an explicit euro base and usage caveat.
- Seller Profit Guard methodology: Evidence, deterministic fixtures, release, monitoring, correction, and rollback controls.
Related Seller Profit Guard tools
- Seller CSV Column Mapper: Map approved source columns to canonical timestamp and money fields.
- Seller CSV Import Validator: Check synthetic CSV structure and unsafe cell forms separately.
- Seller CSV Privacy Redactor: Minimize the derivative schema before protected normalization.
- Marketplace Payout Anomaly Checker: Use normalized aggregate periods and currencies in a separate payout bridge.
- Methodology: Review evidence, calculation, correction, release, monitoring, and rollback controls.
- Data Privacy: Keep operational exports and private values outside public fixtures.
- Date and Currency Normalizer Formula Contract: Define source pattern, calendar validation, UTC offset, decimal convention, currencies, rate direction, observation date, rounding, and evidence.
- Date and Currency Normalizer US Worked Example: Reperform one MM/DD/YYYY event, negative UTC offset, comma-grouped decimal-point amount, USD source, EUR target, and dated rate.
- Mixed-Locale Date and Currency Normalization: Resolve a DD.MM.YYYY event, positive UTC offset, period-grouped decimal-comma amount, EUR source, USD target, and dated rate.
- Date and Currency Normalization Mistakes: Diagnose ambiguous dates, alphabetic zones, rollover dates, mixed separators, unit loss, inverse rates, stale observations, and premature rounding.
- Reliable Date, Time Zone, and Currency Sources: Map every rule to ISO, IETF, IANA, Unicode, currency-code, rate-source, platform-schema, seller-record, and version evidence.
- Safe Rate-Age and Parsing Thresholds: Set zero-tolerance structural blocks, rate-age review, source freshness, precision, drift, exception, monitoring, stop, and restoration controls.
- US vs Mixed-Locale Normalization: Compare slash and dot date orders, negative and positive offsets, decimal-point and decimal-comma text, rate directions, and target outputs.
- Date and Currency Normalization Operating Routine: Build a repeatable date-and-currency workflow for schema checks, protected conversion, reconciliation, monitoring, exceptions, and rollback.
- Interpret Normalized Timestamps and Amounts: Explain what UTC output, normalized source amount, converted target amount, rate age, Ready, Review, and Block prove and cannot prove.
- Date and Currency Normalization Audit Template: Provide a standalone source-value, pattern, zone, decimal, currency, rate, precision, transformation, exception, monitoring, and restoration record.
- Shopify Multi-Currency Margin Formula and Inputs: Define the rate directions, price transformation, capture event, fees, duties, refund reserve, costs, threshold, and evidence before comparing markets.
- Shopify Multi-Currency Margin: Stable Pair Example: Reperform a complete stable USD-to-EUR packet from local display price through contribution, threshold testing, and a documented evidence decision.
Use the interactive tool
Enable JavaScript to open the calculator and process browser-local inputs. The explanatory content and source links remain available without JavaScript.
Related guide: Define date parsing, UTC conversion, decimal parsing, currency direction, rate-age, evidence, monitoring, and restoration.
This tool provides operating estimates, not tax, accounting, legal, financial, or marketplace-policy advice. Verify current official sources and your own records before changing prices or operations.