Clarvivo

Free tool by Clarvivo · no login

Validate revenue value and currency before trusting totals

Upload a revenue-event CSV to catch malformed values, negative purchase amounts and invalid currency codes.

Revenue event export

Upload a CSV with value and currency columns. We validate numeric revenue and ISO currency codes without sending it to an analytics or ad platform.

This tool answers: Are revenue values and currency codes structurally valid before I trust attribution totals?

Enable JavaScript to run the check — the diagnosis itself is free and needs no account.

Why this happens

Attribution totals are only as good as the revenue values underneath them. A value exported as "€1.299,00" instead of 1299.00, a currency column that says "Dollars", a blank currency on a subset of rows: each one quietly breaks sums, conversions and comparisons, and none of them produce an error in a spreadsheet.

Mixed or invalid currencies are especially costly. Summing USD and EUR values as if they were the same currency overstates or understates revenue, and ad platforms that receive the wrong currency convert it at the wrong rate or reject it.

This validator checks every row of a revenue export for a numeric value and a valid ISO 4217 currency code, before the numbers are used to judge a campaign or a channel.

Next checks

These answer the questions this one tends to raise.

How this check works

So you can trust the result — and your developer can verify it.

  1. Upload a revenue export

    Any CSV with a value column and a currency column: a GA4 purchase export, an order export, or an event log.

  2. We validate each row

    Values must be finite, non-negative numbers; currency codes must be three-letter ISO 4217 codes such as USD, EUR or GBP. Rows that fail either check are listed by line number.

  3. We list the currencies found

    If the export contains several currencies, they're listed so you know conversions are needed before summing.

Common causes and fixes

Values formatted for display
Thousand separators, currency symbols and comma decimals turn numbers into text. Send raw numbers with a dot decimal separator.
Currency names instead of codes
"Dollar", "US$" or "€" aren't codes. Use ISO 4217 three-letter codes.
Currency only on some rows
If currency is set in one tag but not another, part of your data has none. Send currency with every purchase and value event.
Negative values from refunds mixed in
Refunds recorded as negative purchases distort totals and fail validation here. Keep refunds as a separate event type.

Frequently asked questions

Which currency codes are accepted?
Three-letter ISO 4217 codes such as USD, EUR, GBP, INR or JPY.
Are negative values treated as errors?
Yes. A purchase or revenue row should never carry a negative value, so negative rows are reported as invalid. If your export mixes refunds into the same column, separate them first.
Does it convert currencies?
No. It validates them and lists which are present, so you know whether conversion is needed.
Is the data sent to an analytics or ad platform?
No. Validation runs on the file you upload, which isn't stored.
What should I check next?
If purchases are pushed from a dataLayer, run the Ecommerce dataLayer Validator on a sample.

Normalize revenue before you attribute it.

Clarvivo compares channel claims against consistent payment data.

Validate revenue data

What this tool reads, and what it keeps