{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Confidence Score — kwery Docs","siteUrl":"https://docs.kwery.co","description":"The confidence score on every kwery result — five components, how it's computed, and how to use it."},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"confidence-score","__idx":0},"children":["Confidence score"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Every kwery result ships with a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["confidence score"]}," — a machine-readable answer to the"," ","question ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["\"how much should I trust this data point?\""]},". You don't have to guess whether a"," ","crawl landed on the right product, whether the offer list looks contaminated, or whether the"," ","data is stale: the result tells you, per result, on every result, at no extra cost."]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Rolling out."]}," Trust scoring is being enabled per source over the coming weeks, so the"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["trust"]}," object may not yet appear on your results. Build your pipeline to treat it as"," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["optional"]}," for now — when it is absent, nothing else about the result changes, and no"," ","action is needed on your side to start receiving it once your sources are live."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"id":"where","level":2,"__idx":1},"children":["Where the score appears "]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["trust"]}," object is attached to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["every"]}," result, in every delivery channel:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["batch downloads (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /job/{id}/download"]},"),"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["stream webhook deliveries,"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["polled stream results (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /stream/{id}/results"]},")."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["There is nothing to enable and no extra credits are consumed — trust scoring is part of"," ","producing the result."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"id":"object","level":2,"__idx":2},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["trust"]}," object "]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"\"trust\": {\n  \"score\": 0.81,\n  \"components\": {\n    \"identity\": 1.0,\n    \"completeness\": 0.85,\n    \"price_integrity\": 0.70,\n    \"offer_contamination\": 0.90,\n    \"freshness\": 0.55\n  },\n  \"flagged_offers\": [2, 5],\n  \"flagged_reasons\": { \"2\": [\"price\"], \"5\": [\"color\"] }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Meaning"},"children":["Meaning"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["score"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Overall confidence, ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["0"]}," (don't trust) to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["1"]}," (fully trusted). A weighted average of the five components — the exact arithmetic is shown below."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["components"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The five sub-scores that make up ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["score"]},", each also 0–1. They tell you ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["why"]}," a score is what it is."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flagged_offers"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Indices (into the result's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["offers[]"]}," array) of offers flagged as price outliers or, on Google ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["product"]}," lookups, as a different variant. Empty when nothing looked suspicious."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flagged_reasons"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Why each index was flagged: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["price"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["color"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["capacity"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["size"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pack"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["model"]},". Present only when ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flagged_offers"]}," is non-empty."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"id":"components","level":2,"__idx":3},"children":["The five components "]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Each component measures one independent dimension of result quality."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"identity--is-this-the-product-you-asked-for-weight-025","__idx":4},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["identity"]}," — is this the product you asked for? (weight 0.25)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["High when the returned product's name and brand match what you requested. For Google"," ","Shopping ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["key: product"]}," lookups, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["identity"]}," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["is the match confidence"]},": title similarity"," ","first, price proximity next (neutral when you send no price), brand presence last — or 1.0"," ","outright when your deeplink's retailer appears in the offer list. A result that only just"," ","cleared the match gate therefore shows an identity just above it, not a rounded-up default"," ","(see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/sources/google-shopping#how-matching-works"},"children":["how matching works"]},"). Low when the"," ","crawl landed on the wrong product, a variant you didn't ask for, or the wrong marketplace"," ","locale."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["On the first observation of a product on any other source there is nothing to compare"," ","against yet, and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["identity"]}," reports the neutral default ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["0.7"]},". It is a \"first time seen\""," ","value, not a doubt about the match; later observations of the same product score against it."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["When it's low:"]}," treat the whole result with suspicion — price data about the wrong"," ","product is worse than no data. Re-submit with more identifying data (on Google, use"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["key: product"]}," with title and deeplink filled in — see"," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/sources/google-shopping#gtin-plus-data"},"children":["Google Shopping"]},")."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"completeness--are-the-expected-fields-there-weight-020","__idx":5},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["completeness"]}," — are the expected fields there? (weight 0.20)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Scored against the set of fields we expect for that source (each source page documents its"," ","fields). Missing ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["critical"]}," fields — price and offers — are penalised extra; missing"," ","nice-to-have metadata (reviews, category names) costs less."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["When it's low:"]}," the marketplace page may have changed layout or served a reduced"," ","variant. The data present is still real; what's missing is missing, not zero."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"price_integrity--is-the-pricing-believable-weight-025","__idx":6},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["price_integrity"]}," — is the pricing believable? (weight 0.25)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Checks that the pricing is internally consistent (min ≤ avg ≤ max, offers clustered"," ","sensibly) and in line with what we've seen historically for this product. Drops when the"," ","offer set contains price outliers, or the average price jumps far from the previous"," ","snapshot."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["When it's low:"]}," look at ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flagged_offers"]}," first — usually one or two contaminated offers"," ","(wrong variant, accessory listed as the product, currency glitch on the seller side) explain"," ","it. A low ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["price_integrity"]}," with ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["no"]}," flagged offers means the whole price level moved —"," ","which may be a genuine market move (a sale) rather than an error."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"offer_contamination--what-fraction-of-the-offers-are-clean-weight-015","__idx":7},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["offer_contamination"]}," — what fraction of the offers are clean? (weight 0.15)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Defined as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["1 − (flagged offers / total offers)"]},". ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["1.0"]}," means no offer was flagged; a"," ","result with 10 offers and 2 flagged scores 0.8. An offer is flagged for one of two reasons:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["price"]}," — its price is far from the rest of the offer set (see"," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#flagged-offers"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flagged_offers"]}," in practice"]},");"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["variant"]}," — on Google ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["key: product"]}," results, its title contradicts ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["your"]}," title on a"," ","variant class: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["color"]}," (Black against a requested White), ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["capacity"]}," (256GB against"," ","128GB), ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["size"]}," (65\" against 55\"), ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pack"]}," (24-pack against 12-pack) or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["model"]}," (a sibling"," ","model code such as T3016US against T3017US). Colour words are recognised in English and"," ","German; the other classes are language-free. A class is only checked when your title"," ","carries a token of it, and only contradicts when the offer's title carries one too — an"," ","offer that names no colour is not flagged, and neither is one that names both."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flagged_reasons"]}," (keyed by offer index) says which applied."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["When it's low:"]}," the aggregates (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["price_min"]}," in particular) may be dragged by junk"," ","offers or by the wrong variant. Recompute your own minimum over the non-flagged offers —"," ","the indices in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flagged_offers"]}," tell you exactly which to exclude."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"freshness--how-recent-is-the-data-weight-015","__idx":8},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["freshness"]}," — how recent is the data? (weight 0.15)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Highest for a just-completed crawl, decaying as the data ages. Results assembled with"," ","cached data (within your ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["max_age"]}," window) carry the age of the ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["original"]}," observation —"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["freshness"]}," is honest about that recency. A cached \"not found\" also decays: the longer"," ","since we last confirmed a product is absent, the less certain that answer is."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["When it's low:"]}," you asked for (or accepted) cached data. If you need current data,"," ","lower ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["max_age"]}," on the request to force a fresh crawl."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"id":"computation","level":2,"__idx":9},"children":["How ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["score"]}," is computed "]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["score"]}," is the weighted average of the five components. The weights sum to 1.0, so the"," ","score always lands in 0–1. For the example above:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"score = identity·0.25 + completeness·0.20 + price_integrity·0.25\n      + offer_contamination·0.15 + freshness·0.15\n\n      = 1.0·0.25 + 0.85·0.20 + 0.70·0.25 + 0.90·0.15 + 0.55·0.15\n      = 0.25 + 0.17 + 0.175 + 0.135 + 0.0825\n      = 0.81\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The weights are fixed per API version and published here — if we ever rebalance them, that"," ","is an announced, versioned change."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"id":"using","level":2,"__idx":10},"children":["Using the score "]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Treat ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["score"]}," as a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["routing signal"]},", not a hard gate:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Score"},"children":["Score"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Reading"},"children":["Reading"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Suggested handling"},"children":["Suggested handling"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["≥ 0.8"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["High confidence"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ingest directly."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["0.5 – 0.8"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Usable with caveats"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ingest, but spot-check high-value SKUs. Check which component drags the score."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["< 0.5"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Low confidence"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Review before trusting; consider re-crawling with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["max_age: 0"]}," or more identifying data."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["And when a specific component is the problem:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Low component"},"children":["Low component"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Likely cause"},"children":["Likely cause"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"What to do"},"children":["What to do"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["identity"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Wrong product matched"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Re-submit with richer input (Google: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["key: product"]},"). Don't use the prices."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["completeness"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Layout change / reduced page"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Use what's present; expect the gap, don't infer zero."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["price_integrity"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Outlier offers or a price jump"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Check ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flagged_offers"]},"; if empty, verify against a second source before repricing."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["offer_contamination"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Junk offers in the list"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Exclude the flagged indices, recompute your aggregates."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["freshness"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Cached / aged data"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Lower ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["max_age"]}," if you need current data (a fresh crawl is billed as usual)."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"id":"flagged-offers","level":2,"__idx":11},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flagged_offers"]}," in practice "]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flagged_offers"]}," is non-empty, those offers are priced far enough from the median of"," ","the offer set to look like data errors or contamination — a €4.90 \"offer\" among €200"," ","listings is almost never the product you're pricing against. The offers are ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["still"," ","included"]}," in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["offers[]"]}," (we report, you decide); the flags plus ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["offer_contamination"]}," ","let you exclude them deterministically:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"usable_offers = offers.filter((o, i) => !trust.flagged_offers.includes(i))\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Automated repricing against ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["price_min"]}," should always use the flag-filtered minimum."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"id":"faq","level":2,"__idx":12},"children":["Questions we get "]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Does trust cost credits?"]}," No. It's computed on every result as part of the standard"," ","lookup — you pay the source's normal ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/pricing#source-weights"},"children":["credit weight"]},", trust"," ","included."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Does a low score mean the result failed?"]}," No — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["success"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["trust"]}," are independent."," ","A result can be successful (the lookup completed) and still warrant review. Failed"," ","lookups are never billed and carry no trust object."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Can I filter by score in the API?"]}," Filtering is client-side by design: you always get"," ","the data plus the score, and your pipeline decides. This keeps the billing model simple"," ","(you pay for the lookup, not for our opinion of it)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Is the score comparable across sources?"]}," Yes — the components and weights are"," ","identical for every source, so 0.8 means the same thing on"," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/sources/idealo"},"children":["Idealo"]}," and on ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/sources/walmart"},"children":["Walmart"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["The GTIN matched exactly, so why is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["identity"]}," 0.7?"]}," On a product we see for the first"," ","time there is no earlier observation to compare against, and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["identity"]}," reports the"," ","neutral default ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["0.7"]},". It is \"first time seen\", not a doubt about the match; the next"," ","observation of that product scores against the first. Google ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["key: product"]}," lookups are"," ","the exception — there identity is the match confidence itself."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Should I gate on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["score"]}," or on a component?"]}," For \"is this the exact product\" decisions,"," ","gate on ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["components.identity"]}]},". Identity is one of five components, so a weak match"," ","with perfect pricing and freshness can still score 0.9 overall. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["score"]}," is a routing"," ","signal for data quality as a whole."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Every offer is a different variant — is that caught?"]}," On Google ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["key: product"]}," ","results, yes, within limits: an offer whose title contradicts yours on colour, capacity,"," ","size, pack count or a sibling model code is flagged (see ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["offer_contamination"]},"), with"," ","the class named in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flagged_reasons"]},". It cannot catch an offer whose title omits the"," ","variant, and it does not know which distinctions matter to you — keep your own check on"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["offers[].name"]}," for those."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Is \"not found\" the same as \"no offers\"?"]}," No. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["not found"]}," means the marketplace does"," ","not know the product. A product with no purchasable offer right now comes back as a"," ","normal result with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["offers_count: 0"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["buybox: null"]},"; see"," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/errors-and-limits#per-result-fields"},"children":["Errors & limits"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"next-steps","__idx":13},"children":["Next steps"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/audit-and-provenance"},"children":["Audit & provenance"]}," — the full crawl trail behind each result."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/change-events"},"children":["Change events"]}," — get notified when watched products change."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/self-serve#cached-re-serves-and-freshness"},"children":["Self-serve → Cached re-serves"]}," — how"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["max_age"]}," interacts with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["freshness"]},"."]}]}]},"headings":[{"value":"Confidence score","id":"confidence-score","depth":1},{"value":"Where the score appears","id":"where","depth":2},{"value":"The trust object","id":"object","depth":2},{"value":"The five components","id":"components","depth":2},{"value":"identity — is this the product you asked for? (weight 0.25)","id":"identity--is-this-the-product-you-asked-for-weight-025","depth":3},{"value":"completeness — are the expected fields there? (weight 0.20)","id":"completeness--are-the-expected-fields-there-weight-020","depth":3},{"value":"price_integrity — is the pricing believable? (weight 0.25)","id":"price_integrity--is-the-pricing-believable-weight-025","depth":3},{"value":"offer_contamination — what fraction of the offers are clean? (weight 0.15)","id":"offer_contamination--what-fraction-of-the-offers-are-clean-weight-015","depth":3},{"value":"freshness — how recent is the data? (weight 0.15)","id":"freshness--how-recent-is-the-data-weight-015","depth":3},{"value":"How score is computed","id":"computation","depth":2},{"value":"Using the score","id":"using","depth":2},{"value":"flagged_offers in practice","id":"flagged-offers","depth":2},{"value":"Questions we get","id":"faq","depth":2},{"value":"Next steps","id":"next-steps","depth":2}],"frontmatter":{"seo":{"title":"Confidence Score — kwery Docs","description":"The confidence score on every kwery result — five components, how it's computed, and how to use it."}},"lastModified":"2026-10-02T10:44:21.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/trust","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}