processed_cpc¶
SQL type: SimpleAggregateFunction(anyLast, Nullable(Float32))
Table: keywords.keywords_data_local
Last validated: 2026-05-21
What it is¶
The customer-facing cost-per-click for a keyword, in USD. Sourced entirely from GKP — neither GSC nor GT carries monetisation data, and JS is too stale.
How it's computed¶
In processing.py around L2005–L2009. Priority:
gkp_low_top_of_page_bidif present — the more conservative of GKP's two bid signals, treated as the more representative number for typical advertisers.gkp_cpcas fallback — GKP's direct cost-per-click estimate.nullif neither is available (keyword has no GKP data).
Hard upper cap at $100 to prevent runaway values (DFSEO occasionally returns multi-hundred-dollar bids for legal / medical / B2B keywords; these break charts and rank-ordering downstream).
Edge cases¶
- No GKP data —
null. Customer UI typically shows a dash. - Prohibited GKP keywords (see GKP source page) — adult content / restricted symbols return null from DFSEO. These keywords have no
processed_cpceven if they have real CPC in reality. - $100 cap — extreme-CPC keywords (lawyer / mesothelioma / personal-injury verticals) silently clip at $100. The cap is intentional; raw bid is not preserved.
Downstream¶
- Surfaced directly in the product UI as "CPC".
- ES +
keywords_metrics_localupload paths.
See also¶
- GKP source — the only input
- Central hub table
- processing.py — producer