> For the complete documentation index, see [llms.txt](https://native-app-co.gitbook.io/omnibus-owl/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://native-app-co.gitbook.io/omnibus-owl/advanced/native-discount-tracking.md).

# Native Discount Tracking (Beta)

Capture prices from Shopify automatic discounts — which normally stay invisible to price tracking — so your 30-day lowest price stays accurate.

{% hint style="warning" %}
Native Discount Tracking is a **beta** feature. It's off by default. Enable it under **Omnibus Lowest Price → Settings** only if you run automatic discounts and want them reflected in your price history.
{% endhint %}

## The problem it solves

Under the Omnibus Directive, the "lowest price in the last 30 days" must reflect prices that were genuinely available to all customers — including prices set by **automatic discounts**, not just prices you type into a variant.

But there's a catch: when you run an **automatic discount** (rather than editing the variant price directly), Shopify does **not** notify apps of a price change. Left alone, that discounted price would be invisible to price tracking. **Native Discount Tracking captures it.**

## What gets tracked

To stay compliant and accurate, only discounts that count as a price "available to all customers without restriction" are recorded. In this version that means **automatic basic discounts** that:

* apply to **all customers** (no customer segments or specific-customer targeting),
* have **no minimum** requirement (no minimum spend or quantity),
* apply **per item** (not an order-level fixed amount),
* have a value and product/collection targets.

**Not tracked:** discount codes, tiered/conditional discounts, and any customer-specific offers — because those aren't prices available to everyone.

## How it works

When enabled, Omnibus Owl:

* records the **effective discounted price** for each affected variant (per market) when an eligible discount becomes active — including for discounts that target all products, specific collections, or specific products;
* writes a **revert entry** restoring the normal price when the discount ends or is deleted;
* handles **scheduled** discounts — it waits until the discount actually starts, then records it, and reverts it when it ends;
* runs a regular **reconciliation** in the background to catch scheduled starts/ends and backfill anything missed, since Shopify doesn't send webhooks for those.

When you turn the feature **off**, the app reverts any currently-tracked discounts and cleans up, so your history returns to normal prices.

{% hint style="info" %}
Enabling this feature triggers an initial backfill of your currently-active eligible discounts, and requests the extra Shopify permission needed to read discounts. Give it a few minutes to catch up after switching it on.
{% endhint %}
