Privacy Policy
Last updated: August 30, 2026
PriceCrater is an independent price-observation site. We watch retailer prices, keep records of what we observe, and publish deals with the evidence attached. We built this policy the way we build everything else: plainly, and without overclaiming.
What we collect
- Nothing you must give us to browse. Reading PriceCrater requires no account, no email, and no personal information.
- Standard server logs. Our hosting provider (Cloudflare) processes technical data such as IP addresses and request logs to serve and secure the site, as any host does.
- Aggregate Shop measurement. PriceCrater counts whether a visit for which Live has a current, actionable Shop link available activates one. The visit counts as eligible whether or not the link was in the viewport or remained visible under the visitor's search or a future filter.
- Email, if you choose to give it. If we offer alerts or a newsletter and you sign up, we store the email address you provide, use it only to send what you asked for, and remove it when you unsubscribe.
What we don't do
- We don't sell or rent personal information. To anyone.
- We don't use an analytics cookie, cross-site tracker, persistent browser identifier, or third-party analytics SDK.
- We don't require accounts to see prices or evidence.
How Shop measurement works
A cryptographically random visit nonce exists only in the memory of one open page, for no more than 24 hours. It is never stored in a cookie or browser storage. Our first-party API stores only its SHA-256 hash where a visit-level key is needed. The measurement database contains exactly these durable record types:
- Activation records. Approved site and Worker versions, measurement contract, experience, operational epoch, surface, and activation window. These operational provenance records do not identify a visit and have no scheduled expiry.
- Admission-claim rows. The nonce hash, a random server claim token, internal decision state, and server timestamps make concurrent first requests share one rate-limit decision. Pending claims expire logically after five seconds and completed decisions after 60 seconds.
- Visit receipts. The nonce hash, approved contract, experience, operational epoch, surface, Eastern cohort day, coarse viewport bucket, exposure flag, first accepted button, title, or image action category, and expiry. Logical receipts expire within 48 hours.
- Daily aggregate counts. Eligible visits, timed exposures, Shop activations, first-action categories, finalization state, and health state by the approved dimensions. These count rows expire after 400 days.
- Bounded request-reason counts. Server-observed request outcomes grouped only by Eastern day and a bounded reason. These count rows expire after 400 days.
- Bot-coverage counts. Daily counts of accepted requests where Cloudflare's verified-bot field was present or absent. These count rows expire after 400 days.
- Measurement-health failures. Eastern day, bounded operational reason, and first-observed time. These records expire after 400 days.
- Maintenance receipts. Scheduled and completed times, finalized cohort day, operational dimensions, bounded deletion counts, completion state, and health result. This existing receipt can also carry the one-time first-aggregate proof: a PENDING, PASS, or FAIL status; a bounded reason; and, for PASS or FAIL, canonical JSON limited to approved dimensions, counts, states, and evaluation time plus its SHA-256. It stores no visit identifier and is not a ninth record type. Ordinary maintenance receipts expire after 400 days; the single terminal first-aggregate PASS or FAIL receipt is retained indefinitely as operational proof.
The measurement database stores no IP address, user-agent string, referrer, search, product, retailer, URL, location, exact screen size, raw nonce, or raw request body. The edge rate limiter uses the connecting IP only to compute a transient 60-second abuse-control key; PriceCrater stores no IP-derived key in D1. Its random claim token appears only in the short-lived admission-claim row described above.
Expired admission claims and visit receipts are deleted from their active tables in less than 72 hours. Cloudflare's rolling D1 recovery history may retain deleted database state for up to 30 days under PriceCrater's paid production plan; PriceCrater does not query that history for measurement. After a visit receipt is deleted, no visit-level measurement row remains.
Global Privacy Control, Do Not Track, preview and test traffic, internal checks, and recognized automation are excluded from Shop measurement.
Retailer links
When you click through to a retailer, you leave this site and that retailer's own privacy policy applies. Some retailer links are affiliate links that may pass a standard referral identifier to the retailer or an affiliate network so a purchase can be credited to us; see our affiliate disclosure. Commission never determines which deals appear, how they rank, or the truth labels they carry.
Cookies
The site works without marketing or analytics cookies. Any cookies present are limited to what our hosting or security layer requires to operate, and, if you subscribe to something, to remembering that you did.
Data requests
If you believe we hold personal information about you and want it corrected or deleted, email accounts@pricecrater.com and we'll handle it.
Changes
If this policy changes, the date above changes with it. We won't quietly weaken it.