Overview
A2X's Deferred Revenue feature automates your monthly revenue deferrals and recognitions based on Shopify fulfillment data. Because of how Shopify reports order data, you may see small variances between the two. This article explains why those differences occur and how to reconcile them.
What each monthly adjustment contains
A2X’s monthly Deferred Revenue adjustments represent the month’s change to deferred revenue, not a statement of everything currently deferred. This is why establishing an opening balance is important.
These monthly adjustments include two components:
Deferred revenue: how much revenue was deferred for orders unfulfilled at month-end.
Recognized revenue: how much previously deferred revenue was recognized for orders fulfilled during the month.
Both sides can be reconciled from the same Shopify orders export, filtered by order date and fulfilled-at date This process is outlined below.
Note: Shopify's Orders page also has an "unfulfilled" filter, but this is a point-in-time view of the current state, so it is subject to timing issues depending on when you pull it. It's useful as a quick check only.
Reconciling with a Shopify Orders export
Option A: Use the A2X Finance Report
1. Get your A2X data
In your A2X Shopify account:
Navigate to Reports > Finance Report
Set the month you wish to reconcile
Turn on Show Deferred Revenue Adjustments Impact
2. Get your Shopify data
Go to your Shopify Orders page and click Export:
Choose Orders by date
Select a date range wide enough to capture all unfulfilled orders and any order which was fulfilled during the period being reconciled. A quick-turnaround store may only need a few days buffer, while a store which takes pre-orders months before fulfillment needs a much wider window.
Export as "CSV for Excel, Numbers, or other spreadsheet programs".
3. Compare the deferral side
In the Shopify export spreadsheet, filter for orders:
with Created at date during the month
and a Fulfilled at date that's blank or after month-end
These reflect orders from the month that were unfulfilled at month-end. Compare the sum of these columns to your A2X Finance Report. This is how they map:
Shopify Orders Export Column | A2X Finance Report (Deferred Column) |
Subtotal | Gross Sales + Discounts |
Shipping | Shipping |
If you notice any variances, see Common reasons for variances below.
4. Compare the recognition side
In the Shopify export spreadsheet, filter for orders:
with Created at date before the month
with a Fulfilled at date during the month
These reflect orders that would've been previously deferred and were then fulfilled during the month.
Compare the sum of these columns to your A2X Finance Report. This is how they map:
Shopify Orders Export Column | A2X Finance Report (Deferred Column) |
Subtotal | Gross Sales + Discounts |
Shipping | Shipping |
If you notice any variances, see Common reasons for variances below.
Option B: Use the A2X Unfulfilled Orders Report
The A2X Unfulfilled Orders Report shows the orders that A2X determined were unfulfilled at a date you choose based on Shopify’s fulfillment data, each with a deferrable amount calculated on the same basis as the monthly adjustments. Unlike Option A, this is a point-in-time view as of specified date which includes everything unfulfilled up until the selected date rather than a single month's movement.
1. Get the A2X Unfulfilled Orders report
Navigate in A2X to Reports > Unfulfilled Orders Report
Set the as of date to the month-end you're reconciling.
Click Export CSV
Use the Summary view for one row per order, or the Detailed view for the underlying revenue lines (recommended for this case).
You may use the Exclude cancelled orders toggle to omit cancelled orders from the results and CSV export.
Summary view
Detailed view
2. Get Shopify's unfulfilled orders report.
Go to your Shopify Orders page and select Unfulfilled from the filter dropdown.
Click Export:
Choose orders matching your search
Export as "CSV for Excel, Numbers, or other spreadsheet programs".
3. Compare the A2X report to Shopify's report
Compare the report against Shopify's view of unfulfilled orders (your export from Option A, or the Orders page's unfulfilled filter). The two should look broadly the same. It's also a good place to spot anything unusual, such as orders that have sat unfulfilled far longer than your normal fulfillment cycle.
For order-level differences, compare the report's order list against your filtered Shopify export from the deferral-side comparison. Any variances can be checked individually if needed (see Checking an Order's Fulfillment History below).
The A2X Unfulfilled Orders Report covers 12 months of orders prior to the selected as-of date for the report. This may be reduced if you have less payout history in A2X or if you are selecting an as-of date which is earlier than the starting month selected in Deferred Revenue settings. Orders prior to June 2025 may not show a deferrable amount.
A2X's raw adjustment data
The raw data behind each Deferred Revenue Adjustment can be downloaded as a CSV from the settlement detail page, just like payouts. This is the most direct way to see exactly what A2X calculated, row by row, for each order in the period.
Key columns
Column | Values / Meaning |
posting_action | DEFERRAL or RECOGNITION |
adjustment_scope | ENTIRE_ORDER (an order deferred in full; recognitions are always this scope) or CHANGES_TO_ORDER (only the new lines from an edit to a previously deferred order) |
order_status_at_period_start | NOT_FULLY_FULFILLED or FULLY_FULFILLED or blank (the order did not exist yet at the start of the month) |
order_status_at_period_close | NOT_FULLY_FULFILLED or FULLY_FULFILLED |
order_fulfilled_at | The date & time the order became fully fulfilled from the perspective of this adjustment’s month-end. |
Please note:
Orders placed and fulfilled within the same month are omitted from the CSV and from the finance report, as the deferral and recognition would cancel out. They still appear under the adjustment on the A2X order ID page for context.
A previously fulfilled order that becomes unfulfilled again (e.g. a refund with restock) gets a fresh deferral with no offsetting recognition in the same adjustment, the recognition happened in an earlier period.
Checking an order's Fulfillment History in A2X
When Deferred Revenue is enabled, an order ID page in A2X can include a Fulfillment History table showing the order-level fulfillment timeline A2X computed from Shopify’s fulfillment events. This is shown for orders A2X holds fulfillment data for. This is typically from up to 12 months before your Deferred Revenue starting month onward.
Each row is a fulfillment status transition, showing the date (in your account's timezone) and the status the order moved to: Fully Fulfilled or Not Fully Fulfilled.
This is the fastest way to settle a per-order question: for the month you're reconciling, find the order's status prior to the month in question (if applicable) and the status prior to month-end.
These are the statuses A2X uses, even if Shopify's current view now says something different.
Orders can move between the two statuses more than once (after a refund or an order edit, for example). Each change shows as its own row so you can see exactly what A2X saw, and when.
Common reasons for variances
A2X should match Shopify for simple order flows. Variances are typically caused by limitations in Shopify’s orders export because Shopify shows orders in their current state, not their state at a given month-end. Here are some common causes:
Timing differences
These come from exporting at a different moment than the month-end A2X reports on.
Timing of your Shopify export
Shopify shows orders as they are now, not as they were at month-end, so the longer you wait to export, the more will have changed. A2X's adjustment reflects each order's status as of its month-end, so export close to month-end where you can.
Order edits after month-end
If shipping, discounts, or line items are modified after the month closes but before you export orders from Shopify, Shopify reflects the edit, but A2X doesn't. If the order is still not fully fulfilled, the next month's adjustment defers just the new lines from the edit, and the original deferral stays. Some edits also rewrite history in Shopify's view: removing the not-yet-shipped items from a partially fulfilled order makes Shopify show it as fulfilled today. A2X still reports what was true at month-end.
Shopify's fulfilled date can be older than A2X's
Shopify shows one current fulfilled date per order, and edits can move it. An order can show a fulfilled date from months ago even though it only became fully fulfilled, every item accounted for, much more recently. A2X recognizes revenue in the month the order became fully fulfilled, so the recognition can land later than Shopify's date suggests. The order's Fulfillment History (above) shows the dates A2X used.
Activity on orders from earlier months
The month's deferred figure can also include new lines added by edits to previously deferred orders, and full re-deferrals of orders that became unfulfilled again (e.g. a refund with restock). These belong to orders created in earlier months, so a filter on orders created during the month can't capture them, expect the finance report's Deferred column to run slightly higher than your filtered export when either has occurred.
Scope and data differences
Refunds
Your export's refund column may not match A2X's deferred Refund figures the finance report: Shopify reports refunds tax-inclusive, tax never defers, and what's deferred depends on how the refund was processed. If needed, check refunds on a case-by-case basis.
Orders that predate A2X’s data:
Before your History Fetch date
Very old unfulfilled orders that predate A2X's connection aren't visible to A2X. They'll show in your Shopify export but not A2X's data.
Orders from before the Deferred Revenue start date
Orders placed before your start date but still unfulfilled aren't deferred (they belong in your manual opening balance). As they're fulfilled, A2X recognizes them, drawing down that balance.
Line items that don't require shipping
A2X never defers line items that don't require shipping (e.g. change order fees), as they have no fulfillment to wait for. Shopify's orders export makes no such distinction, so orders containing these items can total slightly higher in your export than in A2X's deferred figures.
A refreshed payout that overlaps the adjustment
Refreshing a Shopify payout that overlaps a Deferred Revenue Adjustment doesn't automatically refresh the adjustment. If you've refreshed payouts and the numbers no longer line up, refresh that month's Deferred Revenue Adjustment and any later adjustments, in order.
Third-party apps with unusual fulfillment patterns
If a third-party app creates, edits, or fulfills orders in a non-standard way (subscription apps, external fulfillment services, point of sale), the deferral tracks whatever that app writes to the order. Unusual fulfillment patterns can create variance and are best checked order by order.
Multiple currencies
On multi-currency accounts, A2X generates one Deferred Revenue Adjustment per currency. Reconcile each currency separately.
FAQs
Why doesn't my Shopify export match A2X exactly?
Shopify's export shows each order's current state, while A2X reconstructs each order's status as of month-end from its fulfillment events. Orders fulfilled or edited between month-end and your export show up as differences. Pull your export close to month-end to minimize them, and use A2X's raw adjustment data to explain what's left. See above sections for detailed on variances and reconciling.
Why does an order ID page show both a deferral and a recognition?
If the order was placed and fulfilled within the same month, the pair cancels out. These pairs are omitted from the raw CSV and the Finance Report, but they still appear under the adjustment entry on the order detail page.
Why hasn't an order's revenue been recognized when Shopify shows it as fulfilled?
The order wasn't fully fulfilled at month-end by A2X's timeline, Shopify's fulfilled date is a current value that edits can move. Check the order's Fulfillment History in A2X to see the dates and statuses the adjustment actually used.











