The Revenue AI Report
REMOTE · WWW.THEREVENUEAIREPORT.COM · SCANNED SEP 25
Independent weekly on AI in B2B revenue teams: articles, frameworks, skills, playbooks, datasets.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security80
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability80
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2593 tokens (~112/item across 23 items; 23 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management10
- Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage99
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 98% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 23 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 24 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the The Revenue AI Report MCP server?
The Revenue AI Report is a hosted endpoint at https://www.therevenueaireport.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · www.therevenueaireport.com
claude mcp add --transport http com-therevenueaireport-the-revenue-ai-report 'https://www.therevenueaireport.com/mcp'
{
"mcpServers": {
"com-therevenueaireport-the-revenue-ai-report": {
"url": "https://www.therevenueaireport.com/mcp"
}
}
} {
"servers": {
"com-therevenueaireport-the-revenue-ai-report": {
"type": "http",
"url": "https://www.therevenueaireport.com/mcp"
}
}
} [mcp_servers.com-therevenueaireport-the-revenue-ai-report] url = "https://www.therevenueaireport.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-therevenueaireport-the-revenue-ai-report": {
"type": "remote",
"url": "https://www.therevenueaireport.com/mcp",
"enabled": true
}
}
} openclaw mcp add com-therevenueaireport-the-revenue-ai-report --url 'https://www.therevenueaireport.com/mcp' --transport streamable-http
mcp_servers:
com-therevenueaireport-the-revenue-ai-report:
url: "https://www.therevenueaireport.com/mcp" {
"McpServers": {
"com-therevenueaireport-the-revenue-ai-report": {
"Transport": "http",
"Url": "https://www.therevenueaireport.com/mcp"
}
}
} assistant mcp add com-therevenueaireport-the-revenue-ai-report -t streamable-http -u 'https://www.therevenueaireport.com/mcp'
{
"mcpServers": {
"com-therevenueaireport-the-revenue-ai-report": {
"type": "http",
"url": "https://www.therevenueaireport.com/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 25 Sept 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 23 Sept 26 +7
- Authorization: unverified → partial ▲ security
- Tool “search_tools” rewrote its description, which is the text the model reads security
- Stability: unverified → 0.03 ▲ functional
- Tool “get_dataset” now declares an output schema ▲ functional
- Tool “get_framework” now declares an output schema ▲ functional
- Tool “get_playbook” now declares an output schema ▲ functional
- Tool “get_prompt” now declares an output schema ▲ functional
- Tool “get_publication” now declares an output schema ▲ functional
- Tool “get_publication_info” now declares an output schema ▲ functional
- Tool “get_research” now declares an output schema ▲ functional
- Tool “get_resource” now declares an output schema ▲ functional
- Tool “get_skill” now declares an output schema ▲ functional
- Tool “get_tool” now declares an output schema ▲ functional
- Tool “list_datasets” now declares an output schema ▲ functional
- Tool “list_frameworks” now declares an output schema ▲ functional
- Tool “list_playbooks” now declares an output schema ▲ functional
- Tool “list_prompts” now declares an output schema ▲ functional
- Tool “list_publications” now declares an output schema ▲ functional
- Tool “list_research” now declares an output schema ▲ functional
- Tool “list_resources” now declares an output schema ▲ functional
- Tool “list_reversals” now declares an output schema ▲ functional
- Tool “list_skills” now declares an output schema ▲ functional
- Tool “lookup_term” now declares an output schema ▲ functional
- Tool “search_publications” now declares an output schema ▲ functional
- Tool “search_site” now declares an output schema ▲ functional
- Tool “search_tools” now declares an output schema ▲ functional
- First check of Tool coverage: 100 functional
- “search_tools” reworded the description of “maturity” cosmetic
- 22 Sept 26 68
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 25 Sept 2026 · Probed https://www.therevenueaireport.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=www.therevenueaireport.com | CN=WE1,O=Google Trust Services,C=US | 16 Aug 2026 | 14 Nov 2026 | ECDSA 256 | ECDSA-SHA256 | ea0baaede8e8218413e12ecc2a5b7f22 |
| SANs: www.therevenueaireport.com | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of www.therevenueaireport.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| therevenueaireport.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=31536000; includeSubDomains |
| x-content-type-options | nosniff |
| referrer-policy | strict-origin-when-cross-origin |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://www.therevenueaireport.com/mcp | Verified | 200 | |
| http (plaintext) | http://www.therevenueaireport.com/mcp | HTTPS enforced | 301 | https://www.therevenueaireport.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
get_dataset Get dataset ~45
Read one dataset's description, contents, full column schema, method notes, FAQs, and download URL.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Dataset slug, e.g. proof-gap-index. |
| Name | Type | Req | Description |
|---|---|---|---|
| dataset | object | yes | – |
No examples provided.
get_framework Get framework ~51
Read one framework in full, including its definition, sections, related pages, and FAQs.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Framework slug, e.g. proof-gap, scale, lopaft, eight-seats. |
| Name | Type | Req | Description |
|---|---|---|---|
| framework | object | yes | – |
No examples provided.
get_playbook Get playbook ~61
Read one playbook in full: every step with its owner, tool, pitfalls, and definition of done, plus the KPIs that prove it worked.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Playbook slug, e.g. ai-meeting-notes-l1. |
| Name | Type | Req | Description |
|---|---|---|---|
| playbook | object | yes | – |
| relatedSkills | array | yes | – |
No examples provided.
get_prompt Get prompt ~45
Get the full copy-ready text of one prompt from The Revenue AI Report prompt library, by slug.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Prompt slug, e.g. prep-for-follow-up. |
| Name | Type | Req | Description |
|---|---|---|---|
| prompt | object | yes | – |
No examples provided.
get_publication Get publication ~52
Get the full text of one published article from The Revenue AI Report by its slug, including body paragraphs and FAQs.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Article slug, e.g. evaluating-sales-gtm-ai-tools. |
| Name | Type | Req | Description |
|---|---|---|---|
| article | object | yes | – |
No examples provided.
get_publication_info About the publication ~33
Get an overview of The Revenue AI Report: its mission, editorial pillars, audience, sponsorship policy and article count.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| articleCount | number | yes | – |
| audience | string | yes | – |
| cadence | string | yes | – |
| description | string | yes | – |
| mission | string | yes | – |
| name | string | yes | – |
| pillars | array | yes | – |
| sponsorship | string | yes | – |
| url | string | yes | – |
No examples provided.
get_research Get research theme ~79
Read one research theme in full: the opening argument, every chart with its numbers, the findings, the named sources with publisher, sample size, and caveats, and anything still unconfirmed. Cite the source line, not just the chart.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Research theme slug, e.g. proof-gap or task-fallacy. |
| Name | Type | Req | Description |
|---|---|---|---|
| theme | object | yes | – |
No examples provided.
get_resource Read any page ~103
Read the indexed text of any public resource on The Revenue AI Report by its site path or full URL, whatever the type: article, research theme, framework, skill, prompt, playbook, dataset, tool profile, archive issue, ledger row, or definition. Use this when search_site returns a path you want to read in full.
| Name | Type | Req | Description |
|---|---|---|---|
| path | string | yes | Site path or full URL, e.g. /playbooks/ai-meeting-notes-l1. |
| Name | Type | Req | Description |
|---|---|---|---|
| matches | array | – | – |
| path | string | – | – |
| resource | object | – | – |
No examples provided.
get_skill Get skill ~63
Read one skill in full, including the copy-ready quick prompt, inputs, process, decision rules, quality checks, limitations, worked example, and the downloadable SKILL.md URL.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Skill slug, e.g. build-ideal-customer-profile. |
| Name | Type | Req | Description |
|---|---|---|---|
| relatedPlaybooks | array | yes | – |
| relatedTools | array | yes | – |
| skill | object | yes | – |
No examples provided.
get_tool Get AI tool profile ~115
Get one vendor profile in full from The Revenue AI Report AI tool library, by slug or by name. Returns the directory record plus the depth layer: why the adoption effort level is what it is, owning seat and journey stage, buy checks, published case studies, documented discrepancies between vendor claim and independent reporting, corporate status changes, and any Reversal Ledger record naming this vendor.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | – | Tool name, used when the slug is unknown. |
| slug | string | – | Tool slug, e.g. clari. |
| Name | Type | Req | Description |
|---|---|---|---|
| adoption | object | yes | – |
| buyChecks | array | yes | – |
| corporateStatus | – | yes | – |
| evidence | object | yes | – |
| faqs | array | yes | – |
| placement | object | yes | – |
| relatedSkills | array | yes | – |
| reversalLedger | array | yes | – |
| tool | object | yes | – |
No examples provided.
list_datasets List datasets ~40
List the open datasets published by The Revenue AI Report, with what each contains, its column schema, and the download URL. Most are free CSV downloads.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| bundleUrl | string | yes | – |
| datasets | array | yes | – |
| datePublished | string | yes | – |
| total | number | yes | – |
No examples provided.
list_frameworks List frameworks ~69
List the frameworks published by The Revenue AI Report, including the canonical concepts (Proof Gap, Optimization Theater, Reversal Ledger, Eight Seat Read) and the named operating frameworks in the library such as SCALE, OAR, LOPAFT, and the L1 to L6 AI Maturity Ladder.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| frameworks | array | yes | – |
| seats | array | yes | – |
No examples provided.
list_playbooks List playbooks ~143
Browse the GTM AI playbook library from The Revenue AI Report. Each playbook is a sequenced workflow with owner, tool, pitfalls, definition of done, and KPIs, mapped to a team and to an L1 to L6 AI maturity level. Filter by team, maturity level, or keyword.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Default 30. |
| maturity | integer | – | AI maturity level, L1 to L6. |
| query | string | – | Keyword filter on title, summary, and tags. |
| team | string | – | Team or category. One of: cs, enablement, general, marketing, org, revops, sales. |
| Name | Type | Req | Description |
|---|---|---|---|
| matched | number | yes | – |
| playbooks | array | yes | – |
| returned | number | yes | – |
| teams | array | yes | – |
| total | number | yes | – |
No examples provided.
list_prompts List prompts ~95
Browse the public prompt library from The Revenue AI Report. Copy-ready AI prompts for revenue teams, filterable by team, category, or keyword. Use get_prompt to read the full prompt text.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Filter by what the prompt does. |
| limit | integer | – | Default 30. |
| query | string | – | Keyword filter on name and summary. |
| team | string | – | Filter by revenue team. |
| Name | Type | Req | Description |
|---|---|---|---|
| matched | number | yes | – |
| prompts | array | yes | – |
| returned | number | yes | – |
| total | number | yes | – |
No examples provided.
list_publications List publications ~61
List published articles from The Revenue AI Report, newest first. Returns slug, title, summary, pillar, date and reading time.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max number of articles to return. |
| pillar | string | – | Optional editorial pillar to filter by. |
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | – |
No examples provided.
list_research List research themes ~63
List the research themes published by The Revenue AI Report. Each theme is a sourced argument about AI inside B2B revenue teams, with charts, findings, named sources, and sample sizes.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | – | Keyword filter on title, dek, and findings. |
| Name | Type | Req | Description |
|---|---|---|---|
| researchRules | – | yes | – |
| returned | number | yes | – |
| themes | array | yes | – |
| total | number | yes | – |
No examples provided.
list_resources List resource types ~43
Map of every public resource type The Revenue AI Report publishes, how many items each holds, the hub URL, and which tool reads it. Call this to orient before searching.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| resources | array | yes | – |
| totalIndexed | number | yes | – |
No examples provided.
list_reversals List reversal ledger records ~85
Read The Revenue AI Report Reversal Ledger: named companies that pulled back, paused, or reversed an AI deployment, with the vendor, function, seat, dates, disclosed cost, stated reason, and the public source for each record.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Default 50. |
| query | string | – | Keyword filter on company, vendor, function, or reason. |
| Name | Type | Req | Description |
|---|---|---|---|
| csvUrl | string | yes | – |
| records | array | yes | – |
| returned | number | yes | – |
| total | number | yes | – |
No examples provided.
list_skills List skills ~110
Browse The Revenue AI Report skill library: repeatable AI jobs for revenue teams, each with a ready prompt, a process, decision rules, and limitations. Filter by role, task, or level.
| Name | Type | Req | Description |
|---|---|---|---|
| level | string | – | Filter by difficulty. |
| limit | integer | – | – |
| query | string | – | Optional keyword filter on name and outcome. |
| role | string | – | Filter by the role the skill is written for. |
| task | string | – | Filter by the job the skill finishes. |
| Name | Type | Req | Description |
|---|---|---|---|
| returned | number | yes | – |
| skills | array | yes | – |
| total | number | yes | – |
No examples provided.
lookup_term Look up a term ~76
Define a revenue AI term using The Revenue AI Report glossary and plain-language dictionary. Covers Report frameworks, pillars, and measures plus general AI and go-to-market vocabulary.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Default 8. |
| term | string | yes | The word or phrase to define, e.g. 'proof gap' or 'RAG'. |
| Name | Type | Req | Description |
|---|---|---|---|
| dictionaryTerms | number | yes | – |
| glossaryTerms | number | yes | – |
| query | string | yes | – |
| results | array | yes | – |
No examples provided.
search_publications Search publications ~69
Full-text search across The Revenue AI Report articles (titles, summaries, body text, keywords and FAQs). Returns matching articles with a short excerpt.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max number of matches to return. |
| query | string | yes | Search terms, e.g. 'AI pilot kill criteria'. |
| Name | Type | Req | Description |
|---|---|---|---|
| results | array | yes | – |
No examples provided.
search_site Search everything ~552
Search every public resource on The Revenue AI Report in one call: articles, research themes, frameworks, methodology, skills, prompts, playbooks, datasets, archive issues, the reversal ledger, the AI tool library, and glossary and dictionary definitions. Filters: `kind` (resource type), `category` (article or issue pillar, playbook or prompt team, skill task, tool or ledger category, case insensitive), `tags` with `tag_match` ('all' requires every tag, 'any' requires one). Paging: `limit` (page size, default 12, max 40) with either `offset` or the `next_cursor` returned by the previous call. Results are ranked and stable for the same query and filters. Returns ranked matches with live URL, kind, category, tags and an excerpt, plus `totalMatches`, `countsByKind`, `availableFilters` for discovery, and `nextCursor`/`hasMore` for paging. Examples: {"query":"forecast accuracy"} | {"query":"pipeline hygiene","kind":"Playbook","category":"revops","tags":["L3"]} | {"query":"AI SDR","tags":["L2","sales"],"tag_match":"any"} | {"query":"AI SDR","limit":10,"offset":10} | {"query":"AI SDR","limit":10,"cursor":"<next_cursor from previous call>"} Use this first when you do not know which resource type answers the question.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Restrict to one category: article/issue pillar, playbook or prompt team, skill task, tool or ledger category. Case insensitive. Example: 'revops'. |
| cursor | string | – | Opaque `next_cursor` from the previous call. Fetches the following page with the same query and filters. |
| kind | string | – | Restrict results to one resource type, e.g. 'Playbook' or 'Skill'. |
| limit | integer | – | Page size. Default 12, max 40. |
| offset | integer | – | How many ranked matches to skip before this page. Default 0. Ignored when `cursor` is given. |
| query | string | yes | What the user is looking for, e.g. 'AI SDR pilot kill criteria'. |
| tag_match | string | – | How to apply `tags`. 'all' (default) keeps items carrying every tag. 'any' keeps items carrying at least one. |
| tags | array | – | Tags to filter on. Tags include playbook tags, maturity levels (L1 to L6), skill roles and levels, prompt teams, and tool functions. Example: ['L3','sales']. |
| Name | Type | Req | Description |
|---|---|---|---|
| availableFilters | object | yes | – |
| countsByKind | object | yes | – |
| filters | object | yes | – |
| hasMore | boolean | yes | – |
| indexedDocuments | number | yes | – |
| limit | number | yes | – |
| nextCursor | – | yes | – |
| nextOffset | – | yes | – |
| offset | number | yes | – |
| query | string | yes | – |
| results | array | yes | – |
| returned | number | yes | – |
| totalMatches | number | yes | – |
No examples provided.
search_tools Search the AI tool library ~267
Search The Revenue AI Report AI tool library: go-to-market and revenue AI vendors with category, revenue functions, use cases, adoption effort level, and vendor claims. Ranking runs on name, description, best-for, and use cases; vendor keywords only count on an exact whole-tag match, so a generic word does not pull in unrelated vendors. Filter with category, revenueFunction, maturity (L1 to L6), or tag. Every response returns availableFilters with the full category and revenue-function lists plus the most common vendor tags, so you can re-run a narrowed query without guessing the taxonomy. Vendor claims are the vendor's own, not Report benchmarks.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Exact tool category, for example 'Productivity & Automation'. See availableFilters.categories. |
| limit | integer | – | Default 25. |
| maturity | integer | – | AI maturity level, from L1 Starter to L6 Rebuilt. |
| query | string | – | Keyword matched on name, description, best-for, and use cases, ranked by relevance. |
| revenueFunction | string | – | Exact revenue function, for example Sales, Marketing, Customer Success, Revenue Operations. See availableFilters.functions. |
| tag | string | – | Exact vendor keyword, for example 'forecasting'. See availableFilters.topTags. |
| Name | Type | Req | Description |
|---|---|---|---|
| adoptionLevels | – | yes | – |
| availableFilters | object | yes | – |
| matched | number | yes | – |
| note | string | yes | – |
| returned | number | yes | – |
| tools | array | yes | – |
| total | number | yes | – |
No examples provided.
What is the The Revenue AI Report MCP server?
The Revenue AI Report is an MCP server listed in the public MCP registry as com.therevenueaireport/the-revenue-ai-report. Independent weekly on AI in B2B revenue teams: articles, frameworks, skills, playbooks, datasets. This page covers its hosted endpoint (https://www.therevenueaireport.com/mcp).
Is the The Revenue AI Report MCP server safe to use?
The Revenue AI Report scores 76 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the The Revenue AI Report MCP server expose?
The Revenue AI Report exposes 23 tools: list_resources, search_site, get_resource, get_publication_info, list_publications, and 18 more. Their descriptions and schemas cost roughly 2,320 tokens of context every time the server is loaded.
Does the The Revenue AI Report MCP server require authentication?
No. We connected to The Revenue AI Report without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the The Revenue AI Report MCP server still maintained?
The Revenue AI Report is still listed as active in the MCP registry. We last reached this channel on 25 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.