1 Define Zones
2 Set Rates
3 Seasonal Rules
4 Analyze & Optimize
Regions Overview
9:41
Regional Pricing
4
Active Regions
87
Zip Codes
$24.8k
Monthly Revenue
1.18x
Avg Multiplier
Downtown Akron
24 zips1.25x
$8,420
Cuyahoga Falls
18 zips1.10x
$6,230
Summit Suburbs
31 zips1.00x
$7,150
Rural Portage
14 zips1.35x
$3,000

RegionalPricingScreen — main listing with KPIs and toggle control

useQuery(api.pricebook.regionalPricing.listRegions)

Region Detail
9:41
Downtown Akron
Downtown Akron
Created Jan 15, 2026
Active
Base Multiplier 1.25x
Monthly Revenue $8,420
Active Services 12
Coverage Area
24 zip codes in this region
Zip Codes (24)
44301
44302
44303
44304
44305
44306
44307
44308
44310
44311
+14 more

RegionDetailScreen — zone overview with zip chips and map

useQuery(api.pricebook.regionalPricing.getRegion, { regionId })


Create / Edit Region
9:41
New Region
Region Name
Highland Square
Region Color
Zip Codes
Search or paste zip codes...
Separate with commas for bulk entry
44312
44313
44314
Auto-fill by radius
Add all zips within 15 mi
Base Rate Multiplier
1.15x
0.50x 2.00x
Effective Date
Mar 1, 2026

CreateRegionScreen — form with color picker, zip entry, and slider

useMutation(api.pricebook.regionalPricing.createRegion)

Pricing Tiers
9:41
Pricing Tiers
Downtown
Cuy. Falls
Suburbs
Plumbing
Service Base Adj. Delta
Drain Cleaning
$150
$188
+25%
Faucet Repair
$120
$150
+25%
Water Heater
$800
$1,000
+25%
Electrical
Service Base Adj. Delta
Panel Upgrade
$2,500
$3,125
+25%
Outlet Install
$200
$250
+25%
Fixture Swap
$175
$219
+25%
HVAC
Service Base Adj. Delta
AC Tune-up
$130
$163
+25%
Furnace Repair
$350
$438
+25%

PricingTiersScreen — service-by-service pricing with region selector

useQuery(api.pricebook.regionalPricing.getRegionPricing)


Rate Card
9:41
Rate Card
Downtown Akron
All Regions
Drain Cleaning
$150 base × 1.25x region
$188
+10% winter
Faucet Repair
$120 base × 1.25x region
$150
Standard rate
Panel Upgrade
$2,500 base × 1.25x region
$3,125
Standard rate
AC Tune-up
$130 base × 1.25x region
$163
+20% summer
Furnace Repair
$350 base × 1.25x region
$438
+15% winter
Drywall Patch
$200 base × 1.25x region
$250
Standard rate
Interior Painting
$400 base × 1.25x region
$500
Standard rate

RateCardScreen — per-service pricing grid with seasonal indicators

useQuery(api.pricebook.regionalPricing.getRateCard)

Seasonal Adjustments
9:41
Seasonal Pricing
Peak
High
Standard
Off-Peak
Jan
0.85x
Feb
0.85x
Mar
1.00x
Apr
1.10x
May
1.15x
Jun
1.30x
Jul
1.30x
Aug
1.25x
Sep
1.10x
Oct
1.00x
Nov
1.00x
Dec
0.90x
Active Seasons
Summer Peak
Jun 1 – Aug 31
+30%
Spring Surge
Apr 1 – May 31
+12%
Winter Off-Peak
Dec 1 – Feb 28
−15%

SeasonalAdjustmentsScreen — calendar with peak/off-peak periods

useQuery(api.pricebook.regionalPricing.getSeasons)


Competitor Comparison
9:41
Market Comparison
Market Position
Summit County, OH
+8%
Above Market Avg
72%
Win Rate
Service-by-Service
Drain Cleaning
$188
+12%
Faucet Repair
$150
At Mkt
Panel Upgrade
$3,125
−5%
AC Tune-up
$163
+18%
Recommended Adjustment
Lower Panel Upgrade by 3% to match market and improve win rate. Estimated +2 jobs/month.

CompetitorComparisonScreen — market positioning with AI recommendations

useQuery(api.pricebook.regionalPricing.getMarketComparison)

Pricing Analytics
9:41
Pricing Analytics
7D
30D
90D
YTD
Revenue by Region
Downtown
Cuy. Falls
Suburbs
Portage
Win Rate by Price Point
Premium (1.2x+) — 36%
Standard (1.0x) — 28%
Discount (<1.0x) — 22%
Lost/Declined — 14%
Price Sensitivity
Avg Bid Amount $486
Avg Win Amount $412
Optimal Range $380 – $450
Price Elasticity −1.2
AI Pricing Insight
Downtown Akron win rate drops 18% above $500. Consider capping residential rates at 1.20x for projects under $600.

PricingAnalyticsScreen — revenue charts, sensitivity, and AI insights

useQuery(api.pricebook.regionalPricing.getAnalytics)


Data Architecture

Schema tables, hooks, queries, and mutations that power the regional pricing system.

Schema Tables

serviceRegions
Geographic pricing zones. Name, description, color, baseMultiplier (0.5–2.0), isActive toggle, effective date, contractorId ref.
schema
regionZipcodes
Join table linking regions to zip codes. regionId ref, zipcode string, county name. Supports bulk insert/delete operations.
schema
regionalPricing
Per-service price overrides by region. regionId, serviceId, basePrice, adjustedPrice, seasonalMultiplier. Falls back to base pricebook if no override exists.
schema
pricingSeasons
Seasonal adjustment periods. Name, startDate, endDate, multiplier, priority (for overlapping seasons), applies-to filter (all services or specific categories).
schema
marketBenchmarks
External pricing benchmarks by service and zip code. Source (Angi, Thumbtack, manual), avg price, last updated timestamp. Used for competitor comparison.
schema
pricingAnalytics
Aggregated pricing performance data. regionId, serviceId, period, bidCount, winCount, avgBidAmount, avgWinAmount, revenue. Computed daily by scheduled action.
schema

React Hooks

useRegionalPricing()
Core hook. Returns all regions with zip counts, revenue aggregates, and active status. Provides create, update, delete, and toggle methods.
hook
useRegionDetail(regionId)
Single region detail. Returns full region data with zip code list, pricing overrides, and map coordinates. Provides zip add/remove and multiplier update methods.
hook
useRateCard(regionId?)
Computed rate card. Returns per-service final prices with base, region multiplier, and seasonal adjustment applied. Supports region filter.
hook
useSeasonalPricing()
Seasonal adjustment management. Returns all seasons with calendar view data, multipliers by month. Provides CRUD for season periods.
hook
useMarketComparison(regionId)
Competitor benchmarking. Fetches market averages by service for the region's zip codes. Returns position indicators and recommended adjustments.
hook
usePricingAnalytics(timeRange)
Analytics dashboard. Returns revenue by region, win rates by price point, price sensitivity metrics, and AI-generated pricing insights.
hook

Convex Queries

pricebook.regionalPricing.listRegions
Returns all regions for the authenticated contractor with zip count, pricing count, revenue aggregate, and active status. Sorted by name.
query
pricebook.regionalPricing.getRegion
Returns a single region with full detail: zip codes, pricing overrides per service, center coordinates for map rendering.
query
pricebook.regionalPricing.getRegionPricing
Returns service pricing grouped by category for a given region. Includes base price, adjusted price, and percentage delta.
query
pricebook.regionalPricing.getRateCard
Returns the computed rate card with all multipliers applied (region + seasonal). Supports filtering by region and service category.
query
pricebook.regionalPricing.getSeasons
Returns all seasonal pricing periods with per-month multiplier map. Used to render the calendar grid view.
query
pricebook.regionalPricing.getMarketComparison
Returns market benchmark data for a region. Joins external pricing data with contractor's own rates. Computes position (above/below/at market).
query
pricebook.regionalPricing.getAnalytics
Returns pricing analytics: revenue by region, win rates by price tier, price sensitivity (elasticity), and AI-generated optimization suggestions.
query

Convex Mutations

pricebook.regionalPricing.createRegion
Creates a new pricing region. Validates name uniqueness, bulk-inserts zip codes, sets base multiplier. Returns new region ID.
mutation
pricebook.regionalPricing.updateRegion
Updates region name, color, multiplier, or effective date. Recalculates all adjusted prices in regionalPricing table for the affected region.
mutation
pricebook.regionalPricing.deleteRegion
Soft-deletes a region. Cascades to regionZipcodes and regionalPricing entries. Confirms via Alert before execution.
mutation
pricebook.regionalPricing.toggleRegion
Toggles region active/inactive status. When deactivated, all services in that region fall back to base pricebook rates.
mutation
pricebook.regionalPricing.bulkAddZipcodes
Bulk-inserts zip codes into a region. Validates format (5-digit), deduplicates, and checks for conflicts with other regions.
mutation
pricebook.regionalPricing.removeZipcode
Removes a single zip code from a region. Updates zip count aggregate on the parent region.
mutation
pricebook.regionalPricing.upsertSeason
Creates or updates a seasonal pricing period. Validates date range overlaps, applies multiplier, recalculates affected rate cards.
mutation
pricebook.regionalPricing.setServicePrice
Sets or overrides a specific service price for a region. Accepts base price or multiplier mode. Recalculates adjusted price with seasonal factors.
mutation
Zones Overview + Region Detail
9:41
Regional Pricing
6
Regions
$847K
Revenue
All Active Draft
Summit County
12 services · $342K revenue
Cuyahoga County
10 services · $289K revenue
Stark County
8 services · $118K revenue
Medina County
6 services · $62K revenue
Portage County
4 services · $24K revenue
Lake County
Draft · Not published
Summit County
Akron, Barberton, Cuyahoga Falls, Hudson, Stow
Primary Zone Active
Revenue
$342K
Jobs
148
Avg Ticket
$2,311
Win Rate
34%
Top Services
Kitchen Remodel
$128K
Bathroom Reno
$89K
Roofing
$64K
HVAC
$41K
Painting
$20K
Pricing Tiers
Premium
1.3x
Standard
1.0x
Economy
0.8x
Rate Card + Seasonal Adjustments
9:41
Rates & Seasons
Summit County
12 services configured
Service Rates
Kitchen Remodel
Per sq ft
$85–$150
+8% vs avg
Bathroom Reno
Per sq ft
$95–$175
+5% vs avg
Roofing
Per square
$350–$550
-2% vs avg
HVAC Install
Flat rate
$4,800–$8,200
+12% vs avg
Interior Painting
Per sq ft
$3–$6
At avg
Annual Q1 Q2 Q3 Q4
Seasonal Multipliers
Winter
0.85x
Spring
1.10x
Summer
1.25x
Fall
1.00x
Active Rules
Peak Demand
+15%
Storm Surge
+20%
Off-Season
-10%
Revenue Impact
+$47K
Peak Gains
-$12K
Off-Season
+$35K
Net Impact
+4.1%
Margin Lift
Analytics + Competitor Benchmarks
9:41
Analytics
7D30D90DYTD
Revenue by Region
Summit
$342K
Cuyahoga
$289K
Stark
$118K
Medina
$62K
Portage
$24K
Win Rate by Region
Summit
34%
Cuyahoga
29%
Stark
22%
Medina
18%
Portage
12%
Market Intelligence
Updated 4 hours ago
Your Position vs Market
+8%
Kitchen
+5%
Bathroom
-2%
Roofing
+12%
HVAC
Competitor Landscape
ABC Contractors
$78–$140/sqft
ProBuild Ohio
$82–$155/sqft
Summit Home Svcs
$70–$128/sqft
AI Recommendations
Raise roofing 5–8%
Below market avg with strong demand
Hold HVAC pricing
Already premium; further increases may reduce win rate
Regional Pricing — Dashboard
https://app.3bids.io/contractor/pricing/regions
3Bids
Regions ⌘1
Rate Cards ⌘2
Seasonal ⌘3
Analytics ⌘4
Benchmarks ⌘5
MK
Mike Kowalski
Contractor
Settings ⌘,
Regional Pricing
6
Regions
$847K
Total Revenue
28%
Avg Win Rate
1.12x
Seasonal Mult
Region
Services
Revenue
Win %
Status
Actions
Summit County
Akron, Barberton, Hudson
12
$342K
34%
Active
Cuyahoga County
Cleveland, Lakewood, Parma
10
$289K
29%
Active
Stark County
Canton, Massillon, Alliance
8
$118K
22%
Active
Medina County
Medina, Wadsworth, Brunswick
6
$62K
18%
Active
Portage County
Ravenna, Kent, Streetsboro
4
$24K
12%
Active
Lake County
Mentor, Painesville, Willoughby
0
Draft
Regional Pricing — Analytics
https://app.3bids.io/contractor/pricing/analytics
3Bids
Regions ⌘1
Rate Cards ⌘2
Seasonal ⌘3
Analytics ⌘4
Benchmarks ⌘5
MK
Mike Kowalski
Contractor
Settings ⌘,
Pricing Analytics
7D30D90DYTD
Revenue by Region
Summit
$342K
Cuyahoga
$289K
Stark
$118K
Medina
$62K
Portage
$24K
Seasonal Impact
1.12
mult
Current Multiplier
Spring season active
+$35K net impact
Winter
0.85x
Spring
1.10x
Summer
1.25x
Fall
1.00x
Market Position
+8%
Kitchen
+5%
Bathroom
-2%
Roofing
+12%
HVAC
Win Rate by Region
Summit
34%
Cuyahoga
29%
Stark
22%
Medina
18%
Portage
12%
AI Recommendations
Raise roofing 5–8%
Below market with strong demand
Hold HVAC pricing
Premium position; protect win rate
Expand to Lake County
Low competition, growing market
Pricing optimization
Seasonal multipliers auto-adjust rates based on demand. AI recommendations analyze competitor pricing, win rates, and market trends to suggest optimal adjustments.