{
    "id": 1081617,
    "title": "Product filters and constraints: the decaf fruit tea problem",
    "slug": "product-filters-and-constraints",
    "type": "page",
    "url": "https://teas.co.uk/wiki/product-filters-and-constraints/",
    "modified": "2026-11-15T09:38:49+00:00",
    "excerpt": "A filter selects records that meet a condition. A constraint is a requirement the answer must respect. If you ask for decaf green tea, \u201cgreen tea\u201d and\u2026",
    "content_text": "A filter selects records that meet a condition. A constraint is a requirement the answer must respect. If you ask for decaf green tea, \u201cgreen tea\u201d and \u201cdecaffeinated\u201d are two conditions, not just words to scatter through a search result.\nWhy a tea shop cares: \"fruity, no caffeine, under 20p a cup\" is three conditions, and the right tea has to meet all three.\nThe shop can check those conditions against recorded product attributes. That gives a clearer basis for an answer than guessing from the product name.\nThe decaf example\nOn 15 November 2026, a read-only search of teas.co.uk with the green-tea and decaf filters returned Tetley Decaf Pure Green Tea and Twinings Pure Green Decaf Tea. Both replies identified their caffeine status as decaffeinated.\nThat does not mean caffeine-free. It also does not turn a fruity green tea into a fruit infusion. The decaf fruit tea story explains why the names can mislead, and decaf versus caffeine-free explains the product distinction.\nEssential requirements and preferences\nSome requirements are firm: a budget ceiling, a requested drink type or an instruction to avoid caffeine. Others may be preferences: a familiar brand, a lighter taste or a certain pack format. Which is which depends on what the customer actually said. \u201cNo tea bags\u201d is a firm requirement even if a search tool sometimes treats format as relaxable.\nIf nothing fits, the answer should say so. If an alternative relaxes a preference, it should name the change. It should not quietly replace a requirement with something convenient to sell.\nLabels are not evidence for everything\nFacets is another word for the named attributes used in filtering, such as type, format and caffeine status. Typed data means the value has an expected form: a number, a yes/no value or an allowed category, for example.\nThose labels help, but they need accurate records. A blank value is not \u201cno\u201d. \u201cNot claimed\u201d is not \u201cfalse\u201d. A flavour description is a judgement, while a pack quantity is a measurable attribute. A good answer distinguishes them.\nKeep the whole request\nLee calls a request containing the customer's situation, budget and requirements Premium Intent. Preserving the whole request helps the answer respect what matters, including whether an extra purchase is needed at all.\nRead intent led value adding for that final step: explain what helps, what is optional and where to stop spending. The complete payload describes the structured information an assistant can use to build the answer.\n\nIn Lee's words: the decaf fruit tea problem\nThis part is Lee Samuel Tucker's own account, first published as a news story on 15 November 2026 and moved here so the subject has one home.\nFruit flavour does not make a green tea caffeine-free. AI-generated explanatory illustration; check the ingredients and caffeine information for the actual product.\nEvery condition in a request is a constraint an answer has to respect, and a fruity cup without caffeine is the clearest example I know.\nMy favourite tea is Tetley Green Tea with Mango and Passion Fruit. It is fruity, and it is neither rare nor expensive.\nIt also contains caffeine. It is a green tea with fruit flavours, not a fruit infusion, and our record for it says so in two plain fields: the kind is green tea, and the caffeine status is \"contains caffeine\". Anyone who read \"mango and passion fruit\" on the box and assumed it was caffeine free would be wrong.\nThat is the decaf fruit tea problem in a single box. The name on the front says one thing. What is inside can say another.\n\nOne request, five conditions\nImagine someone asks an assistant for a decaf fruit tea to drink in the evening, something that tastes of real fruit, at no more than about 20p a cup. That is an illustrative request, not a real customer, but it is a very ordinary one.\nCount the conditions. It has to be fruity. It has to be without caffeine, or very nearly. It has to suit the evening. It should taste of fruit rather than sweet flavouring. It has a budget per cup.\nSmall as it is, that request is an example of what I call Premium Intent. Five conditions in one ordinary sentence is Premium Intent at its most everyday.\nTea names make this harder than it sounds. \"Fruit tea\" is used loosely. Some fruit teas are built on green or black tea and contain caffeine. Some drinks sold alongside herbal infusions contain caffeine too: yerba mate is one, and our records list it that way. And \"decaf\" and \"caffeine free\" are not the same thing. Decaffeinated tea started as real tea and had most of its caffeine removed, so a small amount remains. A caffeine free infusion, such as rooibos or most herbal blends, never had any to begin with. If caffeine matters to you, that difference matters, and the pack is always worth checking.\n\nEvery condition is a constraint\nHere is the principle I keep coming back to. Every condition in a request is a constraint the answer has to respect.\nA keyword search for \"decaf fruit tea\" matches words. It will happily return a fruit flavoured green tea, because the words fit. An answer that respects constraints works from facts instead. It looks at what each product actually is and leaves out the ones that break a condition, however well they are named or however much was spent promoting them.\nThe way I put it is this. Premium Intent is not just more words. It is more truth constraints. The fuller the request, the more there is to get right, and the more it rewards a shop that has written its facts down properly.\nAdvertising cannot fix this, because advertising cannot change what is in the box. A brand can pay to be seen for \"decaf fruit tea\". It cannot pay to make a green tea caffeine free.\n\nWhat teas.co.uk actually records\nThis is the part I can show you, because it is built and live.\nEvery product has structured data, facts stored with labels that software can read, behind its ordinary page: identifiers, prices, availability, source links and price per cup. Alongside that, our product records carry the kind of drink and a caffeine status, with decaffeinated and caffeine free kept as separate values.\nSince 6 October 2026, an AI assistant can, with the customer's approval, search, compare and fill a basket through the teas.co.uk MCP server, the shop's connection for assistants built on the open Model Context Protocol. The customer pays on teas.co.uk. That search tool treats conditions by how firm they are. Kind of drink, caffeine, labels such as organic or vegan, and price limits are never dropped. Softer preferences, such as time of day, strength, format and whether it suits milk, can be relaxed one at a time if nothing matches, and the reply says which one was relaxed. That is the tool's default, not permission to ignore the customer: if someone says plainly \"no bags\", or names an exact format or budget, that is a firm requirement too, and the right answer keeps it or says that nothing matched. I think that is the honest way to do it. The assistant can tell the customer \"nothing matched everything, so I let go of this one\" rather than quietly ignoring part of what they said.\nA search of our catalogue for fruit teas with low or no caffeine, run while I was writing this piece on 14 November 2026, returned only infusions recorded as caffeine free. My mango and passion fruit green tea was not among them, which is exactly right. I ran it again on 15 November 2026 with the 20p a cup limit added, and every result was still an infusion recorded as caffeine free, Loyd Mixed Berries among them.\nThe Ask API at teas.co.uk, the service software uses to ask the shop questions, declares premium_intent_supported, and asks callers to send the whole request, with its context, constraints, budget and what success looks like, rather than a keyword summary. It asks for the Premium Intent, not the shorthand. A summary like \"decaf fruit tea\" throws away three of the five conditions before the shop ever sees them.\n\nPrice per cup is a constraint too\nBudget is the condition people forget is a fact. Pack prices mislead. Our two decaffeinated pure green teas are a good example: one box holds 20 bags and the other holds 50, so their prices per cup are very different even though the boxes sit close together on the shelf: Twinings Pure Green Decaf and Tetley Decaf Pure Green.\nI worked out how to calculate price per cup from the price and the quantity in a pack, so it updates as products change. Because it is stored as a number, the search tool can respect \"no more than 20p a cup\" as firmly as it respects \"no caffeine\". A budget is a constraint like any other.\nPrice per cup is not the whole budget, though. It tells you the value across a box; the total with delivery tells you whether this order fits what you said you could spend. The Premium Intent entry works through one request with both, including what a good answer does when nothing fits every condition.\n\nWhat this is not\nNot every part of a request is a fact. \"Tastes of real fruit\" is a matter of taste, and our flavour notes help without settling it. Some questions will always need judgement, or a sample in the post.\nOur records can also be wrong. When they are, the job is to correct them, and Under the Hood keeps a public record of what we measure and what we have got wrong.\nWhat I am sure of is the principle. A shop that writes down what each tea really is can respect the conditions a customer gives it, and say so plainly when nothing fits them all. That is a better way to win a sale than paying to be seen.",
    "contentSignals": "ai-train=yes, search=yes, ai-input=yes",
    "links": {
        "apiCatalog": "https://teas.co.uk/.well-known/api-catalog",
        "llmsTxt": "https://teas.co.uk/llms.txt",
        "mcp": "https://teas.co.uk/mcp",
        "mcpSetupGuides": "https://teas.co.uk/ai/",
        "mcpCard": "https://teas.co.uk/.well-known/mcp/server-card.json",
        "primaryAgenticRouteAuthority": "https://teas.co.uk/.well-known/teas-primary-agentic-route-authority.json"
    }
}