Segments
What it is
A segment is the customer's buying-behaviour pattern — not demographics, but how they buy. The segment influences which recommendation rules the engine prefers for the customer (e.g. a diet-locked customer is not casually offered substitutes).
The pet store segments
| Segment | Pattern |
|---|---|
| Routine repeater | buys the same products at a steady rhythm |
| Diet lock-in | the pet is on a fixed diet (e.g. veterinary food) — brand/recipe must not switch lightly |
| Promo-elastic value seeker | activates primarily on offers |
| Premium pet-parent | chooses the higher price and quality tier |
| Explorer / novelty buyer | happily tries new products and brands |
| Sensitive-care owner | special food/care needs (allergies, sensitive digestion) |
| Multi-pet household | purchases for several animals (e.g. cat and dog together) |
| High-risk return / complaint | historically many returns or complaints — kept on conservative content |
How to interpret it
- The segment is derived from purchase history and carries a confidence level — a customer with little history may still shift.
- Segment and engagement state are different things: the segment says how the customer buys, the state says how recently.
- A customer with no purchases has no segment yet (cold start tier 0).
Common misreadings
- "Can I reassign segments myself?" — not directly; the segment is the engine's computation. You can, however, create Smaily segments from Audience filters for campaign targeting — that is a separate layer under your control.
Brand loyalty
Every night the engine computes each customer's brand shares from the last 365 days of purchases: each brand's share of the customer's spend (only products carrying a brand tag count). The loyalty score (0–1) is the favourite brand's share, dampened when the customer has fewer than three brand-tagged orders — a single purchase does not make anyone loyal. A score ≥ 0.8 counts as brand-loyal.
The result syncs to the Smaily contact as rec_loyalty_brand_top
(favourite brand) and rec_loyalty_score — you can build brand segments
in Smaily on these fields (e.g. "everyone whose favourite brand is Brit
Care").
Technical background
Definitions: industry-packs/pet/segments.yaml (8 segments, ET/EN labels,
detection hints). Customer fields: customers.segment +
segment_confidence. The segment is one of the scoring factors (spec
§6.1-6.5 segmentBias). Brand loyalty: customers.loyalty_signals
(brands + score), computed in the nightly calibration cron
(line_total-weighted shares, 365 days; score = top share ×
min(1, orders/3)).
Last updated: 2026-07-07