ctr_curve_model
Model THIS website's own click-through-rate curve by SERP position — "what CTR should we expect at position N?", "which queries over/under-perform their expected CTR?". Fits weighted CTR (clicks÷impressions) per position bucket from your query×page Search Console data with a monotone-decreasing isotonic fit, SEGMENTED by branded vs non-branded, intent and device — because a single blended curve hides the branded/non-branded gap that dominates CTR. Returns the fitted curve(s) plus the biggest over- and under-performers. Use this before striking_distance (which consumes the fitted curve). For raw clicks/impressions use search_performance; for movement use seo_ranking_movement_report.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"date_range": "<date_range>"
},
"name": "ctr_curve_model"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| brand | No | Restrict to branded ("Yes") or non-branded ("No") demand. The curve is ALWAYS segmented by brand internally; this just narrows which cells are fitted. | |
| device | No | Restrict to one device. | |
| intent | No | Restrict to one intent (a customer keyword group). Resolve the id with resolve_entity first. | |
| source | No | Where Google search performance data is read from. Use "bigquery" ONLY when the user explicitly asks for BigQuery as the source AND describe_data_sources reports it available from live customer configuration — it returns far more granular per-query data (privacy-suppressed impressions appear under "[anonymized by google]"). | default |
| date_range | Yes | Explicit date range, e.g. "2026-05-01 to 2026-05-31". Both endpoints are INCLUSIVE — the END day is covered (a 7-day range = 7 days). Quattr weeks run Sunday–Saturday; for "last week" use the most recent complete Sun–Sat span. | |
| top_n_performers | No | How many over- and under-performers (actual − expected CTR, ranked by |delta|×impressions) to return. | |
| min_bucket_instances | No | Per-bucket reliability floor — a position bucket fitted from fewer than this many query×page instances is FLAGGED low-confidence (default 5). It is not dropped, but its expected CTR is unreliable. |