Bright Side Plumbing | Overland Park, KS | KC Metro
The Kansas City metro plumbing market spans Johnson County, KS, Wyandotte County, KS, Jackson County, MO, and surrounding counties. The metro population exceeds 2.2 million people, generating an estimated $400M+ in annual plumbing services revenue. The market is fragmented: national franchises hold roughly 25-30% of market share while 70-75% belongs to local operators.
This means BSP needs to double its market share in sewer and drain services while expanding into secondary services (water heaters, gas lines).
Below is the competitive landscape, sorted by estimated market presence. Review counts and ratings are approximate as of March 2026.
| # | Competitor | Type | Location | Google Rating | Google Reviews | Est. Revenue |
|---|---|---|---|---|---|---|
| 1 | Roto-Rooter KC | National | Multiple KC locations | 4.3 | 800+ | $15M-$25M |
| 2 | Mr. Rooter Plumbing KC | National | Overland Park, KS | 4.7 | 600+ | $8M-$12M |
| 3 | Benjamin Franklin Plumbing KC | National | Lenexa, KS | 4.8 | 500+ | $6M-$10M |
| 4 | A-1 Sewer & Septic Service | Local | Kansas City, MO | 4.5 | 450+ | $5M-$8M |
| 5 | Anthony Plumbing Heating Cooling | Local | Lenexa, KS | 4.6 | 700+ | $10M-$15M |
| 6 | Kevin Ginnings Plumbing | Local | Olathe, KS | 4.8 | 350+ | $3M-$5M |
| 7 | Advocate Master Plumbing | Local | Lee's Summit, MO | 4.9 | 300+ | $2M-$4M |
| 8 | Quick Solutions Plumbing | Local | Kansas City, MO | 4.7 | 200+ | $2M-$3M |
| 9 | On Time Plumbing | Local | Olathe, KS | 4.8 | 250+ | $2M-$4M |
| 10 | Roby's Plumbing | Local | Overland Park, KS | 4.6 | 150+ | $1M-$2M |
| 11 | Santa Fe Air | Local | Overland Park, KS | 4.7 | 500+ | $8M-$12M |
| 12 | Plumbing Pro KC | Local | Shawnee, KS | 4.5 | 180+ | $1M-$2M |
| 13 | MB Plumbing | Local | Olathe, KS | 4.8 | 120+ | $1M-$2M |
| 14 | Heartland Plumbing | Local | Overland Park, KS | 4.6 | 100+ | $800K-$1.5M |
| 15 | Bright Side Plumbing | Local | Overland Park, KS | 4.9 | 384+ | $3M |
| Chain | Strengths | Weaknesses | BSP Advantage |
|---|---|---|---|
| Roto-Rooter | Brand recognition, 24/7, massive ad budget | Inconsistent quality, corporate overhead, 4.3 stars, employee turnover | BSP has 4.9 stars, 5th gen credibility, local trust |
| Mr. Rooter | Neighborly franchise system, professional branding, flat-rate pricing | Franchise fees (6-8%) passed to customers, limited local flexibility | No franchise markup, local pricing control, faster decisions |
| Benjamin Franklin | "On-time or it's free" guarantee, professional marketing | Higher prices due to franchise model, less sewer specialization | Sewer expertise, competitive pricing, 5th generation trust |
| Moat Pillar | Status | Strength (1-10) | Action Needed |
|---|---|---|---|
| 👑 5th Generation Master Plumber | Unmatched in KC | 10/10 | Feature in ALL ads, landing pages, GMB |
| ⭐ 4.9 Star Rating (394+ reviews) | Top-tier | 9/10 | Push to 500+ reviews by EOY 2026 |
| 💧 Sewer Specialization | Primary revenue driver | 9/10 | Own "sewer" keywords across KC metro |
| 📍 Johnson County Presence | HQ in Overland Park | 7/10 | Expand service area messaging to all JoCo cities |
| 📈 Revenue Growth Trajectory | $3M to $6M plan | 6/10 | Execute this playbook to accelerate growth |
✅ Key Insight: No competitor in KC can claim "5th Generation Master Plumber." This is an unassailable differentiator. Every ad, every landing page, every piece of content must lead with this.
BSP's estimated market share by service type:
| Service Category | KC Market Size (Est.) | BSP Revenue | BSP Share | Target Share (2027) |
|---|---|---|---|---|
| Sewer Repair/Replacement | $50M | $1.8M | 3.6% | 7.2% |
| Drain Cleaning | $30M | $450K | 1.5% | 3.0% |
| Water Heaters | $35M | $350K | 1.0% | 2.5% |
| General Plumbing | $80M | $300K | 0.4% | 1.0% |
| Gas Lines | $15M | $100K | 0.7% | 1.5% |
Strategy: Sewer is the highest-margin, highest-ticket service. Dominate sewer first ($3K-$15K per job), then expand share in drain cleaning and water heaters.
Auction Insights shows you exactly which competitors appear alongside your ads and how often. This is the single most valuable competitive intelligence tool inside Google Ads.
ads.google.com7269555791 (BSP active account)| Metric | What It Means | BSP Target | Action If Below Target |
|---|---|---|---|
| Impression Share | % of time your ad shows when eligible | 60%+ for sewer keywords | Increase budget or bids |
| Overlap Rate | % of time a competitor's ad shows alongside yours | Track top 3 competitors | Study their ad copy, adjust yours |
| Position Above Rate | % of time competitor's ad appears above yours | Below 30% for all competitors | Increase bids or Quality Score |
| Top of Page Rate | % of time your ad appears at top of page | 70%+ for sewer terms | Improve ad rank (bid + QS) |
| Abs. Top of Page Rate | % of time your ad is THE top ad | 40%+ for sewer terms | Increase bids, improve extensions |
| Outranking Share | % of time your ad ranks above a specific competitor | 60%+ vs each competitor | Target specific competitor weakness |
Robert has an active Semrush account. This is your primary tool for seeing competitor keywords, ad copy, and estimated spend.
semrush.com and log inrotorooter.com)mrrooter.com, benjaminfranklinplumbing.com, a1sewerandseptic.comTypical competitor spend estimates (KC plumbing, Google Ads only):
| Competitor | Est. Monthly Google Ads Spend | Primary Keywords |
|---|---|---|
| Roto-Rooter KC | $20K-$50K | Drain cleaning, plumber near me, emergency plumber |
| Mr. Rooter KC | $15K-$30K | Plumbing service, drain cleaning, sewer repair |
| Benjamin Franklin KC | $10K-$25K | Plumber overland park, water heater, plumbing repair |
| A-1 Sewer & Septic | $8K-$15K | Sewer repair KC, septic service, sewer line |
| Anthony Plumbing | $15K-$30K | Plumber KC, HVAC KC (multi-trade) |
Google's Transparency Center lets you see any advertiser's live ads without needing Semrush or SpyFu. It is free and updated in real time.
ads.google.com/transparency-center⚠️ Important: The Transparency Center shows ads at the advertiser level, not the local level. Roto-Rooter's national ads will appear alongside any KC-specific ads. Look for ads mentioning "Kansas City," "Overland Park," or local phone numbers to identify KC-specific creatives.
A competitor conquest campaign targets people searching for your competitors by name. These searchers have high intent (they are actively looking for a plumber) but have not yet committed to the competitor. By showing BSP's ad, you intercept that demand and redirect it to BSP.
| Setting | Value |
|---|---|
| Campaign Name | BSP_Competitor_KC_Search |
| Campaign Type | Search |
| Networks | Google Search only (uncheck Display, Partners) |
| Locations | Kansas City metro (25-mile radius from Overland Park) |
| Languages | English, Spanish |
| Budget | $30-$50/day to start ($900-$1,500/month) |
| Bidding | Manual CPC to start, $15-$25 max CPC |
| Ad Schedule | Mon-Sat 6am-9pm (match call center hours) |
Negative keywords for this ad group: "roto rooter jobs", "roto rooter careers", "roto rooter stock", "roto rooter corporate"
⚠️ Google Ads Policy: You CANNOT mention a competitor's trademarked name in your ad copy. You CAN bid on their brand keywords. Your ad copy must focus entirely on BSP's strengths. Mentioning a competitor name in ad text will get the ad disapproved.
Competitor keywords typically have lower Quality Scores (3-5) because your landing page does not mention the competitor name. This means higher CPCs. Budget accordingly.
| Metric | Non-Brand Keywords | Competitor Keywords |
|---|---|---|
| Avg. CPC | $8-$20 | $15-$40 |
| Expected CTR | 3-8% | 1-3% |
| Expected Conv. Rate | 5-10% | 3-6% |
| Quality Score | 6-8 | 3-5 |
| Target CPA | $150-$250 | $250-$400 |
Build a page at callbrightside.com/why-choose-us or callbrightside.com/compare designed for competitor conquest traffic.
Do NOT mention competitor names on the landing page. Use "franchise plumbers" or "national chains" as generic references.
If you do not bid on your own brand name, competitors will. A competitor can bid on "Bright Side Plumbing" and show their ad above your organic listing. Brand campaigns are cheap (CPCs under $1-$3), high-converting (15-30% conversion rate), and defensive.
| Setting | Value |
|---|---|
| Campaign Name | BSP_Brand_KC_Search |
| Type | Search |
| Budget | $5-$7/day ($150-$210/month) |
| Bidding | Maximize Clicks (brand terms are cheap) |
| Location | Kansas City metro (50-mile radius) |
| Networks | Google Search only |
Negative keywords: "bright side dental", "bright side solar", "bright side meaning" (prevent irrelevant clicks)
| Metric | Expected Value |
|---|---|
| Monthly Budget | $100-$200 |
| Avg. CPC | $0.50-$2.00 |
| Monthly Clicks | 100-400 |
| Conversion Rate | 15-30% |
| Monthly Leads from Brand | 15-120 |
| Revenue per Lead (sewer) | $800-$2,000+ |
| Estimated Monthly Revenue | $12,000-$120,000+ |
| ROAS | 60x-600x |
Brand campaigns are the highest-ROAS campaigns you will ever run. The $100-$200/month is insurance against competitors stealing your branded traffic.
Current: 394+ reviews. Target: 500 reviews. Gap: 116 reviews in ~9 months.
| Timeline | Reviews Needed | Per Month | Per Week |
|---|---|---|---|
| March-December 2026 (9 months) | 116 | ~13/month | ~3-4/week |
| Stretch goal: 600 reviews | 216 | ~24/month | ~6/week |
At BSP's current job volume (~30-50 jobs/week), getting 3-4 reviews/week requires a 7-10% review capture rate. Industry average is 5-10%, so this is achievable with a systematic process.
👉 How to get the direct Google Review link:
search.google.com/local/writereview?placeid=YOUR_PLACE_IDdevelopers.google.com/maps/documentation/places/web-service/place-id-finderhttps://search.google.com/local/writereview?placeid=PLACE_ID_HEREbit.ly for SMS (e.g., bit.ly/BSPReview)Rule: Respond to ALL reviews within 24 hours. Google rewards businesses that respond. Customers notice when you respond. It builds trust.
⚠️ Negative Review Recovery Playbook:
BSP uses the Nexus R2R Engine for review management. All features are automated:
aggregateRating with: ratingValue: "4.9", reviewCount: "384", bestRating: "5"search.google.com/test/rich-results⚠️ Note: Google's guidelines require that the aggregateRating reflects reviews collected on YOUR website or a third party. If you are referencing Google reviews specifically, use a review widget that embeds actual Google reviews on the page to support the markup.
Every field in your Google Business Profile affects your local ranking. Below is a comprehensive audit and optimization guide.
business.google.com| Field | Current Status | Optimal Value | Action |
|---|---|---|---|
| Business Name | Check for accuracy | Bright Side Plumbing | Verify exact match, no keyword stuffing |
| Address | ⚠️ Check for NAP issues | 12022 Blue Valley Pkwy, Overland Park, KS 66213 | Must match website. Remove any 12022 Blue Valley Pkwy references. |
| Phone | Verify primary | (913) 713-8580 | Must be trackable, match website header |
| Website | Verify | https://callbrightside.com | Ensure HTTPS, no redirect chains |
| Hours | Verify | Mon-Sat 6am-9pm (or actual hours) | Update for holidays, seasonal changes |
| Category (Primary) | Check | Plumber | Must be "Plumber" as primary |
| Categories (Additional) | Check | Sewer Service, Drain Cleaning Service, Water Heater Installation Service, Gas Line Service | Add all relevant secondary categories |
| Service Area | Verify | See city list below | Add all KC metro cities served |
Add ALL cities BSP serves. Google shows your listing to searchers in these areas.
Your GBP description should lead with sewer services and include key trust signals. Max 750 characters.
Key elements: Sewer-first messaging, 5th generation, review count, BBB rating, service area, phone number, call to action.
Google prioritizes listings with more and better photos. Target: 20+ high-quality photos across these categories.
| Photo Category | Target Count | What to Photograph |
|---|---|---|
| Logo | 1 | BSP logo (high-res, square format) |
| Cover Photo | 1 | Team photo or branded truck |
| Exterior | 2-3 | Office building, signage at 12022 Blue Valley Pkwy |
| Interior | 2-3 | Office, dispatch area, equipment |
| Team | 3-5 | Kalen, technicians in uniform, team group photo |
| Work in Progress | 5-8 | Sewer repair, camera inspections, drain cleaning, water heater installs |
| Completed Work | 3-5 | Before/after sewer repairs, new water heaters |
| Vehicles | 2-3 | Branded trucks/vans |
Google Business Profile has a Q&A section. Anyone can ask or answer. Seed it yourself with common customer questions and authoritative answers.
Google Posts appear on your GBP listing and signal to Google that your business is active. Post at least once per week.
| Week | Post Type | Topic Ideas |
|---|---|---|
| Week 1 | Update | Seasonal tip (e.g., "Spring sewer inspection checklist") |
| Week 2 | Offer | "$50 off sewer camera inspection this month" |
| Week 3 | Update | Job highlight / before-after photo with brief story |
| Week 4 | Event/Update | Community involvement, team update, or customer spotlight |
The strongest position on any Google search results page is when BSP appears in all three placements:
When a customer sees BSP in all three positions, it creates a "dominance effect": they perceive BSP as the clear market leader. Studies show that appearing in both paid and organic results increases overall CTR by 25-50% compared to appearing in just one.
Cannibalization happens when your paid ad and organic listing compete for the same click, causing you to pay for clicks you would have gotten for free. However, for high-value keywords like sewer repair, you should ALWAYS run both.
| Keyword Type | Run Paid Ads? | Rationale |
|---|---|---|
| Sewer repair overland park | ALWAYS YES | $3K-$15K ticket. The CPC is negligible compared to job revenue. |
| Sewer replacement KC | ALWAYS YES | Highest ticket service. Cannot risk losing to competitors. |
| Emergency plumber overland park | ALWAYS YES | High urgency, high ticket, competitor-heavy auction. |
| How to unclog a drain | NO | Informational intent. Blog SEO only. Low conversion. |
| What causes sewer smell | NO | Informational intent. Blog SEO only. Nurture, not convert. |
| Drain cleaning near me | YES if not #1 organic | Medium ticket. Bid if organic position is 4+ or competitor-heavy. |
| Water heater replacement cost | YES if not #1 organic | Research intent but high ticket. Bid if not dominating organic. |
Google Ads Quality Score depends on landing page experience. When your website has comprehensive, relevant content about a topic, your Quality Score improves, CPCs drop, and ad position rises.
The flywheel: Blog content builds topical authority. Topical authority improves organic rankings. Organic rankings improve Quality Score for paid ads. Better Quality Score means lower CPCs. Lower CPCs mean more clicks for the same budget. More clicks mean more leads. More leads mean more revenue.
These blog posts directly support BSP's paid keyword campaigns by building topical authority in sewer and plumbing topics.
| # | Blog Topic | Target Keyword | Supports Ad Group |
|---|---|---|---|
| 1 | Complete Guide to Sewer Repair in Overland Park | sewer repair overland park | Sewer Repair campaign |
| 2 | Sewer Replacement Cost in Kansas City: What to Expect | sewer replacement cost kansas city | Sewer Replacement campaign |
| 3 | Signs You Need a Sewer Camera Inspection | sewer camera inspection | Sewer Services campaign |
| 4 | Why Your House Smells Like Sewage (and How to Fix It) | sewer smell in house | Emergency Sewer campaign |
| 5 | Trenchless Sewer Repair vs Traditional: Pros and Cons | trenchless sewer repair | Sewer Repair campaign |
| 6 | How to Choose a Plumber in Kansas City | plumber kansas city | General Plumbing campaign |
| 7 | Emergency Plumber in Overland Park: What to Do | emergency plumber overland park | Emergency campaign |
| 8 | Drain Cleaning Cost: KC Metro Pricing Guide | drain cleaning cost | Drain Cleaning campaign |
| 9 | Water Heater Replacement Guide for KC Homeowners | water heater replacement cost | Water Heater campaign |
| 10 | Sewer Line Problems: Root Intrusion, Bellied Pipes, Cracks | sewer line problems | Sewer Repair campaign |
Publishing cadence: 2-4 blog posts per month. Revive the blog (dead since November 2023).
Every blog post must link to relevant service pages (landing pages). This passes SEO authority from content to conversion pages.
/sewer-repair with anchor text "sewer repair in Overland Park"Complete this checklist every Monday before the 11 AM standup.
| Time | Task | Tool | What to Look For |
|---|---|---|---|
| 5 min | 📊 Run Auction Insights | Google Ads | New competitors, impression share changes, position above rate shifts |
| 3 min | 👁️ Check Transparency Center | ads.google.com/transparency-center | New competitor ad copy, new offers, messaging changes |
| 3 min | ⭐ Check competitor Google reviews | Google Search | Negative review trends, review velocity, new complaints |
| 3 min | 🌐 Check competitor websites | Browser | New offers, price changes, new service pages, design updates |
| 3 min | 📍 Check LSA rankings | Google Search (incognito) | Search "plumber overland park", "sewer repair KC". Screenshot LSA results. |
| 3 min | 📝 Log findings | Spreadsheet/Notion | Record date, findings, actions needed |
Generate this report on the 1st of each month. Present findings at the monthly strategy review.
Every 3 months, conduct a deeper competitive strategy review with Kalen and Stephanie.
Objective: Build the intelligence foundation and launch competitive campaigns.
| Action Item | Owner | Deadline | KPI |
|---|---|---|---|
| 👉 Run first Auction Insights report and document baseline | Robert | Week 1 | Baseline impression share recorded |
| 👉 Set up Semrush competitor tracking for 5 competitors | Robert | Week 1 | 5 competitors tracked |
| 👉 Launch BSP_Brand_KC_Search campaign | Robert | Week 2 | Brand campaign live, CPA under $10 |
| 👉 Launch BSP_Competitor_KC_Search campaign | Robert | Week 2 | Competitor campaign live, 5 ad groups |
| 👉 Complete GBP audit and optimize all fields | Robert | Week 3 | 100% GBP fields optimized |
| 👉 Set up review request automation in ServiceTitan | Ashton/Robert | Week 3 | Auto-SMS after every completed job |
| 👉 Seed 5 Q&A questions on GBP | Robert | Week 4 | 5 Q&As live on listing |
| 👉 Upload 10+ photos to GBP | Robert/Kalen | Month 1 | 20+ total photos on listing |
| 👉 Set up Google Alerts for all competitors | Robert | Week 1 | 15 alerts active |
| 👉 Publish 4 blog posts (sewer-focused) | Robert | Month 1-3 | 4 posts published |
| 👉 Build competitive tracking spreadsheet | Robert | Week 2 | Template ready, first entry complete |
Phase 1 KPIs:
Objective: Increase impression share to 60%+ and push toward 450 reviews.
| Action Item | Owner | Deadline | KPI |
|---|---|---|---|
| 👉 Increase competitor campaign budget by 25% if CPA is on target | Robert | Month 4 | Budget: $1,200-$1,900/month |
| 👉 A/B test 3 new ad variations for competitor campaigns | Robert | Month 4 | 3 new RSAs live |
| 👉 Build dedicated comparison landing page | Robert | Month 4 | Page live at /why-choose-us |
| 👉 Launch technician review incentive program | Stephanie | Month 4 | Program active, first prizes awarded |
| 👉 Increase blog publishing to 2x/month | Robert | Ongoing | 6 new posts (months 4-6) |
| 👉 Start weekly Google Posts on GBP | Robert | Ongoing | 12 posts (months 4-6) |
| 👉 Run quarterly competitive deep-dive | Robert | Month 6 | Report presented to Kalen/Stephanie |
| 👉 Optimize negative keywords based on search term data | Robert | Monthly | Wasted spend reduced by 15% |
Phase 2 KPIs:
Objective: Dominate sewer keywords with 80%+ impression share. Hit 500 reviews.
| Action Item | Owner | Deadline | KPI |
|---|---|---|---|
| 👉 Push sewer keyword bids to maintain 80%+ impression share | Robert | Ongoing | 80%+ impression share on sewer terms |
| 👉 Launch video ads on YouTube targeting competitor audiences | Robert | Month 7 | Video campaign live |
| 👉 Expand competitor campaign to 10+ ad groups (more local competitors) | Robert | Month 7 | 10 ad groups active |
| 👉 Hit 500 Google reviews milestone | Team | Month 9 | 500+ reviews, maintain 4.9 |
| 👉 Create customer video testimonials (3-5 videos) | Robert/Kalen | Month 8 | 3+ videos on YouTube and website |
| 👉 Expand blog to 20+ total posts | Robert | Month 9 | 20 posts live |
| 👉 Conduct pricing competitive analysis | Robert | Month 8 | Report with pricing positioning |
Phase 3 KPIs:
Objective: Expand dominance to secondary services and new geographies.
| Action Item | Owner | Deadline | KPI |
|---|---|---|---|
| 👉 Launch conquest campaigns for water heater and gas line keywords | Robert | Month 10 | 2 new campaign types live |
| 👉 Expand service area targeting to full KC metro (both KS and MO sides) | Robert | Month 10 | Missouri-side campaigns active |
| 👉 Target 600 Google reviews | Team | Month 12 | 600+ reviews |
| 👉 Evaluate hiring additional marketing support | Stephanie | Month 11 | Decision made on marketing hire |
| 👉 Annual competitive strategy refresh | Robert | Month 12 | 2027 strategy document created |
| 👉 Assess revenue trajectory vs $6M target | Robert/Stephanie | Month 12 | On track for $6M annualized |
Phase 4 KPIs:
| Phase | Competitor Campaign | Brand Campaign | Content/SEO | Total Incremental |
|---|---|---|---|---|
| Phase 1 (M1-3) | $900-$1,500/mo | $150-$200/mo | $0 (Robert's time) | $1,050-$1,700/mo |
| Phase 2 (M4-6) | $1,200-$1,900/mo | $150-$200/mo | $500/mo (freelance writer) | $1,850-$2,600/mo |
| Phase 3 (M7-9) | $1,500-$2,500/mo | $150-$200/mo | $500/mo | $2,150-$3,200/mo |
| Phase 4 (M10-12) | $2,000-$3,000/mo | $200-$300/mo | $750/mo | $2,950-$4,050/mo |
Total annual incremental investment: $24,000-$42,000
Expected incremental revenue from competitive campaigns: $300,000-$600,000+
Expected ROAS: 7x-25x
google.com/alertscallbrightside.comTrack how fast each competitor is gaining reviews. If a competitor is gaining faster than BSP, they may overtake your review advantage.
| Competitor | Reviews (Baseline Mar 2026) | Monthly Velocity (Est.) | Projected Dec 2026 |
|---|---|---|---|
| Bright Side Plumbing | 384 | 13+/month (target) | 500+ |
| Roto-Rooter KC | 800+ | 15-25/month | 950+ |
| Anthony Plumbing | 700+ | 10-20/month | 850+ |
| Mr. Rooter KC | 600+ | 8-15/month | 720+ |
| Benjamin Franklin KC | 500+ | 8-12/month | 600+ |
| A-1 Sewer | 450+ | 5-10/month | 520+ |
The Nexus AI Command Center can automate portions of this competitive intelligence workflow.
| Manual Task | Nexus Automation | Status |
|---|---|---|
| Run Auction Insights | google_ads_audit.py pulls auction data via API | ✅ Script exists |
| Monitor competitor reviews | competitor_report_*.json tracks review counts | ✅ Script exists |
| Track keyword positions | keyword_north_star.db stores position data | ✅ Database exists |
| Monitor competitor websites | competitor_watch_log.txt logs changes | ✅ Script exists |
| Generate weekly report | weekly_report_*.html auto-generated | ✅ Script exists |
| Competitor ad copy tracking | Manual via Transparency Center | 🔸 Manual for now |
| New competitor detection | Google Alerts + Auction Insights | 🔸 Semi-automated |
pipeline_log.txt)competitor_report_*.json is updating with fresh data weeklyBright Side Plumbing has the heritage, the ratings, and the sewer expertise to dominate this market. This playbook is the battle plan. Execute it weekly, measure monthly, and adjust quarterly.
"If you can't measure it, you can't manage it." - Tommy Mello
Prepared for Robert Dove | Bright Side Plumbing | Confidential