# Demand signals

Source: https://docs.tightly.io/help/demand/demand-signals
Reviewed: 2026-09-26

## The question this page answers

Which products need attention, what evidence explains the change, and what should I do next?

## What you see

::: shot page
:::

Demand signals compares traffic, sales and stock. Findings carry their own evidence; a sales acceleration shows units and stock cover rather than an estimated money figure.

The head shows **Explore in Ask**, the last nightly run's date and, once the run has loaded, **Flagged lines**. Check the run date before acting.

**The six findings** are Hidden gem, Dead stock, Pricing resistance, Ghost revenue, Shelf warmer and Cooling trend. Read one finding's money against another's with care: two of them price stock at what you paid (Dead stock at units on hand times unit cost, Cooling trend at unit cost) and four price demand at what you sell.

**The table** holds every flagged line, biggest money first, 25 at a time, with **Show {n} more**. Its columns are Product, Finding, Evidence, Money, Category and a menu. Evidence is two of the finding's own measures, such as views and add-to-carts over 30 days. Category is the line's capital quadrant, one of Winner, Traffic Driver, Sleeper and Bleeder, measured per warehouse: warehouses that disagree read Mixed, with the split on hover, and a line no warehouse has classified reads Not measured.

Above the table sit the search (by product, variant or SKU), the Category menu and the count of matching findings. An address that names a finding, as the link from Home does, narrows the table to that finding.

Each line's menu offers Why this line, then the action's door where one exists: Open in Smart Replenishment for Ghost revenue, Find a bundle for Dead stock and Shelf warmer, Open purchase orders for Cooling trend; then **Open the variant**. Pressing a row opens the same drawer.

**The drawer** names the line, its finding, why the finding flags it and its SKU. It shows the evidence, Money on this line with the formula behind it, and Evidence & calculations: the percentile sentence where every figure it needs was served, and each measure, or the word for its absence. Last comes the recommended action, one of Raise visibility, Liquidate, Test the price, Restock, Mark down and Cut the reorder, with its sentence.

**Sales accelerating** identifies a variant selling faster for a particular channel and warehouse, comparing the last seven completed days with the preceding three weeks expressed per week. **Review replenishment** opens the same variant and warehouse. No money estimate is shown for this finding.

Nothing is written here. There is no dismiss, snooze or resolve: each run replaces the last, so a finding leaves when the next run stops flagging it.

## What to do

1. Start at the top of the table, where the money is biggest, or pick a quadrant in **Category**.
2. Open **Why this line** before you act, to see the evidence behind the money.
3. Take the action's door: restock a ghost, raise a hidden gem's visibility, test the price, mark down or bundle a shelf warmer, cut the next order on a cooling trend, liquidate dead stock.
4. On Sales accelerating, press **Review replenishment** to check incoming supply before saving a buying decision.
5. Come back after the next run; there is no dismiss, snooze or resolve.

## When it is empty or failed

Three states stand before the table, each one sentence:

> Demand signals are not switched on for this tenant.

> Demand signals read your GA4 traffic, and no GA4 account is connected.

> The connected Google account doesn't have access to a GA4 account.

The first names no plan and no door: every plan holds demand signals by default, so a tenant reading it has had the grant switched off. The second carries **Connect GA4**; the third carries **Reconnect Google**, each opening Integrations.

Once the page is open, the head may say:

> Reading the book's signals.

A failed read offers Try again:

> The signals could not be read.

> Whether GA4 is connected could not be read.

Where the table itself fails, it reads, with Try again:

> The lines could not be read.

Where the table holds nothing, it reads 0 findings, with one of these on hover and a door to widen it again (Clear the search, All categories, Every finding):

> No open demand signals.

> No signals match that search.

> Nothing to work for {finding}.

> No matching finding carries {quadrant}.
