> 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/getting-started/how-price-tracking-works.md).

# How price tracking works

How Omnibus Owl records price history, what triggers a new entry, and why tracking only starts from installation.

Understanding how Omnibus Owl records prices helps you get the most out of the app — and explains the one rule that surprises most merchants: **tracking starts the day you install.**

## Where price history is stored

Omnibus Owl keeps a private **price history** for every product variant, stored on the variant itself (in a Shopify metafield). Each entry records:

* the **date and time** of the price change,
* the **price and currency per market** — so multi-market and multi-currency stores show the right reference price to each shopper,
* an optional flag noting whether the entry came from a **discount** or was **added manually**.

Entries older than **365 days** are automatically cleaned up. The storefront widget and admin views use a rolling **30-day window** (adjustable in [Settings](/omnibus-owl/reference/settings.md)).

## What creates a new history entry

| Trigger                 | When it happens                                                                                                                                                                          |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Initial sync**        | When you first set up the app or turn on monitoring, Omnibus Owl reads every variant's current price (and its compare-at price, if one is set and greater than 0) and seeds the history. |
| **Price change**        | Whenever you edit a variant's price, Shopify notifies the app and it records the new price — but **only if the price actually changed**. Unchanged saves are ignored.                    |
| **Automatic discounts** | If [Native Discount Tracking](/omnibus-owl/advanced/native-discount-tracking.md) is enabled, starting or ending an eligible automatic discount records the discounted price too.         |
| **Manual entry**        | You can add or correct a historical price point yourself from the [admin price-history block](/omnibus-owl/core-features/price-history-in-admin.md).                                     |

{% hint style="info" %}
**Manual entries are display-only.** A price point you add by hand is never treated as the "current" price, so correcting your history can't accidentally trigger a false price-change event or Flow trigger. Manual entries must always be dated in the past.
{% endhint %}

## Why tracking starts at installation

Omnibus Owl can only record prices **after it's installed** — it has no way to know what your prices were before. This has two practical consequences:

* **You need \~30 days of tracking** before the widget can show a full, compliant 30-day lowest price. The dashboard shows your progress toward day 30.
* **Uninstalling resets tracking to zero.** If you remove the app, the price history is lost and rebuilding it starts from scratch.

{% hint style="warning" %}
Install early and keep the app active. The sooner you start, the sooner your lowest-price disclosures cover the full 30-day window the directive requires.
{% endhint %}

If you need history for prices that predate installation, you can [add those points manually](/omnibus-owl/core-features/price-history-in-admin.md) in the admin block.

## Behind the scenes (for the curious)

Price recording runs on a background pipeline, not inside the storefront request, so it never slows down your store. Shopify events are queued and processed asynchronously with automatic retries, and writes are batched to stay within Shopify's API limits. You don't need to manage any of this — it just works.
