Quality Score Analysis
A skill for breaking down Quality Score across keywords and identifying the highest-ROI fixes.
What this skill does
Given a keyword report with Quality Score data, this skill:
- Distributes keywords across QS buckets (1–3, 4–6, 7–10) and shows account health
- Estimates monthly cost savings if low-QS keywords reached QS 7
- Identifies which QS component (Expected CTR / Ad Relevance / Landing Page Experience) is the bottleneck per keyword
- Surfaces the top 10 keywords where fixing QS would save the most money
- Suggests ad group restructuring where keyword-to-ad relevance is weak
Required inputs
- A keyword report with Quality Score columns
- Time window - last 30 days is the default
Required columns
- Keyword (the keyword text)
- Match type
- Campaign / Ad group
- Quality Score (overall, 1–10)
- Expected CTR (Above Average / Average / Below Average)
- Ad Relevance (Above Average / Average / Below Average)
- Landing Page Experience (Above Average / Average / Below Average)
- Impressions, Clicks, CTR
- Cost / Spend
- Avg. CPC
- Conversions
If QS component columns are missing, tell the user: "I can't tell you what to fix without the component breakdown. Please re-export with the Expected CTR, Ad Relevance, and Landing Page Experience columns enabled."
Workflow
Step 1: Distribution overview
Bucket every keyword by QS:
| Bucket | Count | % of keywords | Spend | % of spend |
|---|---|---|---|---|
| 1–3 (poor) | ||||
| 4–6 (mediocre) | ||||
| 7–10 (good) |
The spend column matters more than the count. An account with 80% of keywords at QS 7+ but 60% of spend on QS 4 keywords has a real problem - they're paying too much on the volume keywords.
Step 2: Cost savings estimate
For every keyword below QS 7, estimate the CPC reduction from reaching QS 7.
The standard rule of thumb (Google has confirmed this approximately): each 1-point QS improvement reduces CPC by roughly 13%. So:
projected_cpc = current_cpc × (0.87 ^ (7 - current_qs))
projected_monthly_savings = monthly_clicks × (current_cpc - projected_cpc)
Sum across keywords to get total recoverable monthly spend. Present as a single dollar figure: "$X,XXX/month potential savings if all QS 1–6 keywords reach QS 7."
This number is approximate - say so. It assumes click volume holds, which usually isn't quite true (better QS often means more impressions too, so the savings can compound).
Step 3: Component bottleneck per keyword
For each low-QS keyword, identify which of the three components is "Below Average":
- Expected CTR below average → ad copy isn't compelling, or keyword is too broad for the ad group
- Ad Relevance below average → keyword theme doesn't match the ad copy. Restructure the ad group.
- Landing Page Experience below average → page is slow, doesn't match keyword intent, or has trust issues
Multiple components can be below average. Address them in that priority order (ad relevance is usually the cheapest to fix; landing page is the hardest).
Step 4: Top 10 priority fixes
Sort by potential monthly savings. For each:
| Keyword | Match | Spend | Curr QS | Bottleneck | Fix | Est. monthly savings |
|---|
Specific fix recommendations:
- Expected CTR fix: rewrite headlines to include the keyword more directly; add a stronger value prop in headline 2; include numbers/specifics
- Ad Relevance fix: move the keyword to a tighter-themed ad group (single-keyword ad groups for top spenders, or themed clusters of 5–10 closely related keywords)
- Landing Page Experience fix: check PageSpeed Insights; ensure H1 echoes the keyword; add trust signals (reviews, badges); reduce form friction
Step 5: Ad group restructuring
If 3+ keywords in the same ad group all have "Below Average" Ad Relevance, the ad group itself is the problem - too many themes packed in. Recommend splitting it.
Output:
Restructure recommended: Ad group
[name]has [N] keywords with Below Average Ad Relevance. Suggest splitting into:
- New ad group:
[theme A]- keywords: [list]- New ad group:
[theme B]- keywords: [list]
Output format
A single markdown response with:
- Headline takeaway - "X% of your spend is on keywords below QS 7. Estimated $Y/month recoverable."
- Distribution table (count + spend by bucket)
- Component diagnosis - which component is the most common bottleneck across the account?
- Top 10 priority fixes table
- Ad group restructuring suggestions (if any)
By default, do not produce a separate file. If the user asks for "a deliverable" or "a doc," produce a Word doc summary using the docx skill.
What this skill must NOT do
- Don't promise CPC reductions as guarantees. The 13%-per-QS-point rule is approximate.
- Don't recommend pausing low-QS keywords as a primary tactic. Pausing kills volume; fixing recovers it.
- Don't recommend QS fixes for keywords with high QS already. Diminishing returns above 7.
- Don't blame "Below Average Landing Page Experience" without considering that all three components are interconnected - if Expected CTR is also low, the page may be fine and the ad copy is the real issue.
Reference files
references/qs-savings-formula.md- the CPC-savings math in detail with worked examplesreferences/component-fixes.md- specific tactics for each component bottleneck
Scripts
scripts/qs_savings_calc.py- computes projected CPC and monthly savings per keyword