Adray

· , Co-founder

Time zones and currency: why your MXN and USD reports never match

Time zones and currency: why your MXN and USD reports never match

Why do my daily reports in Meta and Google never match my store, even for the same day?

Some of the gap between an ad platform and your store has nothing to do with attribution. It is arithmetic: two systems closing their day at different hours, converting money at different rates, and dating the same sale differently. It is the least interesting cause of discrepancy and one of the most common, and it is the easiest to remove once you know where it comes from.

Talk to SalesMulti-touch attribution anchored on your real orders.

Every system closes its day in its own time zone

Your store records an order at a moment in time and assigns it to a date in the store's time zone. Your ad account does the same in its own time zone. If the two zones differ, every order placed in the hours between the two midnights lands on one date in the store and the next or previous date in the ad account.

For a store in Mexico City and an ad account left on a US time zone at creation, that is a slice of every evening, often a busy one. Daily reports then disagree every single day, even if every conversion is tracked perfectly, and a great Friday in one report becomes an ordinary Friday and Saturday in the other.

Mexico's clock no longer moves, but others do

Mexico eliminated daylight saving time with the Ley de los Husos Horarios, published on October 28, 2022 and in force from October 30 of that year. Only municipalities on the northern border keep a seasonal schedule, from the second Sunday of March to the first Sunday of November. Mexico City is UTC−6 all year.

US time zones still change. An ad account on US Pacific time is UTC−8 in winter and UTC−7 in summer, so it is two hours behind Mexico City from November to March and one hour behind from March to November. The size of your daily discrepancy can change twice a year without anything else changing.

You cannot fix the zone later, at least in Google Ads

Google says an account's time zone is permanently set when the account is created, because it is fundamental to reporting and billing, and the same applies to its currency. Reporting in another zone means creating a new account and starting without the old one's history. So the practical fix is not to change the account; it is to normalize the reports.

Currency adds a rate nobody sees

Many Mexican stores sell in pesos while one or more ad accounts bill in dollars. Spend arrives in dollars, revenue in pesos, and somewhere in between a conversion happens at a rate the report does not show. When the store sends purchase values in pesos to an account in dollars, the platform converts them with its own rate at its own time, which will not match the rate your finance team closes the month with.

The fix is a rule, stated on the report: convert spend and revenue with the same rate (for example the month's average), in the same direction, and never mix the platform's converted values with your own conversion in the same table.

The date of a conversion is not always the date of the sale

Platforms credit a conversion to an ad interaction inside a window: a click or a view up to several days before the purchase. Depending on the report and its settings, the conversion can be dated to the day of that interaction instead of the day of the purchase. That is why yesterday's number changes when you look again today, as late purchases within the window are added to earlier days. We explain windows in what attribution windows actually mean.

Your store dates the order on the day it happened. Comparing one day in the platform with the same day in the store therefore compares two different sets of sales, and the gap moves every time the report refreshes.

How to stop fighting it

  • Write down every zone. The store's, each ad account's, GA4's, your reporting tool's.
  • Pick one reporting clock. The store's time zone is the natural one, because the sale happened there.
  • Compare weeks, not days. A completed week in the same zone absorbs most boundary effects.
  • State the rate. One conversion rule for spend and revenue, written on the report.
  • Wait for late conversions. Treat the last few days as provisional until the platform's window has closed.
  • New ad accounts: create them in your store's time zone and currency from the start.

Where this fits

Time zones and currency are one of eight causes of the gap between platforms and store, collected in why Meta, Google, GA4 and your store never match. Refunds, which also land on different dates from the sale they cancel, are covered in refunds and cancellations: the gap no ad platform subtracts. Adray reports every account in the merchant's own day, which for Mexican stores defaults to Mexico City time, and states it on screen, precisely because a day boundary in the wrong zone moved a large share of evening orders onto the next date when we measured it.

Common questions

Can I change the time zone of my Google Ads account?

No. Google says the account time zone is permanently set when you create the account, because it is fundamental to reporting and billing. To report in another zone you need a new account, which starts without the old one's history.

Why do my Meta daily numbers not match my store's?

Most often because each closes its day at a different hour. If the ad account's time zone is not your store's, orders placed late in the day are counted on different dates, and a strong day in one report becomes two average days in the other.

Does Mexico still change clocks for daylight saving time?

Not since October 30, 2022, when the Ley de los Husos Horarios came into force. Only municipalities on the northern border keep a seasonal schedule, from the second Sunday of March to the first Sunday of November.

My ad account is in dollars and my store in pesos. How do I compare them?

Convert with one rule you state on the report, for example the average rate of the month, and apply it to spend and revenue alike. Do not mix the platform's converted values with your own conversions in the same table.

Why does yesterday's number change when I look again today?

Because platforms keep adding conversions to the day of the ad interaction as late purchases arrive within the window, and remove some after deduplication. A recent day is never final; judge completed weeks.