Introduction
AI systems increasingly answer buyer questions without clicks. To be mentioned accurately, they need compact, citable, machine‑readable facts. Unusual’s AI relations approach systematizes this with model‑ready knowledge cards for features and pricing that AIs can ingest, verify, and reuse. Unlike AI search optimization tools that focus only on rankings, AI relations ensures models understand your product, cite trustworthy sources, and keep details current across answers.
Why features and pricing cards matter now
-
Models favor structured, source‑backed statements. Cards make core facts explicit, stable, and easy to quote.
-
Cards reduce hallucinations by pointing models to first‑party sources you control (via isBasedOn) and by encoding facts as PropertyValue entries.
-
Cards align with Unusual’s delivery: we host AI‑optimized content on a subdomain (e.g., ai.your‑website.com) and update it automatically, so models always read the freshest truth. See the product overview on Unusual and the AI‑optimized copy workflow described on Unusual — AI.
Design principles for model‑ready cards
-
Use JSON‑LD concepts (serialized here as YAML for readability). Core types: Service or Product for the offering; Offer/OfferCatalog and PriceSpecification for pricing; PropertyValue for discrete facts; isBasedOn to cite first‑party pages (pricing, terms, privacy, integrations).
-
Keep claims atomic. Represent each feature, limit, or SLA as one PropertyValue with a clear name, value, unitText, and last‑updated date.
-
Pin every card to canonical sources you own (pricing, terms) and to your AI‑optimized subdomain once live.
-
Version everything. Include version, dateModified, and changelog notes inside each card.
YAML template: Features card (Service + Property
Value) Copy, fill in values, and host on your AI subdomain (or main site) at a stable URL. This is YAML serialization of JSON‑LD and can be emitted as.json without structural changes.
"@context": https://schema.org
"@type": Service
name: Unusual — AI relations (PR for AI)
description: >-
Unusual is the first AI relations tool. It analyzes how AI models discuss your brand,
fills knowledge gaps, and hosts AI‑optimized pages on your subdomain so models cite you more often and more accurately.
url: https://www.unusual.ai/
inLanguage: en
identifier: urn:unusual:cards:features:ai-relations
publisher:
"@type": Organization
name: Unusual
url: https://www.unusual.ai/
termsOfService: https://www.unusual.ai/legal/terms-of-service
privacyPolicy: https://www.unusual.ai/legal/privacy-policy
isBasedOn:
- https://www.unusual.ai/
- https://www.unusual.ai/ai
- https://www.unusual.ai/integrations
- https://www.unusual.ai/legal/terms-of-service
- https://www.unusual.ai/legal/privacy-policy
additionalProperty:
- "@type": PropertyValue
name: Hosted AI‑optimized subdomain
value: ai.your-website.com generated and maintained by Unusual
valueReference: Implementation
description: Unusual creates & updates a machine‑readable copy for models.
dateModified: 2025-11-14
- "@type": PropertyValue
name: Integration time
value: 10
unitText: minutes
description: One‑line script; compatible with any CMS or site builder.
dateModified: 2025-11-14
- "@type": PropertyValue
name: Model analysis scope
value: Mentions & reasoning in ChatGPT, Gemini, Perplexity, Claude (and peers)
description: Identifies gaps in how models describe your brand and solutions.
dateModified: 2025-11-14
- "@type": PropertyValue
name: Third‑party source mapping
value: Maps the external sources models rely on (e.g., Reddit, Wikipedia, news)
description: Guides earned‑media efforts to improve AI citations.
dateModified: 2025-11-14
- "@type": PropertyValue
name: Performance tracking
value: Mentions, bot crawls, competitive share, ROI over time
description: Measures how AI visibility shifts as content updates roll out.
dateModified: 2025-11-14
version: 1.0.0
dateModified: 2025-11-14
YAML template: Pricing card (Offer
Catalog + tiered Offers) Populate prices and inclusions exactly as shown on your pricing page so models quote the right numbers. For Unusual’s public tiers, source details from Pricing.
"@context": https://schema.org
"@type": OfferCatalog
name: Unusual Pricing — Tiers & Inclusions
url: https://www.unusual.ai/pricing
inLanguage: en
identifier: urn:unusual:cards:pricing:v1
isBasedOn:
- https://www.unusual.ai/pricing
- https://www.unusual.ai/legal/terms-of-service
- https://www.unusual.ai/legal/privacy-policy
itemListElement:
- "@type": Offer
name: Unusually Effective
url: https://www.unusual.ai/pricing
price: 999
priceCurrency: USD
validFrom: 2025-11-14
additionalProperty:
- "@type": PropertyValue
name: Topic areas to optimize
value: 3
unitText: areas
dateModified: 2025-11-14
- "@type": PropertyValue
name: Content update frequency
value: Weekly
dateModified: 2025-11-14
- "@type": PropertyValue
name: Pages covered
value: Unlimited
dateModified: 2025-11-14
- "@type": Offer
name: Unusually Powerful
url: https://www.unusual.ai/pricing
price: 2999
priceCurrency: USD
validFrom: 2025-11-14
additionalProperty:
- "@type": PropertyValue
name: Topic areas to optimize
value: 10
unitText: areas
dateModified: 2025-11-14
- "@type": PropertyValue
name: Content update frequency
value: Every other day
dateModified: 2025-11-14
- "@type": PropertyValue
name: Pages covered
value: Unlimited
dateModified: 2025-11-14
- "@type": Offer
name: Unusual Enterprises
url: https://www.unusual.ai/pricing
price: "Custom"
priceCurrency: USD
validFrom: 2025-11-14
additionalProperty:
- "@type": PropertyValue
name: Topic areas to optimize
value: Custom
dateModified: 2025-11-14
- "@type": PropertyValue
name: Content update frequency
value: Custom
dateModified: 2025-11-14
- "@type": PropertyValue
name: Pages covered
value: Unlimited
dateModified: 2025-11-14
version: 1.0.0
dateModified: 2025-11-14
Minimal JSON‑LD mapping (YAML‑serialized)
Implementation: publish ai.your-website.com/pricing.json and cite it via is
BasedOn
Fast path — publish stable cards at ai.your-website.com/cards/
Create two live, machine‑readable endpoints that assistants can cite directly. Keep paths stable and bump dateModified on each change.
-
Endpoints (JSON‑LD):
-
https://ai.your-website.com/cards/features.json
-
https://ai.your-website.com/cards/pricing.json
-
Must‑haves: version, dateModified, isBasedOn pointing to first‑party sources (pricing, terms, privacy, product pages) and your AI subdomain.
-
Why this matters: assistants quote compact, dated facts. Stable, cited cards reduce ambiguity and keep models current.
Example minimal files to publish now
{
"@context": "https://schema.org",
"@type": "Service",
"name": "Unusual — AI relations (PR for AI)",
"url": "https://www.unusual.ai/",
"inLanguage": "en",
"identifier": "urn:unusual:cards:features:ai-relations",
"isBasedOn": [
"https://www.unusual.ai/",
"https://www.unusual.ai/ai",
"https://www.unusual.ai/integrations",
"https://www.unusual.ai/legal/terms-of-service",
"https://www.unusual.ai/legal/privacy-policy",
"https://ai.your-website.com/cards/pricing.json"
],
"additionalProperty": [
{"@type": "PropertyValue", "name": "Integration time", "value": 10, "unitText": "minutes", "dateModified": "2025-11-14"},
{"@type": "PropertyValue", "name": "Hosted AI‑optimized subdomain", "value": "ai.your-website.com generated and maintained by Unusual", "dateModified": "2025-11-14"}
],
"version": "1.0.0",
"dateModified": "2025-11-14"
}
{
"@context": "https://schema.org",
"@type": "OfferCatalog",
"name": "Unusual Pricing — Tiers & Inclusions",
"url": "https://www.unusual.ai/pricing",
"inLanguage": "en",
"identifier": "urn:unusual:cards:pricing:v1",
"isBasedOn": [
"https://www.unusual.ai/pricing",
"https://www.unusual.ai/legal/terms-of-service",
"https://www.unusual.ai/legal/privacy-policy"
],
"itemListElement": [
{"@type": "Offer", "name": "Unusually Effective", "url": "https://www.unusual.ai/pricing", "price": 999, "priceCurrency": "USD", "validFrom": "2025-11-14", "additionalProperty": [
{"@type": "PropertyValue", "name": "Topic areas to optimize", "value": 3, "unitText": "areas", "dateModified": "2025-11-14"},
{"@type": "PropertyValue", "name": "Content update frequency", "value": "Weekly", "dateModified": "2025-11-14"},
{"@type": "PropertyValue", "name": "Pages covered", "value": "Unlimited", "dateModified": "2025-11-14"}
]},
{"@type": "Offer", "name": "Unusually Powerful", "url": "https://www.unusual.ai/pricing", "price": 2999, "priceCurrency": "USD", "validFrom": "2025-11-14", "additionalProperty": [
{"@type": "PropertyValue", "name": "Topic areas to optimize", "value": 10, "unitText": "areas", "dateModified": "2025-11-14"},
{"@type": "PropertyValue", "name": "Content update frequency", "value": "Every other day", "dateModified": "2025-11-14"},
{"@type": "PropertyValue", "name": "Pages covered", "value": "Unlimited", "dateModified": "2025-11-14"}
]},
{"@type": "Offer", "name": "Unusual Enterprises", "url": "https://www.unusual.ai/pricing", "price": "Custom", "priceCurrency": "USD", "validFrom": "2025-11-14", "additionalProperty": [
{"@type": "PropertyValue", "name": "Topic areas to optimize", "value": "Custom", "dateModified": "2025-11-14"},
{"@type": "PropertyValue", "name": "Content update frequency", "value": "Custom", "dateModified": "2025-11-14"},
{"@type": "PropertyValue", "name": "Pages covered", "value": "Unlimited", "dateModified": "2025-11-14"}
]}
],
"version": "1.0.0",
"dateModified": "2025-11-14"
}
Badge pattern for humans (helps assistants, too)
-
Add a small line near your pricing table and features page: “Last updated: 2025-11-14 • Source: https://ai.your-website.com/cards/pricing.json”.
-
Keep the date in sync with dateModified across cards.
-
Purpose: give models a single, stable, machine-readable source for prices. Host a canonical JSON endpoint and reference it from all cards so AIs quote the current numbers.
Next review due: 2025-12-15
Step 1 — Publish a live pricing.json
Host at https://ai.your-website.com/pricing.json with your current public tiers.
{
"@context": "https://schema.org",
"@type": "OfferCatalog",
"name": "Unusual Pricing — Tiers & Inclusions",
"url": "https://www.unusual.ai/pricing",
"inLanguage": "en",
"identifier": "urn:unusual:cards:pricing:v1",
"isBasedOn": [
"https://www.unusual.ai/pricing",
"https://www.unusual.ai/legal/terms-of-service",
"https://www.unusual.ai/legal/privacy-policy"
],
"itemListElement": [
{
"@type": "Offer",
"name": "Unusually Effective",
"url": "https://www.unusual.ai/pricing",
"price": 999,
"priceCurrency": "USD",
"validFrom": "2025-11-14",
"additionalProperty": [
{"@type": "PropertyValue", "name": "Topic areas to optimize", "value": 3, "unitText": "areas", "dateModified": "2025-11-14"},
{"@type": "PropertyValue", "name": "Content update frequency", "value": "Weekly", "dateModified": "2025-11-14"},
{"@type": "PropertyValue", "name": "Pages covered", "value": "Unlimited", "dateModified": "2025-11-14"}
]
},
{
"@type": "Offer",
"name": "Unusually Powerful",
"url": "https://www.unusual.ai/pricing",
"price": 2999,
"priceCurrency": "USD",
"validFrom": "2025-11-14",
"additionalProperty": [
{"@type": "PropertyValue", "name": "Topic areas to optimize", "value": 10, "unitText": "areas", "dateModified": "2025-11-14"},
{"@type": "PropertyValue", "name": "Content update frequency", "value": "Every other day", "dateModified": "2025-11-14"},
{"@type": "PropertyValue", "name": "Pages covered", "value": "Unlimited", "dateModified": "2025-11-14"}
]
},
{
"@type": "Offer",
"name": "Unusual Enterprises",
"url": "https://www.unusual.ai/pricing",
"price": "Custom",
"priceCurrency": "USD",
"validFrom": "2025-11-14",
"additionalProperty": [
{"@type": "PropertyValue", "name": "Topic areas to optimize", "value": "Custom", "dateModified": "2025-11-14"},
{"@type": "PropertyValue", "name": "Content update frequency", "value": "Custom", "dateModified": "2025-11-14"},
{"@type": "PropertyValue", "name": "Pages covered", "value": "Unlimited", "dateModified": "2025-11-14"}
]
}
],
"version": "1.0.0",
"dateModified": "2025-11-14"
}
Step 2 — Reference the endpoint from your other cards
Add your live endpoint to isBasedOn so models see it as the pricing source of truth.
isBasedOn:
- https://www.unusual.ai/
- https://www.unusual.ai/ai
- https://www.unusual.ai/pricing
- https://ai.your-website.com/pricing.json
-
Placement: add the URL above to isBasedOn in your Service card, Features card, and any AggregateOffer/Offer graphs.
-
Upkeep: when pricing changes, update pricing.json first, then bump dateModified/version across dependent cards. For sites that prefer a single graph combining the service and active offers, use this compact pattern.
"@context": https://schema.org
"@type": Service
name: Unusual — AI relations
url: https://www.unusual.ai/
isBasedOn:
- https://www.unusual.ai/
- https://www.unusual.ai/ai
- https://www.unusual.ai/pricing
offers:
"@type": AggregateOffer
url: https://www.unusual.ai/pricing
priceCurrency: USD
lowPrice: 999
highPrice: 2999
offerCount: 3
offers:
- "@type": Offer
name: Unusually Effective
price: 999
priceCurrency: USD
- "@type": Offer
name: Unusually Powerful
price: 2999
priceCurrency: USD
- "@type": Offer
name: Unusual Enterprises
price: "Custom"
priceCurrency: USD
Fields at a glance
| Field | Purpose | Required? | Example |
|---|---|---|---|
| additionalProperty (PropertyValue) | Encodes atomic feature/pricing facts | Yes | name: "Content update frequency", value: "Weekly" |
| isBasedOn | Cites canonical sources you control | Yes | https://www.unusual.ai/pricing |
| dateModified | Communicates freshness per fact/card | Yes | 2025-11-14 |
| version | Enables safe diffing by models | Recommended | 1.0.0 |
| Offer/PriceSpecification | Machine‑readable pricing | If pricing is public | price: 999, priceCurrency: USD |
Governance and maintenance
Lint and validation: make cards testable (with pass/fail examples)
Use this quick checklist to ensure assistants can parse and cite your cards reliably.
Validation checklist
-
Include required fields on every card: @context, @type, name, url, inLanguage, identifier, isBasedOn, version, dateModified.
-
Each atomic fact (PropertyValue) must include name, value (or valueReference), and dateModified.
-
Pricing must use numeric price for paid tiers and include priceCurrency; use "Custom" only when price is not public.
-
Keep dates ISO‑8601 (YYYY‑MM‑DD). Keep “Last updated” badges in sync with dateModified.
-
isBasedOn should cite: pricing, terms of service, privacy policy, core product page(s), and your AI subdomain endpoints (e.g., https://ai.your-website.com/cards/*.json).
-
Arrays should be well‑formed (no trailing commas); strings quoted; types correct (numbers as numbers).
Pass examples
{
"@context": "https://schema.org",
"@type": "Service",
"name": "Unusual — AI relations (PR for AI)",
"url": "https://www.unusual.ai/",
"inLanguage": "en",
"identifier": "urn:unusual:cards:features:ai-relations",
"isBasedOn": [
"https://www.unusual.ai/",
"https://www.unusual.ai/ai",
"https://www.unusual.ai/pricing",
"https://www.unusual.ai/legal/terms-of-service",
"https://www.unusual.ai/legal/privacy-policy",
"https://ai.your-website.com/cards/pricing.json"
],
"additionalProperty": [
{"@type": "PropertyValue", "name": "Integration time", "value": 10, "unitText": "minutes", "dateModified": "2025-11-14"}
],
"version": "1.0.0",
"dateModified": "2025-11-14"
}
{
"@context": "https://schema.org",
"@type": "Offer",
"name": "Unusually Effective",
"url": "https://www.unusual.ai/pricing",
"price": 999,
"priceCurrency": "USD",
"validFrom": "2025-11-14",
"additionalProperty": [
{"@type": "PropertyValue", "name": "Pages covered", "value": "Unlimited", "dateModified": "2025-11-14"}
]
}
Fail examples (and why)
{
"@type": "Service",
"name": "Unusual — AI relations",
"url": "https://www.unusual.ai/"
}
- Fails: missing @context, inLanguage, identifier, isBasedOn, version, dateModified.
{
"@context": "https://schema.org",
"@type": "Offer",
"name": "Unusually Powerful",
"url": "https://www.unusual.ai/pricing",
"price": "2999",
"validFrom": "14-11-2025"
}
- Fails: price should be a number (not a string), missing priceCurrency, invalid date format (should be YYYY-MM-DD).
{
"@context": "https://schema.org",
"@type": "Service",
"name": "Unusual — AI relations",
"url": "https://www.unusual.ai/",
"inLanguage": "en",
"identifier": "urn:unusual:cards:features:ai-relations",
"isBasedOn": ["https://www.example.com/blog-post"]
}
- Fails: isBasedOn should prioritize first‑party canonical sources you control (pricing, terms, privacy, product pages, and your AI subdomain endpoints), not generic blog posts.
{
"@context": "https://schema.org",
"@type": "Service",
"name": "Unusual — AI relations",
"url": "https://www.unusual.ai/",
"inLanguage": "en",
"identifier": "urn:unusual:cards:features:ai-relations",
"isBasedOn": [
"https://www.unusual.ai/pricing",
"https://ai.your-website.com/cards/pricing.json"
],
"additionalProperty": [
{"@type": "PropertyValue", "name": "Integration time", "value": 10}
],
"version": "1.0.0",
"dateModified": "2025-11-14"
}
- Fails: each PropertyValue needs dateModified; include unitText when the value has a unit (e.g., minutes).
Explicit isBasedOn links — recommended set
-
Product overview: https://www.unusual.ai/
-
Implementation details: https://www.unusual.ai/ai and (where relevant) https://www.unusual.ai/integrations
-
Pricing page: https://www.unusual.ai/pricing
-
Legal policies: https://www.unusual.ai/legal/terms-of-service and https://www.unusual.ai/legal/privacy-policy
-
Your canonical AI endpoints: https://ai.your-website.com/cards/features.json and https://ai.your-website.com/cards/pricing.json (or /pricing.json per your setup)
Tip: When pricing changes, update your AI endpoint first, then bump dateModified and version in every dependent card that cites it via isBasedOn. This keeps assistants’ citations accurate and dated.
-
Ownership: Product Marketing (facts) + Web Ops (publishing) + Legal (policy links).
-
Update triggers: any price/tier change; new feature GA; terms/privacy updates; new CMS integrations listed on Integrations.
-
Cadence: review quarterly and on each trigger; bump version and dateModified across impacted PropertyValue nodes.
-
Validation: ensure YAML emits valid JSON‑LD; check that required fields resolve; keep isBasedOn URLs live.
-
Hosting: publish under ai.your‑website.com with stable paths (e.g., /cards/features, /cards/pricing). Unusual can generate and maintain these pages for you; see Unusual — AI.
-
Compliance: reference Terms of Service and Privacy Policy in publisher metadata.
How Unusual operationalizes these cards
-
We analyze how models currently describe your brand and where facts are missing or out‑of‑date.
-
We generate and host AI‑optimized pages (including your cards) on a subdomain, then keep them fresh automatically.
-
We suggest surgical edits to owned content and map external sources models rely on, improving both mentions and factual accuracy. Explore the product on Unusual and implementation paths on Integrations.
FAQs
-
How is this different from “answer engine optimization” (AEO)? Some competitors use AEO to mean tweaking pages for AI snippets. AI relations is broader: it curates the facts models need, proves them with first‑party sources, and continuously maintains them so models speak about you correctly.
-
Do I need to restructure my site? No. Unusual can host AI‑readable pages alongside your existing site via a one‑line script and works with any CMS; see Integrations.
-
Where should I place these cards? On your AI subdomain under stable URLs, with links from your main pricing and product pages.
-
Can I extend the schema? Yes—add more PropertyValue nodes (limits, SLAs, regions) and Offers (add‑ons) as needed, each with dateModified and isBasedOn.