ZIP SCORING TOOLKIT
How to Choose Your Tier A/B/C Territories, Allocate 80/20 Budget, and Build Exact Targeting in Meta + Google
What's Inside:
  • ZIP scoring formula and methodology
  • Spreadsheet template with worked examples
  • Tier A/B/C classification rules
  • Promote/demote decision trees
  • Quarterly review process
  • Meta + Google targeting setup instructions

Prepared by: Richard Butts
Founder, Groundbreakers Digital
WHAT THIS TOOLKIT DOES
Purpose: Stop radius sprawl. Dominate the ZIPs where you already win.
Most contractors target "25-mile radius" or "our county" with no margin analysis, no booking rate tracking, no performance measurement. They spend the same budget on ZIP codes where they close 15% of estimates as ZIPs where they close 45%.
Note: Territory targeting improves efficiency, but your CPBE is still driven by creative + offer + intake speed. This toolkit fixes where you spend—not how fast you follow up.
This toolkit shows you how to identify your top-performing territories and focus 80% of your ad budget there.
What you'll walk away with:
  • Tier A ZIP list (your top 10 profit zones)
  • Tier B ZIP list (next 5-10 testing grounds)
  • Tier C exclusion list (everywhere else you'll avoid)
  • Meta + Google targeting allowlists (copy/paste ready)
  • Quarterly review process (promote winners, demote losers)
Who this is for:
Landscape, Snow, and Maintenance business owners who want to stop radius sprawl and focus their budget on the specific neighborhoods where they generate the highest profit.
Time to complete:
  • Initial scoring: 60-90 minutes
  • Quarterly reviews: 30 minutes
THE 60-MINUTE QUICK START
If you want to build your Tier A/B/C lists TODAY, follow this process:
01
Export Your Project Data (10 minutes)
Pull your last 50 closed projects OR last 12 months of closed projects (whichever gives you more data).
Required fields:
  • Project ZIP code
  • Total project revenue
  • Direct costs (materials + labor + subs)
  • Date project closed
  • Source (how they found you: referral, Meta, Google, other)
02
Group by ZIP Code (10 minutes)
Create a simple table with these columns:
  • ZIP
  • Number of projects closed
  • Total revenue
  • Average project value
  • Total gross margin $ (revenue minus direct costs)
  • Average gross margin %
03
Calculate Performance Metrics (15 minutes)
For each ZIP, calculate:
Gross Margin %: (Total Gross Margin $ ÷ Total Revenue) × 100
Booking Rate % (if you have lead data): (Booked Estimates ÷ Total Leads from that ZIP) × 100
If you don't track leads by ZIP yet: Use close rate as proxy: (Closed Projects ÷ Total Estimates) × 100
Job Count: Number of closed projects in that ZIP
Drive Time: Google Maps: Your shop/yard address → ZIP code center point. Use realistic weekday mid-morning traffic conditions
04
Score Each ZIP (15 minutes)
FAST SCORING METHOD (Back-of-Napkin - Good Enough to Start):
If you're not using the spreadsheet, use this simplified formula:
Score = (0.4 × GM%) + (0.3 × Booking Rate %) + (0.2 × Job Count) - (0.1 × Drive Time in minutes)
Example: ZIP 75034 (example only):
  • GM%: 47% → 18.8 points
  • Booking Rate: 42% → 12.6 points
  • Job Count: 18 jobs → 3.6 points
  • Drive Time: 18 min → -1.8 points
  • Total Score: 33.2
RECOMMENDED: Use the Normalized Scoring Method (more accurate - see "Scoring Formula + Normalization" section below) in the spreadsheet for cleaner comparisons across different-sized datasets.
05
Create Tiers (5 minutes)
Sort ZIPs by score (highest to lowest).
Tier A: Top 10 ZIPs (ONLY if the ZIP has 5+ closed projects)
Tier B: Next 5-10 ZIPs (or any ZIP with 3–4 closed projects that you want to test)
Tier C: Everything else (including ZIPs with <3 closed projects)
Minimum sample rule: A ZIP cannot be Tier A unless it has 5+ closed projects in your window. ZIPs with 3-4 projects can be Tier B (testing only). ZIPs with <3 projects are Tier C (insufficient data).
06
Launch with 80/20 Budget Rule (5 minutes)
  • 80% of ad spend → Tier A ZIPs
  • 20% of ad spend → Tier B ZIPs
  • 0% → Tier C
Upload your Tier A allowlist to Meta and Google. Start running campaigns.
That's it. You now have data-driven territory targeting instead of radius sprawl.
THE ZIP SCORING METHOD (DETAILED)
Time Window Options (Pick One):
Option A: Last 12 Months (Recommended)
  • Best for established contractors with consistent volume
  • Captures seasonal patterns
  • Minimum 30 closed projects required
Option B: Last 50 Closed Projects
  • Fastest to implement
  • Works for newer contractors
  • May span 6-18 months depending on volume

Pick one and stick with it for quarterly reviews. Don't switch mid-year or comparisons break.
DEFINE EACH INPUT EXACTLY
1
Gross Margin % (GM%)
Formula: (Revenue - Direct Costs) ÷ Revenue × 100
Direct Costs include:
  • Materials (pavers, stone, plants, soil, aggregate)
  • Labor (crew wages + burden)
  • Subcontractors (electricians, plumbers, concrete)
  • Equipment rentals (if project-specific)
Direct Costs DO NOT include:
  • Overhead (office rent, insurance, admin salaries)
  • Sales/marketing expenses
  • Truck/equipment depreciation
  • Owner salary
Example:
  • Revenue: $50,000
  • Materials: $12,000
  • Labor: $15,000
  • Subs: $3,000
  • Total Direct Costs: $30,000
  • Gross Margin: $20,000
  • GM%: 40%
2
Booking Rate %
Formula: (Booked Estimates ÷ Total Leads) × 100
Booked Estimate = Appointment scheduled on calendar with specific date/time
Lead = Someone who submitted form or called expressing interest in a project
Example:
  • ZIP 75034 (example only): 40 leads, 16 booked estimates
  • Booking Rate: 40%
If you don't track leads by ZIP yet:
Use close rate as proxy until you implement lead tracking:
Close Rate = (Closed Projects ÷ Total Estimates) × 100
This is less precise but directionally useful. Start capturing ZIP on every lead form going forward.
3
Job Count
Definition: Number of closed projects (signed contract + deposit paid) in that ZIP during your time window
Why this matters:
  • Volume indicates proven demand
  • Helps identify reliable territories vs one-off wins
  • Prevents "1-job ZIPs" from scoring too high
Minimum threshold: ZIPs with fewer than 5 closed projects in your window cannot be Tier A (insufficient sample size). They can be Tier B for testing with 3-4 projects, or Tier C with <3 projects.
4
Drive Time
Definition: Minutes from your shop/yard to ZIP code center point during realistic working conditions
How to measure:
  • Use Google Maps
  • Enter: Your shop address → ZIP code center (ex: "75034")
  • Check weekday mid-morning traffic (9-10 AM typical)
  • Round to nearest 5 minutes
Why this matters:
  • Windshield time kills crew utilization
  • Long drives increase your true cost per estimate
  • 45+ minute drives often mean lower margins due to travel overhead
Example (example ZIPs only):
  • Shop in ZIP 75034
  • Target ZIP 75087: 22 minutes → penalty applied
  • Target ZIP 75125: 47 minutes → higher penalty
ZIPs with 45+ minute drive times rarely make Tier A unless margins are exceptional (50%+).
SPREADSHEET TEMPLATE STRUCTURE
1
Tab 1: Read Me
Instructions on how to use the toolkit:
  1. Paste raw project data into "Project Export" tab
  1. Pivot table auto-generates in "ZIP Summary"
  1. Scoring calculations run automatically
  1. Review "Tiers" output
  1. Copy Tier A/B lists to "Targeting Exports"
  1. Update Meta + Google campaigns
2
Tab 2: Project Export (Raw Data Paste-In)
Columns:
  • Project ID
  • ZIP Code
  • Close Date
  • Revenue
  • Direct Costs (Materials)
  • Direct Costs (Labor)
  • Direct Costs (Subs)
  • Total Direct Costs (auto-calculated)
  • Gross Margin $ (auto-calculated)
  • Gross Margin % (auto-calculated)
  • Source (Referral/Meta/Google/Other)
Paste your 50+ projects here. Formulas will calculate totals.
3
Tab 3: ZIP Summary (Auto-Pivot)
Grouped by ZIP code:
  • Number of Projects
  • Total Revenue
  • Average Project Value
  • Total Gross Margin $
  • Average Gross Margin %
  • Total Leads (if tracked)
  • Booked Estimates (if tracked)
  • Booking Rate % (auto-calculated if data available)
  • Drive Time (manual entry)
This becomes your scoring input table.
4
Tab 4: Scoring (Normalized + Weighted)
RECOMMENDED SCORING METHOD (Use in Spreadsheet):
For each ZIP, calculate normalized scores on 0-100 scale to ensure fair comparison:
Normalized Scores (0-100 scale):
GM Score: (Your ZIP's GM% ÷ Highest GM% in dataset) × 100
Booking Score: (Your ZIP's Booking Rate ÷ Highest Booking Rate) × 100
Volume Score: (Your ZIP's Job Count ÷ Highest Job Count) × 100
Drive Score (inverted - shorter is better): MAX(0, 100 - (Drive Time ÷ 60 × 100))
Note: The MAX function prevents negative scores if drive time exceeds 60 minutes.
Weighted Total:
Total ZIP Score = (0.4 × GM Score) + (0.3 × Booking Score) + (0.2 × Volume Score) + (0.1 × Drive Score)
Example Calculation:
ZIP 75034 (example only):
  • GM%: 47% (highest in dataset: 52%) → GM Score: 90.4
  • Booking Rate: 42% (highest: 48%) → Booking Score: 87.5
  • Job Count: 18 (highest: 24) → Volume Score: 75.0
  • Drive Time: 18 min → Drive Score: MAX(0, 100 - (18÷60×100)) = 70.0
  • Total Score: (0.4 × 90.4) + (0.3 × 87.5) + (0.2 × 75.0) + (0.1 × 70.0) = 84.4
This ZIP scores very high (Tier A candidate).
5
Tab 5: Tiers (Classification Output)
Sorted by Total Score (highest to lowest):
Note: All ZIPs shown are examples only.
Confidence Badges:
  • High: 10+ closed projects in window
  • Medium: 5-9 closed projects
  • Low: <5 closed projects
Tier A Eligibility Rule: Requires 5+ closed projects (Medium or High confidence only). Low confidence ZIPs cannot be Tier A regardless of score - maximum Tier B for testing.
6
Tab 6: Targeting Exports (Copy/Paste Lists)
Tier A Allowlist (80% of budget):
75034 75022 75087 75024 75055 75011 75019 75035 75009 75021
Note: Example ZIPs only. Use your actual data.
Tier B Test List (20% of budget):
75013 75078 75025 75056 75020
Note: Example ZIPs only.
Tier C Exclusion List (0% budget):
75023 75125 75104 75002 [All other ZIPs in service area]
Last Updated: [YYYY-MM-DD]
Next Review: [YYYY-MM-DD + 90 days]
Copy these lists directly into Meta and Google targeting settings.
7
Tab 7: Quarterly Review Log
Track decisions over time:
This prevents yo-yo decisions and creates institutional memory.
SCORING FORMULA + NORMALIZATION
Why Normalize to 0-100 Scale?
Raw metrics have different ranges:
  • GM%: 25-55% (30-point range)
  • Booking Rate: 20-50% (30-point range)
  • Job Count: 1-25 (25-point range)
  • Drive Time: 10-60 minutes (50-point range)
Without normalization, Job Count (1-25) would dominate GM% (25-55) even though we want GM% weighted higher.
Normalization fixes this: Convert each metric to 0-100 score, then apply weights. Now a ZIP with 47% GM and 18 jobs competes fairly against a ZIP with 52% GM and 12 jobs.
The Math (Simple Version):
Your ZIP's Score = (Your Value ÷ Best Value in Dataset) × 100
Example:
  • Your ZIP's GM%: 44%
  • Highest GM% in dataset: 52%
  • GM Score: (44 ÷ 52) × 100 = 84.6
Repeat for Booking Rate and Volume. For Drive Time, invert it (shorter = better) and cap at 0 to prevent negative scores.
CONFIDENCE RULES (PREVENTS BAD DECISIONS)
Minimum Sample Size Rule:
A ZIP cannot be Tier A if it has fewer than 5 closed projects in your time window.
Why: One to four projects don't prove consistent demand. You need volume to validate performance.
What to do with low-sample ZIPs:
  • Score 70+ but <5 projects: Tier B (test with 10-15% of budget)
  • Score 60+ but 3-4 projects: Tier B (test with 5-10% of budget)
  • <3 projects: Tier C (exclude, insufficient data)
High Confidence: 10+ closed projects
  • Can be Tier A or B based on score
  • Reliable performance data
Medium Confidence: 5-9 closed projects
  • Can be Tier A if score 70+
  • Monitor closely
Low Confidence: <5 closed projects
  • Maximum Tier B (testing only)
  • Cannot be Tier A regardless of score
Example:
ZIP 75013 (example only):
  • Score: 78.2 (normally Tier A range)
  • Projects: 4 (low confidence)
  • Classification: Tier B (test at 10% budget, need more data)
ZIP 75034 (example only):
  • Score: 84.4
  • Projects: 18 (high confidence)
  • Classification: Tier A (proven winner)
TIER A/B/C CLASSIFICATION RULES
Option A: Relative Tiers (Recommended)
Tier A: Top 10 ZIPs by score (or top 15-20% of your service area)
Tier B: Next 5-10 ZIPs (or next 20-30%)
Tier C: Everything else
Additional requirement: Tier A ZIPs must have 5+ closed projects (Medium or High confidence).
Why this works:
  • Automatically adjusts to your market
  • Always gives you a Tier A list to focus on
  • Forces prioritization
Option B: Absolute Thresholds
Tier A: Score ≥70 AND 5+ closed projects
Tier B: Score 50-69 OR 3-4 closed projects
Tier C: Score <50 OR <3 closed projects
Why this works:
  • Clear standards
  • Easier to explain to team
  • Some contractors may have zero Tier A ZIPs (forces improvement)

Pick one method and stick with it. Don't switch between relative and absolute mid-year. Most contractors should use Option A (relative tiers) because it guarantees you have a Tier A list to work with.
BUDGET ALLOCATION + CAMPAIGN STRUCTURE
The 80/20 Rule:
80% of ad spend → Tier A ZIPs
(your proven profit zones)
20% of ad spend → Tier B ZIPs
(testing ground for expansion)
0% → Tier C
(exclude completely)
Example Budget Allocation:
Total monthly ad spend: $3,000
  • Tier A: $2,400/month ($80/day)
  • Tier B: $600/month ($20/day)
Campaign Structure (Meta):
OPTION 1: Ad Set Budgets (ABO) - Cleanest 80/20 Control
Campaign: [City] - Design Build - Tier A+B
  • Budget: No campaign budget (using ad set budgets)
Ad Set 1: Tier A
  • Locations: Custom Locations - Tier A ZIP list (example: 10 ZIPs)
  • Daily Budget: $80 (80% of total)
Ad Set 2: Tier B
  • Locations: Custom Locations - Tier B ZIP list (example: 5-10 ZIPs)
  • Daily Budget: $20 (20% of total)
OPTION 2: Campaign Budget Optimization (Advantage Campaign Budget) - Simpler But Less Control
Campaign: [City] - Design Build - Tier A+B
  • Budget: Campaign Budget Optimization (Advantage campaign budget)
  • Daily Budget: $100
Ad Set 1: Tier A
  • Locations: Custom Locations - Tier A ZIP list
Ad Set 2: Tier B
  • Locations: Custom Locations - Tier B ZIP list

Note: With Campaign Budget Optimization, Meta will shift budget toward better-performing ad set. This may drift from exact 80/20 split. If you need strict 80/20 control, use Option 1 (Ad Set Budgets).
Why separate ad sets:
  • Track performance by tier independently
  • Allows promote/demote decisions based on data
  • Can pause Tier B if it's not performing without affecting Tier A
PROMOTE/DEMOTE DECISION TREES
Review frequency: Monthly (at minimum). Weekly is better if volume allows.
Minimum data requirement: Don't promote/demote unless the ZIP has generated at least 10 leads OR 3 booked estimates in the last 60-90 days. Small sample sizes create false signals.
1
PROMOTE B → A IF (2 consecutive months):
  • ✓ CPBE is 20%+ below your maximum acceptable CPBE
  • ✓ Lead→Booked % is ≥35%
  • ✓ Closed ≥2 projects from that ZIP
  • ✓ No operational objections (drive time manageable, crew comfortable with area)
  • ✓ ZIP now has 5+ total closed projects (meets Tier A confidence requirement)
Example:
ZIP 75035 (example only - Currently Tier B):
  • Month 1: CPBE $180 (target $300), Lead→Booked 38%, closed 1 project
  • Month 2: CPBE $165 (target $300), Lead→Booked 42%, closed 2 projects
  • Total historical projects: 6 (meets 5+ requirement)
  • Action: Promote to Tier A, allocate 80% budget share
2
DEMOTE A → B IF (2 consecutive months):
  • ✗ CPBE is 30%+ above your maximum acceptable CPBE
  • ✗ Lead→Booked % <25%
  • ✗ Closed 0 projects in 90 days
  • ✗ Quality complaints (many below-minimum inquiries, wrong customer profile)
Example:
ZIP 75013 (example only - Currently Tier A):
  • Month 1: CPBE $420 (target $300), Lead→Booked 22%, closed 0
  • Month 2: CPBE $450 (target $300), Lead→Booked 19%, closed 0
  • Action: Demote to Tier B, reduce to 20% budget share, monitor for 60 days
3
DEMOTE B → C IF:
  • ✗ 60 days with 0 booked estimates from that ZIP
  • ✗ CPBE is 50%+ above maximum
  • ✗ Consistent quality issues (wrong budget bands, out-of-service requests)
Example:
ZIP 75023 (example only - Currently Tier B):
  • 60 days, $450 spent, 6 leads, 0 booked estimates
  • Action: Demote to Tier C, exclude from targeting completely
Revisit in 6-12 months to see if market conditions have changed.
QUARTERLY REVIEW PROCESS
Run this every 90 days. Takes 30 minutes.
Week 13 of Each Quarter (Last Week):
01
Update Data (10 minutes)
  • Export closed projects from last 90 days
  • Paste into "Project Export" tab
  • Formulas auto-update ZIP Summary and Scoring
02
Re-Score ZIPs (5 minutes)
  • Review updated scores
  • Note any significant changes (score swings >10 points)
03
Apply Promote/Demote Rules (10 minutes)
  • Check each Tier A ZIP: Still performing? Any need demotion?
  • Check each Tier B ZIP: Any ready for promotion?
  • Check Tier C: Any worth retesting?
  • Verify minimum data requirements (10+ leads or 3+ booked estimates per ZIP)
04
Update Targeting (3 minutes)
  • Revise Tier A/B/C lists
  • Copy updated allowlists to "Targeting Exports" tab
  • Note changes in Quarterly Review Log
05
Push to Platforms (2 minutes)
  • Update Meta ad set targeting with new Tier A list
  • Update Google campaign location targeting
  • Pause any Tier C ZIPs that crept into active campaigns
Document Decisions:
Log every change in Quarterly Review Log tab:
  • Date
  • Action (Promoted/Demoted/Paused)
  • ZIP affected
  • Reason (CPBE, booking rate, project count)
  • Result (monitoring / paused / excluded)
This prevents:
  • Forgetting why you made decisions
  • Yo-yo changes (promoting and demoting same ZIP repeatedly)
  • Team confusion ("Why aren't we targeting ZIP X anymore?")
GOOGLE TARGETING SETUP (SEARCH + LSA)
Google Search Ads:
Method 1: ZIP Code Inclusion (Recommended)
  1. Campaign Settings → Locations
  1. Click "Enter another location"
  1. Type your Tier A ZIP codes - you may need to enter them with state/region context (ex: "75034, Texas" or "94103, California")
  1. Select "People in or regularly in your targeted locations"
  1. Repeat for all Tier A ZIPs

Note: Google's location targeting availability and format requirements vary by country/region. In some areas, you may need to use city names or radius targeting instead of specific ZIP codes.
Method 2: Radius Clusters Around ZIP Centers (Alternative)
  1. Campaign Settings → Locations
  1. Click "Advanced search"
  1. Enter: ZIP code center address (Google: "center of 75034")
  1. Set 1-3 mile radius
  1. Repeat for each Tier A ZIP
Location Exclusions:
  1. Locations → Exclusions → Add location exclusion
  1. Enter all Tier C ZIPs (if format allows)
  1. Or set exclusion radius around competitor territories
Why this matters: Google shows ads to people searching FROM those locations or people searching ABOUT those locations. Inclusion/exclusion lists prevent wasted spend.
Google Local Services Ads (LSA):
  1. Google LSA Dashboard → Service Areas
  1. Add Tier A ZIPs first
  1. Set availability to "Available" for Tier A
  1. Pause or exclude Tier C ZIPs
  1. Add Tier B after Tier A is consistently generating leads
Location Reporting (Critical):
Monthly:
  • Pull "Geographic Report" in Google Ads
  • Compare performance by ZIP (or closest available geo level)
  • Apply same promote/demote rules as Meta

Note on Google performance: Cost per lead on Google Search is commonly 2-3× higher than Meta ($150-300 vs $50-120 typical ranges), but intent is often higher, leading to shorter sales cycles. Your market may vary.
OUTPUT PAGES (COPY/PASTE DELIVERABLES)
Tier A Allowlist:
[Your ZIP 1] [Your ZIP 2] [Your ZIP 3] [Your ZIP 4] [Your ZIP 5] [Your ZIP 6] [Your ZIP 7] [Your ZIP 8] [Your ZIP 9] [Your ZIP 10]
Budget Allocation: 80% ($/month of $ total)
Performance Targets (based on historical data):
  • Average CPBE: $______
  • Lead→Booked: _____%
  • Close Rate: _____%
Last Updated: [YYYY-MM-DD]
Next Review: [YYYY-MM-DD + 90 days]
Tier B Test List:
[Your ZIP 1] [Your ZIP 2] [Your ZIP 3] [Your ZIP 4] [Your ZIP 5]
Budget Allocation: 20% ($/month of $ total)
Testing Criteria:
  • Monitor for 60 days
  • Track CPBE, Lead→Booked %, closed projects
  • Promote to Tier A if performance matches/exceeds Tier A benchmarks
Last Updated: [YYYY-MM-DD]
Tier C Exclusion List:
[List all other ZIPs in your service area]
Budget Allocation: 0%
Status: Excluded from all targeting
Reason: Low margins, low booking rates, or insufficient data
Revisit: [YYYY-MM-DD + 6 months] (re-score if market conditions change)
TROUBLESHOOTING / FAQ
We don't know our margins by ZIP. How do we start?
A: Use this simplified formula until you build margin tracking:
Score = (0.5 × Close Rate %) + (0.3 × Job Count) - (0.2 × Drive Time)
Focus on close rate (estimates→signed contracts) and volume. Add margin data as you build it into your estimating system.
We don't capture ZIP code on leads. How do we fix this?
A: Make ZIP a required field on all forms and Voice AI scripts:
Form: Add dropdown or text field labeled "Project ZIP Code" (required)
Voice AI: Ask ZIP early in qualification: "What ZIP code is the property located in?"
CRM: Create standardized ZIP field (no mixed formats like "75034-1234" or "75034 TX")
Going forward, every lead gets tagged with ZIP. You'll have clean data for next quarter's review.
Our service area is rural. ZIP codes are huge (cover 50+ square miles). Does this still work?
A: Yes, but use town/area clusters instead of ZIPs:
  • Group by town name or area (ex: "North County," "Lake District")
  • Use drive-time gates: "Within 30 minutes of shop" = Tier A
  • Track by town in CRM instead of ZIP
The principle is the same: Focus on proven territories, avoid sprawl.
A ZIP scores high but we have no portfolio to show from there. Should we target it?
A: No. If you have zero completed projects in that ZIP:
  • No social proof ("We just built this project two streets over")
  • Lower conversion rates (homeowners want neighborhood examples)
  • Start with Tier B budget (10-15%) to build portfolio first
  • Promote to Tier A after 5+ closed projects (meets confidence requirement)
Our top ZIPs are saturating. CPBE is rising even though we're hitting all other targets. What do we do?
A: Market saturation is real. Options:
Option 1: Increase creative refresh rate
  • Launch new creative kit every 7 days instead of 14
  • Different angles, offers, messaging to combat fatigue
Option 2: Expand to Tier B
  • If Tier B ZIPs are profitable (CPBE at target), allocate more budget there
  • Shift from 80/20 to 70/30 temporarily
Option 3: Add second channel
  • Google Search captures different audience (active searchers vs interrupted browsers)
  • Budget $900-1,500/month for meaningful Google test
Option 4: Test adjacent ZIPs
  • Score neighboring ZIPs that border your Tier A territories
  • Start with 10% budget test
Don't keep throwing money at saturated ZIPs. Diversify intelligently.
We're getting leads from Tier A ZIPs but booking rate is low. Is targeting wrong?
A: Targeting is probably fine. Intake is broken.
Low booking rate (<30%) = intake problem, not targeting problem:
  • Check response speed (are you calling within 15 minutes?)
  • Check follow-up persistence (calling 3+ times before giving up?)
  • Check calendar availability (offering times within next 7 days?)
  • Check budget qualification (are leads actually above your minimum?)
Fix intake before changing targeting. Tier A ZIPs are chosen because they've historically converted well. If they're not converting now, something in YOUR process changed.
DATA CAPTURE STANDARD (KEEP TOOLKIT ACCURATE)
For this ZIP scoring system to work long-term, you need clean data:
1
ZIP is required on every form
  • Booking page: Required field, no bypass
  • Contact forms: Required field
  • Quote requests: Required field
2
Voice AI asks ZIP early in script
  • "What ZIP code is the property located in?"
  • Before offering appointment times
  • Validates against service area allowlist
3
CRM field must be standardized
  • Field name: "Project ZIP" (consistent across all projects)
  • Format: 5 digits, no dashes, no spaces
  • No mixed formats (75034-1234 or 75034 TX)
  • Use data validation rules if your CRM supports it
4
Every booked estimate gets tagged
  • Tier: Tier A, Tier B, or Tier C
  • ZIP: Actual project ZIP
  • Source: Meta, Google, Referral, etc.
5
Closed projects get margin data
  • Revenue (total project value)
  • Direct costs (materials + labor + subs)
  • Gross margin % (auto-calculated)
This data discipline makes quarterly reviews fast (30 minutes instead of 3 hours cleaning messy data).
GET YOUR TIER A/B/C LISTS DIALED
This toolkit gives you the method: score your ZIPs, identify your profit zones, allocate 80/20 budget, and review quarterly.
If you want help implementing the complete demand generation system (ZIP targeting + Meta campaigns + Voice AI intake + CRM automation + performance tracking):
Email me
richard@groundbreakers.digital
DM me on LeanScaper or LinkedIn

The contractors who dominate their markets don't target everyone.
They dominate the 10 neighborhoods where their business model already wins.
Stop radius sprawl. Focus on your Tier A ZIPs. Let your data decide where you spend.