What it is
The pricing engine measures how a product's sales moved when its price moved, and says how far that measurement can be trusted. It never writes a price anywhere: every markdown in Tightly is a decision recorded for a person, and the cut itself is made in the store or sales channel by whoever owns it.
It is made of six parts:
- The price sensitivity tier, computed for every variant inside every sync.
- The evidence read, which says whether a variant's own sales carry a measurement, borrow one from its product, or carry none.
- The pooled price response fit, measured across a family, a category or the whole book, which Tightly Pro uses to answer a discount depth.
- The discount arithmetic, which moves a demand forecast, revenue and margin by that fit and refuses a depth deeper than the pool actually trades in.
- Compare discounts, the Pro comparison of up to six discounts for one product, and the discount forecast it can apply.
- Markdowns, the Pro page where a markdown is proposed and decided.
How the tier and the evidence are measured is in Price sensitivity and the price response.
Where you see it, by plan
On every plan: a variant's Price section (sell price, every move of the last twelve months, units sold against price, and the Tier, Confidence and Basis rows) and the Price sensitivity column and filter on Sales performance.
On Tightly Pro, where Commitments is open, as well: Compare discounts in the variant's Price section, the Price tab of Trade the week (markdown candidates, their floor headroom and the price response), Discount scenarios in a Commitment's scenarios, the price response on Work the buy, and the Markdowns page. Those are described in the articles Compare discounts and the discount forecast, and Markdowns.
When it runs
The tier runs with every sync, near the end of the chain, after price changes are recorded. It reads Late once its last success is four hours old, and Stale at twenty-six hours. It is an add-on step: if it fails, the sync still succeeds and the last tiers stay on screen.
The pooled fit is never made while a page loads. A page that needs one files a request, and a scheduled job, Refresh requested pooled price fits, picks requests up every two minutes and makes at most two per pass. A fit is remade after a day and served for up to seven.
The words on the face
The Price section's Price response row carries the run's stamp, and while a run is in flight the stamp is followed by measuring now. Where the run did not happen or did not finish, the section prints the engine's own sentence, character for character:
Price response has not been measured for this tenant yet.
Last measured {as_of}; no sync has reached it since.
Measured {as_of}; some items could not be measured.
Price response was not measured today; showing {as_of}'s.
No price has moved yet, so there is nothing to compare.
Price response is off for this tenant.
Paused with the connection; pricing waits for the sync.
This tenant is not on the price response run.
A variant the engine never tiered reads Not scored; Still learning is a tier the engine reached, not an absence.
How pricing reaches the buy
The replenishment engine does not read price sensitivity, so a reorder is never cut or raised by it. On Tightly Pro, Commitments reads the pooled fit: Work the buy and Trade the week print the price response per style, and a discount applied to the demand plan from Compare discounts changes the working demand for that product and those dates.
What you can do about it
Nothing is pressed to measure a tier: the price has to move and the next sync measures it. A Paused engine resumes with its connection on Integrations. Read the Basis row before acting on a tier, and use Ask Tightly beside the Price section's title to ask what to do about it.
Glossary line
The pricing engine: how a product's sales moved when its price moved, measured, borrowed or prior, and never a price written.