Meta Purchase Value Is Wrong: How to Troubleshoot Value and Currency Tracking
When the Purchase event fires but the value is wrong, Meta optimizes against the wrong number. The value can be too high, too low or missing a component like tax or shipping. The cause is in how the value is calculated and where the tag pulls it from, and there is no single correct answer that fits every business.
Table of Contents
- 01.There is no universal purchase value definition
- 02.What to check first
- 03.Where the value comes from
- 04.Tax, shipping and discounts
- 05.Currency
- 06.Browser value vs server value
- 07.How to test it
There is no universal purchase value definition
Different businesses measure purchase value differently. Some want revenue before tax and shipping, some want the grand total the customer paid, some want to exclude discounts and some want to include them. Meta does not decide this for you. The value you send should match the measurement definition your business has chosen, and the tag should pull that exact figure.
What to check first
- Decide what your purchase value should represent for your business.
- Find where the tag pulls the value from, data layer or a variable.
- Confirm whether that source includes or excludes tax, shipping and discounts.
- Check the currency code sent with the event.
- Compare the value in a test order with what appears in Events Manager.
Where the value comes from
The value in a Purchase event comes from a variable, usually populated from the data layer. If that variable points at the wrong data layer key, the event carries the wrong number. Common mismatches include pulling the subtotal where the grand total was intended, pulling a line item price instead of the order total or pulling a value that includes tax when the business wants it excluded.
| Definition | What it includes |
|---|---|
| Subtotal | Product prices before tax, shipping and discounts |
| Grand total | Everything the customer paid including tax and shipping |
| Discounted total | Product prices after discounts, before tax and shipping |
| Revenue | Varies by business, must be defined explicitly |
Tax, shipping and discounts
The biggest source of wrong values is disagreement about tax and shipping. If your data layer exposes both a subtotal and a grand total, the tag must pull the one that matches your definition. Discounts add another layer. A value that looks too high may include a discount that was already applied, and a value that looks too low may have had the discount subtracted twice. Trace the exact figure from the order to the data layer to the event.
Currency
A wrong currency code can make a correct value look wrong in reporting, especially for multi-currency stores. Confirm the currency sent with the event matches the currency of the order. A value of 100 with the wrong currency code is a different number to Meta than the same value with the right code.
Browser value vs server value
If you send Purchase through both the Pixel and CAPI, the value should match on both paths. A mismatch between the browser value and the server value can cause deduplication problems or make the data inconsistent. The guide on Meta CAPI event value not matching Pixel value covers this in detail. Make sure both paths pull from the same source of truth.
How to test it
- 1.Place a test order with a known total including tax and shipping.
- 2.Check the data layer value on the confirmation page.
- 3.Confirm the tag variable pulls that exact value.
- 4.Check the event in Test Events and confirm the value and currency.
- 5.If you use CAPI, confirm the server value matches the browser value.
Frequently Asked Questions
Should purchase value include tax and shipping?
It depends on your business definition. Some businesses report revenue before tax and shipping, others report the grand total paid. The important thing is consistency: pick a definition, confirm the tag pulls that figure and use it everywhere.
Why does my value look right in the data layer but wrong in Events Manager?
The tag variable may be pulling from a different data layer key than the one you checked, or the value may be transformed before it is sent. Trace the value from the data layer key through the tag variable to the event payload to find where it changes.
Need help applying this to your business?

PPC, Conversion Tracking, CRM and Automation Specialist. Helping businesses generate qualified leads with Google Ads, accurate tracking and automated follow-up.
Related Guides
Meta Purchase Event Not Firing After an Order: What to Check
A missing Purchase event is usually a trigger pointing at the wrong page or purchase data that is not available when the tag fires. Complete a test order and check the confirmation page first.
Meta CAPI Event Value Does Not Match Pixel Value: What to Check
A value mismatch means the browser and server pull from different sources or calculate differently. Pick one value definition, apply it to both paths and confirm the currency matches.
Meta CAPI Purchase Events Missing: How to Trace the Server-Side Event Flow
A missing CAPI Purchase is a server-side flow problem. Confirm the order triggers the server logic, confirm the payload carries the order data and check the CAPI response.