How Decile Calculates Markdown


What is a markdown?

A markdown is the price difference between what a product normally sells for and what a customer actually paid. When you put an item on sale, every customer who buys it during that window bought it at a markdown.

It's a merchandising signal - a decision you made about the product before the customer arrived. That makes it one of the clearest ways to see whether your revenue is coming from full-price demand or from price reductions, and Decile tracks it on every line of every order.

Markdown is not a discount

These two are often conflated, and Decile keeps them apart on purpose.

markdown is a reduction on the product. You lowered the price, or set a sale price on the item. Everyone who buys it gets that price.

Markdown Example

A shirt normally sells for $20, but it is currently on sale for $15. The shirt is "marked down" by $5.

discount is a reduction at checkout. For example a code, an automatic promotion, or a BOGO-type offer. It applies to the transaction rather than the product.

Discount Example

A customer adds two $50 pants to their cart, for a subtotal of $100. You are currently running a site-wide 25% off sale. When the customer checks out, the discount is applied and they pay $75 for the two pants, a $25 "discount." The pants were still full-price, but there was a discount applied to the overall order.

Keeping them separate is what lets you answer "is our margin pressure coming from merchandising or from promotion?" Discounts stay in your discount fields and are never folded into markdown at any level. While the concepts are separate, they can appear together.

Markdown + Discount Example

A customer's cart contains the $15 markdown shirt, and two $50 pants. The site-wide 25% discount applies to their entire order. The subtotal is $115. The final order total (excluding taxes and fees) is $115-($115*.25) = $86.25

  • On the line item, the shirt had a $5 markdown.
  • On the order, there was a 25% discount.

Markdown analysis in Shopify

Shopify calculates the markdown amount by comparing a product's current regular price (the compare-at price) against the price it was sold at on the order.

  • If a compare-at price is set, that's the regular price. This is Shopify's strikethrough figure - the "was" price you set to advertise that something is on sale.
  • If no compare-at price is set, the variant's own price is the regular price. Shopify clears the compare-at field when it matches the selling price, so an empty compare-at means the product is not marked down.

Impacts on markdown analysis

Since Shopify compares a product's current price against the price it was sold at, markdown analysis can become inaccurate, especially for products that have had price changes. For example, an item that previously was sold at $35 but now sells for $40 has a current price of $40. All of the previous orders that sold at the full price of $35 are compared against that current price, which produces a "markdown" of $5 - even though the product wasn't actually marked down when it was sold!

How Decile enables accurate markdown analysis

Decile captures a variant's regular price as of the day the order was placed, enabling accurate price history and markdown analysis. Decile reads that from your Shopify catalog in two steps.

  • If a compare-at price was set, that's the regular price. This is Shopify's strikethrough figure - the "was" price you set to advertise that something is on sale.
  • If no compare-at price was set, the variant's own price is the regular price. Shopify clears the compare-at field once it would match the selling price, so an empty compare-at means no sale was running.

An item selling at $80 with a compare-at of $100 carries a $20 markdown per unit. The same item at $100 with nothing in the compare-at field carries no markdown.

Markdown is reported as a line total, in the same units as your sales figures. Three units of an item marked down $10 each shows as $30, so markdown on an order can be compared directly against revenue for the same period.

Why your past markdown numbers don't move

Markdown is calculated against your catalog as it stood on the day of the order, not as it stands today.

Decile keeps a history of every price change on every variant, and matches each order to the prices that were actually in force when it was placed. Editing a price today does not change what your past orders report, unlike in regular Shopify reporting. If you run a sale in October and end it in November, October's orders keep their markdown and November's don't, permanently.

Decile builds that history by checking your catalog daily and dating each change to Shopify's own "last updated" timestamp for the variant .

Frequently asked questions

Does this work for non-Shopify stores?

Markdown is a Shopify-specific measure, because it depends on the compare-at price. On other platforms these fields are left empty rather than filled with an estimate.

What happens to a very short sale?

Decile checks prices once a day. A promotion that starts and finishes between two daily checks won't be visible, and orders in that window will look like full-price sales. If flash sales are a significant part of your calendar, expect them to be under-reported.

How far back does this go?

Price history begins when your store was connected to Decile. For orders older than that, Decile assumes the earliest price it recorded for a variant was also its price at the time.

That's an assumption rather than a measurement, and it leans in a predictable direction: if a product's price has risen since tracking began, older orders for it will show markdown that didn't really happen, because an older and lower selling price is being compared against a newer and higher regular price. Since prices tend to rise over time, markdown on your pre-tracking history is likely overstated. The affected window shrinks every day and never grows, so this matters most for long-established stores and barely at all for recent periods.

Why does an order show a small markdown when nothing was on sale?

Shopify reports one "last updated" time per variant, covering any change — title, images, price. If you change a price and then edit something unrelated before the next daily check, the price change gets dated to the later edit. It's usually a matter of hours, and it can put a small markdown on orders placed in between.

Can markdown be negative?

Yes, though it's uncommon. A negative figure means an item sold for more than its recorded regular price, and it usually points at a price that changed between two daily checks.

What can I use markdown to answer?

Common questions include which products and categories are marked down most heavily, whether margin pressure is coming from markdown or from discount codes, what share of revenue in a period sold at full price, and whether customers acquired on marked-down products come back and buy at full price.

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.