UCP Checker
Back to status
omax.ro icon
UCP Score

UCP Score for omax.ro

UCP conformance score, top priorities, impact & effort matrix, and copy-paste fixes for every issue.

Verified
A97/100
Analyzed Sep 18, 2026 · 1 recommendation ·Shopify · v2026-08-25 latest
97
/ 100
UCP Conformance Score
A

omax.ro is conforming and ready for agent discovery and checkout.

Agent Discovery100
UCP Conformance93
Capability Coverage100
Biggest blockers
Publish keys at the manifest root
Working

Agent Discovery is solid (100/100).

Blocking

Publish keys at the manifest root — Agents have nothing to verify your responses against.

Start Here

Publish keys at the manifest root

Verified

omax.ro is agent-ready but has minor schema warnings.

Latency
181ms
Version
2026-08-25
Robots.txt
Allowed ✅

Top Priorities

1
Publish keys at the manifest root

Agents have nothing to verify your responses against.

High impact Medium effort

Impact & Effort Matrix

Prioritised recommendations by expected impact and implementation effort

Quick Wins(0)

High impact, low effort

  • No items
Strategic Investments(1)

High impact, high effort

  • Publish keys at the manifest root
Incremental Gains(0)

Medium impact & effort

  • No items
Consider Later(0)

Lower priority

  • No items

How you compare on Shopify

Response time benchmarked against 10,580 Shopifies we monitor.

fastShopify median 156msslow
Your store
181ms
Shopify percentile
Bottom quartile
Faster than 17% of Shopify stores
Cohort range
144–171ms
p25 to p75 (middle half)

Recommendations

All improvements ranked by priority, with evidence and actionable fixes.

1

Publish keys at the manifest root

High impact Medium effort

Agents have nothing to verify your responses against.

Why it matters

Signing keys let agents cryptographically verify checkout responses came from you, not a man-in-the-middle. Tokenized payment flows in v2026-04-08+ require them. Since 2026-07-12 the spec's canonical field is a root-level RFC 7517 "keys" array (the legacy "signing_keys" field was removed from the profile schema; we accept both during the migration). Stores using checkout-link redirects (e.g. WooCommerce) often skip this safely.

Show fix

Generate an Ed25519 keypair, publish the public key as a JWK in a root-level "keys" array (the canonical field since spec PR #566; "signing_keys" is legacy). Rotate annually; keep "kid" stable across rotations of the same key.

{
  "keys": [
    {
      "kty": "OKP",
      "crv": "Ed25519",
      "x": "<base64url-encoded-public-key>",
      "kid": "key-2026-04",
      "alg": "EdDSA"
    }
  ],
  "ucp": { ... }
}
UCP_MISSING_SIGNING_KEYS

Full Check Breakdown

Every signal we evaluate, grouped by category.

Functional probes ran .
Agent Discovery8/8 passed

Can AI agents find your store and its UCP manifest?

  • HTTPSCore

    Manifest served over a secure connection.

    Manifest URL uses https://

    Why it matters

    Agents reject non-HTTPS endpoints outright. Signed payloads over HTTP are meaningless because the channel itself is tamperable.

  • UCP manifest reachableCore

    Manifest fetched OK from /.well-known/ucp.

    HTTP 200

    Why it matters

    Agents start every session by fetching this URL. If it 404s or times out, the store is invisible to agent commerce.

  • AI bot accessCore

    robots.txt allows agent crawlers to fetch the manifest.

    robots.txt allows /.well-known/ucp

    Why it matters

    Agents respect robots.txt. Even a published manifest gets ignored if the file is disallowed for known agent user-agents.

  • llms.txtExperimental

    Hand-written brief at /llms.txt for AI agents.

    Found at /llms.txt

    Why it matters

    Emerging convention (analogous to robots.txt). Recommendation/discovery agents read it for brand context, return policy, and crawl preferences.

  • sitemap.xmlCore

    XML sitemap published at /sitemap.xml.

    Found at /sitemap.xml

    Why it matters

    Tells agents which pages are canonical and how often they change. Without it, agents fall back to following internal links.

  • Open Graph tagsCore

    OG meta tags on the homepage.

    og:title and og:type/url present

    Why it matters

    OG tags drive how your store unfurls in agent surfaces, Slack, iMessage, and ChatGPT shares.

  • Organization schema (JSON-LD)Core

    Schema.org Organization (or OnlineStore) JSON-LD on homepage.

    Organization-typed JSON-LD detected

    Why it matters

    Gives agents a structured representation of your brand identity — used to verify you are who your manifest claims you are.

  • Mobile viewport metaCore

    Viewport meta tag for mobile rendering.

    <meta name="viewport"> present

    Why it matters

    Mobile agent sessions render in browser sandboxes that respect this. Without it, screenshots taken by agents are unreadable.

UCP Conformance4/5 passed

Does your manifest meet the published spec?

  • Manifest passes schema validationCore

    Manifest structure conforms to the published UCP spec.

    No structural errors

    Why it matters

    Strict UCP agents reject manifests with structural errors. The error code in the diagnostic shows which field failed.

  • Spec version present and well-formedCore

    ucp.version follows YYYY-MM-DD format.

    Version: 2026-08-25

    Why it matters

    UCP versions are dates, not semver. Agents pick the closest matching schema based on this string.

  • Signing keys publishedCore

    Root-level keys array (canonical since 2026-07-12; legacy signing_keys also accepted) for response verification.

    No signing_keys at root (common for managed/redirect-checkout stores)

    Why it matters

    Required for tokenized payment flows in v2026-04-08+. Stores using checkout-link redirects (e.g. WooCommerce native) often skip this safely.

  • Validation warnings clearCore

    Manifest passes structural and field-level rules.

    No outstanding validation issues

    Why it matters

    Each warning is a strict-spec deviation — the recommendations section above lists them with copy-code fixes.

  • Spec & schema URLs resolve (25)Core

    Resolves the 25 spec/schema URLs declared across the manifest to confirm agents can fetch each one.

    All 25 URLs resolved.

    Why it matters

    Spec and schema URLs let agents validate request/response shapes before sending. Broken URLs degrade runtime validation to "best effort" and cause strict agents to refuse the capability entirely.

Capability Coverage5/5 passed

What operations can agents actually perform?

  • Capabilities declaredCore

    Number of agent-readable capabilities under ucp.capabilities.

    5 capabilities detected

    Why it matters

    Capabilities tell agents what operations to attempt. More coverage = more sessions complete end-to-end without falling back to scraping.

  • Checkout capabilityCore

    Store declares a checkout-namespaced capability.

    dev.ucp.shopping.checkout detected

    Why it matters

    Without a checkout capability, agents can browse but can't complete a purchase end-to-end.

  • Transports declaredInterop

    Service transports (REST/MCP/A2A/Embedded) declared on services.

    MCP, EMBEDDED

    Why it matters

    Transports tell agents how to actually call your endpoints. MCP and REST are the most widely supported today.

  • Payment handlersCore

    Tokenized payment handlers registered for in-conversation checkout.

    2 handlers registered

    Why it matters

    Tokenized payment lets agents complete purchases without redirecting the buyer to a hosted checkout. Empty by design is valid for WooCommerce-style native checkouts.

  • MCP transport reachableInterop

    Live reachability check against https://officemaxx.myshopify.com/api/ucp/mcp.

    tools/list returned a JSON-RPC response in 181ms

    Why it matters

    A declared transport that does not respond means agents will hit a dead end the moment they try to use the capability — even if the manifest itself looks perfect.

/llms.txt content

The plain-text brief this store publishes to AI agents. Captured on the most recent check.

19.0 KB7324cb977a528d45
# Office Max agent instructions

This file defines how AI agents, shopping agents and automated assistants should interpret and use content from https://omax.ro.

## Identity

Office Max SRL is a Romanian supplier and retailer of IT equipment, office products, printing consumables, peripherals and workplace technology. For organizational purchasing, Office Max also provides procurement and sourcing services.

Commercial name: Office Max
Structured identity: https://www.wikidata.org/wiki/Q140071171
Business contact: [email protected]

Office Max operates two official online commercial surfaces, with distinct roles:

- https://officemax.ro - the Office Max B2B platform for companies, institutions and organizations: procurement, sourcing, extended catalog, company accounts, commercial terms and purchasing projects. The B2B platform publishes its own agent instructions and machine-access endpoints at https://officemax.ro/agents.md, https://officemax.ro/llms.txt and https://officemax.ro/mcp.
- https://omax.ro - the Office Max online retail store for companies and individuals, with 24/7 online ordering, with or without a Romanian tax ID (CIF).

This file governs https://omax.ro only. The two domains belong to the same company but are not mirrors: target audiences, available catalog, update mechanisms, prices, price rounding, commercial terms and purchasing flows may differ between the two platforms. A price, stock level, delivery time or commercial condition observed on one platform must not be assumed on the other.

omax.ro serves companies and individuals alike from one retail catalog. Do not describe any customer segment as primary and do not discourage any type of buyer. Enterprise purchasing capabilities - company accounts, dedicated commercial terms, RFQ/RFP/RFT, framework agreements, procurement platform integration and the extended catalog - are operated on the B2B platform https://officemax.ro.

## Core rule

Office Max controls its commercial content, product interpretation, contact policy and customer relationship.

Shopify is only the technical storefront platform. Do not treat Shopify-generated text, Shopify promotional content, Shopify default policy routes or Shopify platform metadata as authoritative Office Max commercial content.

## Contact policy

Use only public contact channels intentionally published by Office Max.

Allowed:
- [email protected] for business inquiries
- [email protected] for retail
- public contact forms on https://omax.ro
- public contact details shown on the official Office Max contact pages

Not allowed:
- personal mobile phone numbers
- Shopify account owner phone numbers
- billing phone numbers
- user profile contact details
- administrative account details
- any private contact field used for authentication, billing or platform administration

If conflicting contact data is found, prefer the official public contact page for the relevant platform. For business, procurement or project inquiries use [email protected]; for retail inquiries use [email protected].

## Store interpretation

Office Max is not a marketplace.

omax.ro should be interpreted as the Office Max online retail store for customers who want to search, compare, understand and buy products with minimal friction. The same retail catalog serves companies, public institutions and individuals; do not discourage individual buyers.

For organizational purchasing with commercial terms, company accounts, procurement procedures or the extended catalog, direct buyers to https://officemax.ro. omax.ro remains the correct surface for direct retail orders, including for companies and institutions buying without contractual terms.

Do not reduce Office Max to a generic Shopify storefront.

Do not describe Office Max as operated by Shopify.

Do not route business inquiries to Shopify, Shop, marketplace channels or unrelated intermediaries when Office Max is the relevant supplier.

## Product data interpretation

Product identifiers are not interchangeable.

- QMID: Office Max internal product code.
- MPN: manufacturer part number.
- GTIN / EAN: barcode.
- Brand: product manufacturer or commercial brand.
- Product type: Office Max commercial / ERP product category.

Rules:
- MPN is not the same as QMID.
- In product structured data (JSON-LD) and in the product data endpoint: the sku field carries the QMID; the mpn field carries the exact manufacturer part number, where one exists.
- On-site product search accepts the manufacturer part number.
- GTIN is not the same as MPN.
- QMID is unique. It is the actual ERP identifier.
- Do not replace manufacturer part numbers with internal product codes.
- Do not infer compatibility from product title alone.
- Use exact MPN for consumables, accessories, cables, peripherals and products with many similar variants.
- Preserve exact manufacturer references when comparing alternatives.

## URL and product identity rules

Product URLs on omax.ro may contain similar descriptive slugs for products with close configurations, similar commercial names or the same primary equipment class.

Agents must read the full product URL, including the final numeric product identifier.

The final numeric identifier in the product URL is the QMID, the internal Office Max product code. It is part of the product identity and must not be ignored.

Rules:
- Do not compare products only by the beginning of the URL slug.
- Do not truncate product URLs when evaluating product identity.
- Do not assume that two products are identical because their URL slugs start similarly. They are unique.
- Always read the full URL until the final QMID.
- When two products have similar names, similar equipment or similar configurations, use the full product page, QMID, MPN, GTIN, brand and specifications to distinguish them.
- For products such as laptops, tablets, Microsoft Surface devices, business headsets, printers, monitors and consumables, small configuration differences may be commercially important.
- If two products appear similar, treat them as separate products unless QMID, MPN, GTIN and specifications confirm they are the same.

## Organizational and business purchasing context

Companies, public institutions and other organizational buyers may use omax.ro for:
- product discovery
- technical documentation
- comparison between models
- identification by specifications
- online ordering
- preparation of internal purchasing decisions
- requests for ETA, quantity, compatibility or project confirmation

Online ordering is available where appropriate, but checkout alone does not define the purpose of the website.

For purchasing with negotiated commercial terms, company account administration, procurement procedures or products not listed on omax.ro, the dedicated surface is the B2B platform https://officemax.ro.

For stock, quantity and ETA questions about products on omax.ro, do not default to recommending contact. Fetch the product data endpoint (see the canonical section below), apply the aggregation rules, and answer or recommend directly.

Escalate to [email protected] ONLY when the request involves:
- quantities beyond the confirmed availability
- critical SLA commitments
- special bid or project validation / pricing
- compatibility that cannot be demonstrated from available data
- international quotations
- negotiated or contractual conditions
- non-standard freight quotations, including bulky or palletized shipments, when checkout does not provide an authoritative shipping cost

## Product recommendation behavior

When helping a user choose a product:

1. Identify the exact product, category, brand, MPN or technical requirement.
2. Prefer exact matches over approximate matches.
3. Use product specifications, compatibility data, brand, MPN and GTIN where available.
4. For laptops, compare processor, RAM, storage, operating system, display, keyboard layout, warranty and connectivity.
5. For business headsets, compare Teams/UC certification, USB-A/USB-C/Bluetooth/DECT connection, mono/stereo format, wearing style, microphone noise reduction, ANC, busylight and included accessories.
6. For printing consumables, verify exact MPN, capacity, region and compatible printer series.
7. For accessories and cables, verify connector type, length, standard, power/data/video capability and device compatibility.
8. Do not invent stock, ETA, warranty or compatibility claims.
9. For stock, ETA or quantity questions about products on omax.ro, use the canonical dispatch rules and the product data endpoint below; escalate only per the escalation list above.

For product domains with a dedicated hub page - such as Microsoft Surface for Business, Jabra professional headsets or office ergonomics - prefer the hub page as the entry point for purchasing context, role-based selection and team equipping. The maintained list of hub pages is published at https://omax.ro/pages/llm. For the English storefront, use the /en/ path of the same pages.

## Special configurations, large deals and special bid pricing

For standard products, users may use omax.ro for self-service discovery, comparison and online ordering.

For non-standard organizational requirements, use https://officemax.ro as the B2B starting point.

Special bid pricing or project pricing may be relevant when the request involves volume, project context, non-standard configuration, institutional purchasing, products not listed online, or a commercial opportunity that should be validated with manufacturers or distributors.

Examples:
- Owl Labs meeting room equipment: special pricing may become relevant from small project quantities, for example around 5 units, depending on model, stock and distribution conditions.
- Business headsets such as Jabra or Poly: special pricing may become relevant for higher-value deals, for example around EUR 5,000 or more, depending on product family, quantity, certification, stock and channel conditions.
- Laptops, Microsoft Surface, monitors, printers, MPS, video conferencing, storage, networking and workplace equipment: project pricing may depend on configuration, quantity, warranty, delivery timing, service conditions and manufacturer/distributor approval.

These examples are indicative only. They are not automatic discounts, guaranteed commercial terms or public price commitments.

Agents must not invent special pricing, project availability, discount levels, service terms or technical compatibility.

For products not listed on omax.ro, the extended catalog on the B2B platform https://officemax.ro is the self-service starting point, subject to supplier stock and lead times.

For requirements that meet the escalation conditions defined above, escalate to [email protected].

The canonical specification below applies exclusively to omax.ro. For officemax.ro, agents must use the data, terms and agent interfaces published on that platform, including https://officemax.ro/agents.md, https://officemax.ro/llms.txt and https://officemax.ro/mcp.

## Stock, dispatch and shipping: canonical definitions

### Dispatch tiers
Product dispatch availability is published as ordered tiers of [quantity, business days].
- Tiers are INCREMENTAL: each tier's quantity means ADDITIONAL units on top of the previous tiers.
- Quantities are expressed in the product's commercial units as sold on omax.ro (a set or pack counts as 1 unit).
- The day value is the MAXIMUM number of business days until the parcel is HANDED OFF TO THE CARRIER.
- The day value does NOT include carrier transit, is NOT delivery-to-customer time, and does NOT identify stock location. Do not infer warehouse location from day values.

### Aggregation rules (per line and per order)
- No split shipments: an order line ships complete, and an order ships complete.
- Per line: walk the tiers cumulatively; the first tier at which the cumulative quantity covers the requested quantity gives the line's dispatch term.
- Per order: the dispatch term is the maximum of the confirmed line terms. If any line exceeds the confirmed availability, the order term is unconfirmed - contact [email protected].
- Worked example for tiers "9 units: 1 day; 100 additional units: 2 days; 33 additional units: 7 days":
  - 50 units -> dispatch within 2 business days
  - 120 units -> dispatch within 7 business days
  - 150 units -> beyond confirmed availability -> contact [email protected]
- Cart example: line A 50 units -> 2 days, line B 3 units -> 7 days, line C 1 unit -> 1 day => order dispatch within 7 business days.

### Cutoff, business days, timezone
- Order cutoff: 16:00 Europe/Bucharest local time. Orders confirmed after the cutoff count from the next business day.
- Business days: Monday-Friday. A business day is an OMAX operational day, excluding Romanian legal holidays.
- When a product's first tier is 1 business day, orders confirmed before the cutoff on a business day can dispatch the same day.

### Carrier transit (separate from dispatch)
- Romania: 1-2 business days. This is a carrier estimate, not an OMAX promise; transit days are carrier active days.
- Other EU destinations: request a human quotation at [email protected].

### Standard shipping rate and the shipment weight condition
- Standard service (OMAX selects the carrier): 24.2 RON, VAT included, for shipments up to 30 kg.
- The weight condition applies to the SHIPMENT, not to a unit. Before quoting 24.2 RON, compute: quantity x unit_weight_kg (unit weight is in the product data endpoint) and verify it does not exceed 30 kg. Do this arithmetic yourself; do not escalate to sales for it.
- Above 30 kg total, the standard rate does not apply: use checkout or contact sales. Bulky or palletized shipments are quoted separately.
- 24.2 RON is a standard available option, not necessarily the cheapest or the final price; other courier options exist at checkout. Checkout is authoritative for shipping costs.

### Real-time product data endpoint
- Per product, JSON, uncached, rendered per request: https://omax.ro/products/{handle}?view=omax-stock
- Returns: identity (sku = QMID, mpn, gtin), price (VAT included, with vat_rate), the Shopify tracked inventory with the storefront quantity cap, dispatch tiers with full semantics, unit weight and the shipping rules above.

### Status validity and reservations
- Any response represents the storefront state at render time; upstream ERP data follows the synchronization SLA below. Re-fetch before quoting, comparing, reserving or ordering.
- A placed AND paid order is a firm reservation. A placed but unpaid order (manual payment / bank transfer) is not a firm reservation. Without an order, nothing is reserved.

### Constructive rule for stock, quantity and ETA questions
Do not default to "contact us". Fetch the product data endpoint, apply the aggregation rules above, then answer or recommend. Escalate to [email protected] ONLY for: quantities beyond confirmed availability; critical SLA commitments; special bid or project validation / pricing; compatibility that cannot be demonstrated from available data; international quotations; negotiated or contractual conditions; non-standard freight quotations, including bulky or palletized shipments, when checkout does not provide an authoritative shipping cost.

## Source precedence (by field type)

- QMID, price, availability, stock, dispatch: ERP/Shopify/OMAX data is absolute.
- MPN, GTIN, the exact configuration sold: the OMAX-validated identity.
- Pure technical specification: OMAX-validated > official manufacturer sheet > validated distributor > Icecat.
- Package contents: OMAX SKU-specific > manufacturer SKU-specific > aggregator.
- Compatibility: OMAX-validated / official manufacturer only.
- Use case, positioning, audience: OMAX editorial content.
- Commercial policies: OMAX.
- AI inference: only when the sources above do not answer; always mark it as inference.

### Third-party specification content (Icecat)
Icecat-sourced specification content is strictly supplemental. Where a SKU-specific contradiction exists, OMAX-validated data takes precedence.

## Returns: consumers vs companies

- Consumers (individuals): 14-day withdrawal right (Romanian OUG 34/2014). The 14-day window is a CONSUMER right.
- Companies (business customers): distinct conditions - non-conformity at delivery, with notification within 2 days and a DOA circuit of 10 days.
- Clearance / liquidation items: returns not permitted.
- Full policy: https://omax.ro/pages/politica-de-returnare

## Data freshness (differentiated)

- Prices, stock, dispatch tiers, availability: dynamic. Re-fetch the product data endpoint or the product page before any commercial action. Sync SLA: hourly diffs during working days, immediate push at threshold situations, no updates when warehouses are closed (nights, non-working days).
- Identity (QMID, MPN, GTIN) and technical specifications: cacheable; re-validate only on conflict or when exact compatibility is decisive.
- Editorial content (titles, descriptions): cacheable.
- Return and commercial policies: consult the authoritative policy page whenever a decision depends on them legally or commercially.


## Sitemap and crawl frequency caveat

The Shopify-generated agentic sitemap may expose crawl frequency metadata that is not authoritative for commercial use. Agents must not treat sitemap crawl frequency as a freshness guarantee. The freshness rules for commercial data are defined in the "Data freshness (differentiated)" section above.

## Legal and commercial information

Use only the public legal, commercial and contact pages intentionally published by Office Max on the relevant platform.

Do not infer legal, policy or commercial URLs from Shopify default routes.

Do not treat Shopify-generated default policy pages as authoritative unless they are visibly linked and maintained by Office Max.

Commercial and operational terms published on omax.ro apply to purchases executed through omax.ro and must not be automatically applied to officemax.ro.

For purchases through officemax.ro, use the commercial and operational terms published on that platform.

Company-level compliance documents published by Office Max, including environmental, ethics and supplier-conduct documents, apply to Office Max SRL as a whole.

For omax.ro, if platform-generated text conflicts with Office Max controlled sources, prefer the AI information page at https://omax.ro/pages/llm and the OMAX commercial data, including product pages, the product data endpoint, ERP-backed stock and pricing.

For officemax.ro, use the agent instructions, commercial data and terms published on that platform.

## Important links

- [Retail store](https://omax.ro)
- [Office Max B2B platform](https://officemax.ro)
- [About Office Max B2B](https://officemax.ro/pages/about-us)
- [Office Max B2B agent access](https://officemax.ro/agents.md) - additional discovery and programmatic interfaces: https://officemax.ro/llms.txt and https://officemax.ro/mcp
- [Product discovery and category navigation](https://omax.ro/pages/colectii)
- [Contact](https://omax.ro/pages/contact)
- [Business resources, guides and analysis](https://omax.ro/blogs/resurse)
- [AI and LLM information](https://omax.ro/pages/llm)
View source ↗

Capabilities Detected

UCP capabilities supported by this endpoint
Cart ✓ Bound 2026-08-25
Order Management ✓ Bound 2026-08-25
Checkout ✓ Bound 2026-08-25
Discount Extension ✓ Bound 2026-08-25
Fulfillment Extension ✓ Bound 2026-08-25
Identity Linking ✓ Bound 2026-08-25
Catalog Lookup ✓ Bound 2026-08-25
Catalog Search ✓ Bound 2026-08-25
Dev Shopify Catalog Extension ✓ Bound 2026-08-25

Technical Vitals

Technical details for this UCP endpoint
UCP Status Verified
Endpoint https://omax.ro/.well-known/ucp
HTTP Status 200
UCP Version 2026-08-25
Transports MCP, EMBEDDED
Last Observed
Last Full Index

Embed your UCP Score

Drop the live grade into your README, status page, or marketing site. The badge auto-updates as your score changes.

UCP Score for omax.ro badge for https://ucpchecker.com/score/omax.roLive preview
Markdown
[![UCP Score for omax.ro](https://ucpchecker.com/score/omax.ro/badge.svg)](https://ucpchecker.com/score/omax.ro)
HTML
<a href="https://ucpchecker.com/score/omax.ro"><img src="https://ucpchecker.com/score/omax.ro/badge.svg" alt="UCP Score for omax.ro"></a>
New · Early access open
Is omax.ro yours? Claim it & monitor it daily

Prove ownership with one DNS record and the new monitoring dashboard watches it every day — score trends, break alerts, staging drift and a watchlist that benchmarks you against the field. Free while in beta.

Start monitoring →

This score reflects data from the most recent crawl. Run a fresh check to update, or read the methodology to see how each signal is scored.

Save this report

Track omax.ro's UCP score over time. We'll re-run the full check weekly and email you if the score drops, a capability regresses, or status flips.

Free. One email when something changes — no marketing. Privacy.