# SegmentPredicate

object type

The dynamic-membership rule — AND across supplied axes, OR within an axis; a consumer missing an axis' fact never matches it; exclusions subtract after matching. All seven ratified axes are live (the tag axis joined with Consumer tag attachment).

## Fields

| Field | Type | Notes |
| --- | --- | --- |
| `interests` | [String](/types/#scalars) `[String!]` | Match ANY listed interest against the consumer's interests (trim+case-fold equality). |
| `loyaltyTier` | [SegmentLoyaltyTierAxis](/types/SegmentLoyaltyTierAxis/) | Match an ACTIVE loyalty membership of the named program at ANY listed tier. |
| `consentPurposeIds` | [ID](/types/#scalars) `[ID!]` | Match a GRANTED consent for ANY listed purpose (withdrawn never matches). |
| `preferredLogicalFacilityIds` | [ID](/types/#scalars) `[ID!]` | Match the consumer's preferred store (favorite LogicalFacility) in the list. |
| `birthdayWithinDays` | [Int](/types/#scalars) | Match a birthday (month-day of dateOfBirth) within the NEXT N days of the refresh clock (1..366; today counts; Feb-29 celebrates Mar-1 in non-leap years). |
| `purchase` | [SegmentPurchaseAxis](/types/SegmentPurchaseAxis/) | Match purchase history (RFM — the completions-fed stats read-model): the inner facts AND-compose; a consumer with no completed purchase never matches. |
| `tagIds` | [ID](/types/#scalars) `[ID!]` | Match a consumer carrying ANY listed Tag (the staff-curated attachment set on the Consumer); an untagged consumer never matches. |
