Service Pricing Calculator

Estimator Engine — Service Pricing Calculator

by hewi333 · MIT license · ★ 122 on GitHub · v1.0.0

Estimator Engine — Service Pricing Calculator cover

Use when calculating service estimates for jobs. Computes pricing based on square footage, ceiling height, service type, travel distance, and severity tiers.

---
name: estimator-engine
description: "Use when calculating service estimates for jobs. Computes pricing based on square footage, ceiling height, service type, travel distance, and severity tiers. Config-driven — plug in your own rate card."
version: "1.0.0"
author: Hermes Agent
license: MIT
metadata:
  hermes:
    tags: [estimator, pricing, small-business, service-quoting]
    related_skills: [crm-lite, quickbooks-online, stripe-payments]
---

# Estimator Engine — Service Pricing Calculator

## Overview
A deterministic pricing engine for a service business. Takes property/job details and returns a structured estimate with line items, ranges, and confidence levels. Designed for agent-mediated use: owners text property details, agent returns instant estimate.

## When to Use

Overview

All pricing is config-driven. Copy the config block below into a pricing_config.json file or environment variables, then plug in your own rates. The numbers shown are EXAMPLES — replace them with your real rate card.

Manual install (npx, ZIP)
Claude Codenpx skills add hewi333/Mom-n-Pop-Skills --skill estimator-engine -g -a claude-code
Claude Code (degit)npx degit hewi333/Mom-n-Pop-Skills/skills/estimator-engine#main ~/.claude/skills/estimator-engine
Claude.ai / desktopZip the folder and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md12.2 KB
Read SKILL.md here
hewi333/main1 file shown
SKILL.md
Show the full text331 lines

Estimator Engine — Service Pricing Calculator

Overview

A deterministic pricing engine for a service business. Takes property/job details and returns a structured estimate with line items, ranges, and confidence levels. Designed for agent-mediated use: owners text property details, agent returns instant estimate.

When to Use

  • Website estimator form — visitor enters sqft, gets instant price range
  • Referral qualification — quick ballpark before site visit
  • Agent creates formal estimate — detailed line items for QuickBooks
  • Insurance claim scoping — severity tier mapping to pricing multipliers

Don't Use For

  • Dynamic pricing / demand-based surges
  • Multi-trade construction estimates
  • Recurring subscription pricing

Configuration

All pricing is config-driven. Copy the config block below into a pricing_config.json file or environment variables, then plug in your own rates. The numbers shown are EXAMPLES — replace them with your real rate card.

# Example configuration — REPLACE ALL VALUES with your own rates
PRICING_CONFIG = {
    "regions": {
        "standard": {
            "label": "Standard Region",
            "counties": ["[REGION_1]", "[REGION_2]"]  # list your service areas here
        },
        "premium": {
            "label": "Premium Region",
            "counties": ["[PREMIUM_REGION_1]"]  # e.g., further travel, higher costs
        }
    },
    "residential_commercial": {
        "standard": {
            "tiers": [
                {"max_sqft": 1000, "rate_per_sqft": 1.55, "minimum": 1200, "cigarette_ext_addon": 350},
                {"max_sqft": 1500, "rate_per_sqft": 1.30, "minimum": 0, "cigarette_ext_addon": 450},
                {"max_sqft": 2500, "rate_per_sqft": 1.25, "minimum": 0, "cigarette_ext_addon": 550},
                {"max_sqft": 5000, "rate_per_sqft": 1.20, "minimum": 0, "cigarette_ext_addon": 650},
                {"max_sqft": 10000, "rate_per_sqft": 1.15, "minimum": 0, "cigarette_ext_addon": 750},
                {"max_sqft": 999999, "rate_per_sqft": 1.10, "minimum": 0, "cigarette_ext_addon": 850}
            ],
            "addons": {
                "pet_trauma_per_sqft": 0.35,
                "surface_defense_per_sqft": 0.35,
                "high_rise_flat": 350
            }
        },
        "premium": {
            "tiers": [
                {"max_sqft": 1500, "rate_per_sqft": 1.70, "minimum": 1500, "cigarette_ext_addon": 450},
                {"max_sqft": 2500, "rate_per_sqft": 1.55, "minimum": 0, "cigarette_ext_addon": 550},
                {"max_sqft": 5000, "rate_per_sqft": 1.50, "minimum": 0, "cigarette_ext_addon": 650},
                {"max_sqft": 10000, "rate_per_sqft": 1.45, "minimum": 0, "cigarette_ext_addon": 750},
                {"max_sqft": 999999, "rate_per_sqft": 1.40, "minimum": 0, "cigarette_ext_addon": 850}
            ],
            "addons": {
                "pet_trauma_per_sqft": 0.35,
                "surface_defense_per_sqft": 0.35,
                "high_rise_flat": 350
            }
        }
    },
    "apartments": {
        "standard": {
            "rates": {"1_bed": 900, "2_bed": 1000, "3_bed": 1100},
            "addons": {"pet_trauma_flat": 150, "surface_defense_flat": 100}
        },
        "premium": {
            "rates": {"1_bed": 900, "2_bed": 1000, "3_bed": 1100},
            "premium_surcharge_flat": 500,
            "addons": {"pet_trauma_flat": 150, "surface_defense_flat": 100}
        }
    },
    "estimate_number_prefix": "EST",
    "estimate_valid_days": 30,
    "range_uncertainty_pct": 0.15  # ±15% around calculated total
}

⚠️ The numbers above are EXAMPLES. They show the structure of a tiered pricing model (per-sqft rates, minimums, add-on surcharges, region differentials). Replace every value with your own business's actual rates.

Pricing Model Structure

Location Tiers
  • Standard Region: Your local/primary service area (lower travel cost)
  • Premium Region: Further service areas with higher travel cost
Property Types
  1. Residential / Commercial — priced by square footage tiers
  2. Apartments — flat rate by bedroom count
EXAMPLE Pricing (Standard Region)
Residential / Commercial — Base Treatment
Square Footage Rate (psf) Ext Add-on (Cigarette >5yrs)
1,000 sf or less $1.55 psf (min $1,200) +$350
1,000–1,500 sf $1.30 psf +$450
1,500–2,500 sf $1.25 psf +$550
2,500–5,000 sf $1.20 psf +$650
5,000–10,000 sf $1.15 psf +$750
10,000 sf or more $1.10 psf +$850

Add-ons (Standard):

  • Pet/Trauma: +$0.35 psf
  • Surface Defense: +$0.35 psf
  • High Rise Condo: +$350 per job
Apartments — Base Treatment
Unit Size Base Price
1 Bedroom $900
2 Bedroom $1,000
3 Bedroom $1,100

Add-ons (Standard Apartments):

  • Pet/Trauma: +$150
  • Surface Defense: +$100
EXAMPLE Pricing (Premium Region)
Residential / Commercial — Base Treatment
Square Footage Rate (psf) Ext Add-on (Cigarette >5yrs)
1,500 sf or less $1.70 psf (min $1,500) +$450
1,500–2,500 sf $1.55 psf +$550
2,500–5,000 sf $1.50 psf +$650
5,000–10,000 sf $1.45 psf +$750
10,000 sf or more $1.40 psf +$850

Add-ons (Premium):

  • Pet/Trauma: +$0.35 psf
  • Surface Defense: +$0.35 psf
  • High Rise Condo: +$350 per job
Apartments — Base Treatment

Same base rates as Standard, plus a Premium Region surcharge of +$500 to each tier.

Add-ons (Premium Apartments):

  • Pet/Trauma: +$150
  • Surface Defense: +$100

CALCULATION RULES
  1. Determine location: Standard or Premium (based on configured region mapping)
  2. Determine property type: Residential/Commercial or Apartment
  3. For Res/Comm: find sf tier → multiply rate × square footage (apply minimum if applicable)
  4. For Apartments: use flat rate by bedroom count
  5. Add applicable surcharges: Pet/Trauma, Surface Defense, Ext (cigarette >5yrs), High Rise
  6. Premium apartments: add the configured premium surcharge to the flat rate
Minimums (from pricing tables)
  • Standard Res/Comm ≤1,000 sf: $1,200 minimum (example)
  • Premium Res/Comm ≤1,500 sf: $1,500 minimum (example)
  • Apartments: flat rates already include minimums

API Interface

Input Schema
class EstimateRequest:
    property_address: str          # Full address (used to determine region/location)
    property_type: str             # "residential_commercial" or "apartment"
    sqft: int = 0                  # Required for residential_commercial
    bedrooms: int = 0              # Required for apartment (1, 2, or 3)
    is_premium_region: bool = False  # Auto-determined from region config, but can override
    add_ons: List[str] = []        # ["pet_trauma", "surface_defense", "cigarette_ext", "high_rise"]
Output Schema
class EstimateResponse:
    estimate_number: str           # EST-YYYY-NNNN
    line_items: List[LineItem]
    subtotal: float
    total: float
    range_low: float               # -15% for uncertainty
    range_high: float              # +15% for uncertainty
    confidence: str                # high/medium/low
    assumptions: List[str]
    valid_days: int = 30
Line Item Structure
class LineItem:
    description: str
    quantity: float
    unit: str                      # "sf", "each", "job"
    unit_price: float
    total: float
    notes: str

Quick Start

from estimator import estimate_job

# Residential/Commercial example (Standard pricing)
request = {
    "property_address": "123 Main St, [CITY], [STATE] [ZIP]",  # Standard Region
    "property_type": "residential_commercial",
    "sqft": 2500,
    "add_ons": ["pet_trauma"]
}

result = estimate_job(request)
# Returns structured estimate with line items, ranges, total

# Apartment example (Premium Region)
request = {
    "property_address": "456 Ocean Dr, [CITY], [STATE] [ZIP]",  # Premium Region
    "property_type": "apartment",
    "bedrooms": 2,
    "add_ons": ["surface_defense"]
}

result = estimate_job(request)
# Returns structured estimate

Agent Integration Patterns

Website Estimator Form → Instant Range
User: "2500 sqft house, [CITY], pet odor, add surface defense"
Agent: Determines Standard Region, Res/Comm tier 1500-2500 = $1.25/sf
       Base: 2500 × $1.25 = $3,125
       Pet/Trauma: 2500 × $0.35 = $875
       Surface Defense: 2500 × $0.35 = $875
       Total: $4,875 → Returns "Estimated $4,100–$5,600 (est. $4,875)"
Formal Estimate for QuickBooks
User: "Create estimate for John Smith, 123 Main St [CITY], 2500 sqft house, pet trauma, surface defense"
Agent: Creates estimate record in CRM, generates QuickBooks estimate with line items, emails PDF
Quick Quote
User: "Realtor needs ballpark for 2-bed apartment, cigarette smoke >5yrs"
Agent: Premium Region, Apartment 2-bed = $1,000 + $500 Premium + $150 cigarette
       Total: $1,650 → Returns "$1,400–$1,900" + disclaimer

Common Pitfalls

  1. Region misclassification — Make sure your region mapping is configured correctly and matches across estimator-engine, website, and CRM
  2. Property type confusion — Apartments use flat bedroom rates, NOT square footage pricing
  3. Premium apartment surcharge — Must add the configured premium surcharge to the flat rate for Premium Region apartments
  4. Cigarette >5yrs — Only applies as "Ext Add-on" flat fee per tier (not per sf)
  5. Minimums — Check configured minimums for small square footage tiers
  6. High Rise Condo — Flat fee per job (applies to both Standard and Premium)
  7. Pet/Trauma + Surface Defense — Both are per-sf for Res/Comm, flat fee for Apartments

Verification Checklist

  • Region correctly maps to Standard vs Premium (from your config)
  • Property type determines pricing method (sf tiers vs bedroom flat rate)
  • Square footage tier lookup returns correct rate
  • Minimums enforced (from your config)
  • Add-ons calculate correctly (per-sf for Res/Comm, flat for Apartments)
  • Cigarette >5yrs uses tier-based flat fee (not per-sf)
  • Premium apartments add surcharge to flat rate
  • High Rise Condo adds configured flat fee
  • Range ±15% around calculated total
  • Estimate number format: EST-YYYY-NNNN (sequential)
  • Output includes assumptions list for transparency

One-Shot Recipes

"Quick ballpark for website (Standard Res/Comm)"
from estimator import quick_quote
quick_quote(property_type="residential_commercial", sqft=2000, is_premium_region=False, add_ons=["pet_trauma"])
# → "Estimated $3,400–$4,600" (2000 × $1.25 = $2,500 + 2000 × $0.35 = $700 + 2000 × $0.35 = $700 = $3,900)
"Full estimate for QuickBooks (Premium Apartment)"
from estimator import formal_estimate
estimate = formal_estimate(
    customer_name="Jane Doe",
    property_address="456 Ocean Dr, [CITY], [STATE] [ZIP]",
    property_type="apartment",
    bedrooms=2,
    is_premium_region=True,
    add_ons=["cigarette_ext", "surface_defense"]
)
# → Creates CRM estimate record, returns QB-ready line items
# Base: $1,000 (2-bed) + $500 (Premium) = $1,500
# Cigarette ext: +$150, Surface Defense: +$100 = $1,750 total
"Batch quote for realtor list"
from estimator import batch_quote
properties = [
    {"address": "456 Palm Ave [CITY], [STATE] [ZIP]", "property_type": "residential_commercial", "sqft": 3200, "add_ons": ["cigarette_ext"]},  # Standard Region
    {"address": "789 Ocean Dr [CITY], [STATE] [ZIP]", "property_type": "apartment", "bedrooms": 2, "add_ons": ["pet_trauma"]},  # Standard Region
    {"address": "1000 Collins Ave [CITY], [STATE] [ZIP]", "property_type": "residential_commercial", "sqft": 2800, "is_premium_region": True, "add_ons": ["high_rise"]},  # Premium Region
]
for prop in properties:
    print(batch_quote(prop))
1---
2name: estimator-engine
3description: "Use when calculating service estimates for jobs. Computes pricing based on square footage, ceiling height, service type, travel distance, and severity tiers. Config-driven — plug in your own rate card."
4version: "1.0.0"
5author: Hermes Agent
6license: MIT
7metadata:
8 hermes:
9 tags: [estimator, pricing, small-business, service-quoting]
10 related_skills: [crm-lite, quickbooks-online, stripe-payments]
11---
12 
13# Estimator Engine — Service Pricing Calculator
14 
15## Overview
16A deterministic pricing engine for a service business. Takes property/job details and returns a structured estimate with line items, ranges, and confidence levels. Designed for agent-mediated use: owners text property details, agent returns instant estimate.
17 
18## When to Use
19- **Website estimator form** — visitor enters sqft, gets instant price range
20- **Referral qualification** — quick ballpark before site visit
21- **Agent creates formal estimate** — detailed line items for QuickBooks
22- **Insurance claim scoping** — severity tier mapping to pricing multipliers
23 
24## Don't Use For
25- Dynamic pricing / demand-based surges
26- Multi-trade construction estimates
27- Recurring subscription pricing
28 
29## Configuration
30 
31All pricing is **config-driven**. Copy the config block below into a `pricing_config.json`
32file or environment variables, then plug in your own rates. The numbers shown are
33**EXAMPLES** — replace them with your real rate card.
34 
35```python
36# Example configuration — REPLACE ALL VALUES with your own rates
37PRICING_CONFIG = {
38 "regions": {
39 "standard": {
40 "label": "Standard Region",
41 "counties": ["[REGION_1]", "[REGION_2]"] # list your service areas here
42 },
43 "premium": {
44 "label": "Premium Region",
45 "counties": ["[PREMIUM_REGION_1]"] # e.g., further travel, higher costs
46 }
47 },
48 "residential_commercial": {
49 "standard": {
50 "tiers": [
51 {"max_sqft": 1000, "rate_per_sqft": 1.55, "minimum": 1200, "cigarette_ext_addon": 350},
52 {"max_sqft": 1500, "rate_per_sqft": 1.30, "minimum": 0, "cigarette_ext_addon": 450},
53 {"max_sqft": 2500, "rate_per_sqft": 1.25, "minimum": 0, "cigarette_ext_addon": 550},
54 {"max_sqft": 5000, "rate_per_sqft": 1.20, "minimum": 0, "cigarette_ext_addon": 650},
55 {"max_sqft": 10000, "rate_per_sqft": 1.15, "minimum": 0, "cigarette_ext_addon": 750},
56 {"max_sqft": 999999, "rate_per_sqft": 1.10, "minimum": 0, "cigarette_ext_addon": 850}
57 ],
58 "addons": {
59 "pet_trauma_per_sqft": 0.35,
60 "surface_defense_per_sqft": 0.35,
61 "high_rise_flat": 350
62 }
63 },
64 "premium": {
65 "tiers": [
66 {"max_sqft": 1500, "rate_per_sqft": 1.70, "minimum": 1500, "cigarette_ext_addon": 450},
67 {"max_sqft": 2500, "rate_per_sqft": 1.55, "minimum": 0, "cigarette_ext_addon": 550},
68 {"max_sqft": 5000, "rate_per_sqft": 1.50, "minimum": 0, "cigarette_ext_addon": 650},
69 {"max_sqft": 10000, "rate_per_sqft": 1.45, "minimum": 0, "cigarette_ext_addon": 750},
70 {"max_sqft": 999999, "rate_per_sqft": 1.40, "minimum": 0, "cigarette_ext_addon": 850}
71 ],
72 "addons": {
73 "pet_trauma_per_sqft": 0.35,
74 "surface_defense_per_sqft": 0.35,
75 "high_rise_flat": 350
76 }
77 }
78 },
79 "apartments": {
80 "standard": {
81 "rates": {"1_bed": 900, "2_bed": 1000, "3_bed": 1100},
82 "addons": {"pet_trauma_flat": 150, "surface_defense_flat": 100}
83 },
84 "premium": {
85 "rates": {"1_bed": 900, "2_bed": 1000, "3_bed": 1100},
86 "premium_surcharge_flat": 500,
87 "addons": {"pet_trauma_flat": 150, "surface_defense_flat": 100}
88 }
89 },
90 "estimate_number_prefix": "EST",
91 "estimate_valid_days": 30,
92 "range_uncertainty_pct": 0.15 # ±15% around calculated total
93}
94```
95 
96> ⚠️ **The numbers above are EXAMPLES.** They show the *structure* of a tiered
97> pricing model (per-sqft rates, minimums, add-on surcharges, region differentials).
98> Replace every value with your own business's actual rates.
99 
100## Pricing Model Structure
101 
102### Location Tiers
103- **Standard Region:** Your local/primary service area (lower travel cost)
104- **Premium Region:** Further service areas with higher travel cost
105 
106### Property Types
1071. **Residential / Commercial** — priced by square footage tiers
1082. **Apartments** — flat rate by bedroom count
109 
110### EXAMPLE Pricing (Standard Region)
111 
112#### Residential / Commercial — Base Treatment
113 
114| Square Footage | Rate (psf) | Ext Add-on (Cigarette >5yrs) |
115|---|---|---|
116| 1,000 sf or less | $1.55 psf (min $1,200) | +$350 |
117| 1,000–1,500 sf | $1.30 psf | +$450 |
118| 1,500–2,500 sf | $1.25 psf | +$550 |
119| 2,500–5,000 sf | $1.20 psf | +$650 |
120| 5,000–10,000 sf | $1.15 psf | +$750 |
121| 10,000 sf or more | $1.10 psf | +$850 |
122 
123**Add-ons (Standard):**
124- Pet/Trauma: +$0.35 psf
125- Surface Defense: +$0.35 psf
126- High Rise Condo: +$350 per job
127 
128#### Apartments — Base Treatment
129 
130| Unit Size | Base Price |
131|---|---|
132| 1 Bedroom | $900 |
133| 2 Bedroom | $1,000 |
134| 3 Bedroom | $1,100 |
135 
136**Add-ons (Standard Apartments):**
137- Pet/Trauma: +$150
138- Surface Defense: +$100
139 
140### EXAMPLE Pricing (Premium Region)
141 
142#### Residential / Commercial — Base Treatment
143 
144| Square Footage | Rate (psf) | Ext Add-on (Cigarette >5yrs) |
145|---|---|---|
146| 1,500 sf or less | $1.70 psf (min $1,500) | +$450 |
147| 1,500–2,500 sf | $1.55 psf | +$550 |
148| 2,500–5,000 sf | $1.50 psf | +$650 |
149| 5,000–10,000 sf | $1.45 psf | +$750 |
150| 10,000 sf or more | $1.40 psf | +$850 |
151 
152**Add-ons (Premium):**
153- Pet/Trauma: +$0.35 psf
154- Surface Defense: +$0.35 psf
155- High Rise Condo: +$350 per job
156 
157#### Apartments — Base Treatment
158 
159Same base rates as Standard, plus a **Premium Region surcharge** of +$500 to each tier.
160 
161**Add-ons (Premium Apartments):**
162- Pet/Trauma: +$150
163- Surface Defense: +$100
164 
165---
166 
167### CALCULATION RULES
168 
1691. **Determine location:** Standard or Premium (based on configured region mapping)
1702. **Determine property type:** Residential/Commercial or Apartment
1713. **For Res/Comm:** find sf tier → multiply rate × square footage (apply minimum if applicable)
1724. **For Apartments:** use flat rate by bedroom count
1735. **Add applicable surcharges:** Pet/Trauma, Surface Defense, Ext (cigarette >5yrs), High Rise
1746. **Premium apartments:** add the configured premium surcharge to the flat rate
175 
176### Minimums (from pricing tables)
177- **Standard Res/Comm ≤1,000 sf:** $1,200 minimum (example)
178- **Premium Res/Comm ≤1,500 sf:** $1,500 minimum (example)
179- **Apartments:** flat rates already include minimums
180 
181## API Interface
182 
183### Input Schema
184```python
185class EstimateRequest:
186 property_address: str # Full address (used to determine region/location)
187 property_type: str # "residential_commercial" or "apartment"
188 sqft: int = 0 # Required for residential_commercial
189 bedrooms: int = 0 # Required for apartment (1, 2, or 3)
190 is_premium_region: bool = False # Auto-determined from region config, but can override
191 add_ons: List[str] = [] # ["pet_trauma", "surface_defense", "cigarette_ext", "high_rise"]
192```
193 
194### Output Schema
195```python
196class EstimateResponse:
197 estimate_number: str # EST-YYYY-NNNN
198 line_items: List[LineItem]
199 subtotal: float
200 total: float
201 range_low: float # -15% for uncertainty
202 range_high: float # +15% for uncertainty
203 confidence: str # high/medium/low
204 assumptions: List[str]
205 valid_days: int = 30
206```
207 
208### Line Item Structure
209```python
210class LineItem:
211 description: str
212 quantity: float
213 unit: str # "sf", "each", "job"
214 unit_price: float
215 total: float
216 notes: str
217```
218 
219## Quick Start
220 
221```python
222from estimator import estimate_job
223 
224# Residential/Commercial example (Standard pricing)
225request = {
226 "property_address": "123 Main St, [CITY], [STATE] [ZIP]", # Standard Region
227 "property_type": "residential_commercial",
228 "sqft": 2500,
229 "add_ons": ["pet_trauma"]
230}
231 
232result = estimate_job(request)
233# Returns structured estimate with line items, ranges, total
234 
235# Apartment example (Premium Region)
236request = {
237 "property_address": "456 Ocean Dr, [CITY], [STATE] [ZIP]", # Premium Region
238 "property_type": "apartment",
239 "bedrooms": 2,
240 "add_ons": ["surface_defense"]
241}
242 
243result = estimate_job(request)
244# Returns structured estimate
245```
246 
247## Agent Integration Patterns
248 
249### Website Estimator Form → Instant Range
250```
251User: "2500 sqft house, [CITY], pet odor, add surface defense"
252Agent: Determines Standard Region, Res/Comm tier 1500-2500 = $1.25/sf
253 Base: 2500 × $1.25 = $3,125
254 Pet/Trauma: 2500 × $0.35 = $875
255 Surface Defense: 2500 × $0.35 = $875
256 Total: $4,875 → Returns "Estimated $4,100–$5,600 (est. $4,875)"
257```
258 
259### Formal Estimate for QuickBooks
260```
261User: "Create estimate for John Smith, 123 Main St [CITY], 2500 sqft house, pet trauma, surface defense"
262Agent: Creates estimate record in CRM, generates QuickBooks estimate with line items, emails PDF
263```
264 
265### Quick Quote
266```
267User: "Realtor needs ballpark for 2-bed apartment, cigarette smoke >5yrs"
268Agent: Premium Region, Apartment 2-bed = $1,000 + $500 Premium + $150 cigarette
269 Total: $1,650 → Returns "$1,400–$1,900" + disclaimer
270```
271 
272## Common Pitfalls
273 
2741. **Region misclassification** — Make sure your region mapping is configured correctly and matches across estimator-engine, website, and CRM
2752. **Property type confusion** — Apartments use flat bedroom rates, NOT square footage pricing
2763. **Premium apartment surcharge** — Must add the configured premium surcharge to the flat rate for Premium Region apartments
2774. **Cigarette >5yrs** — Only applies as "Ext Add-on" flat fee per tier (not per sf)
2785. **Minimums** — Check configured minimums for small square footage tiers
2796. **High Rise Condo** — Flat fee per job (applies to both Standard and Premium)
2807. **Pet/Trauma + Surface Defense** — Both are per-sf for Res/Comm, flat fee for Apartments
281 
282## Verification Checklist
283 
284- [ ] Region correctly maps to Standard vs Premium (from your config)
285- [ ] Property type determines pricing method (sf tiers vs bedroom flat rate)
286- [ ] Square footage tier lookup returns correct rate
287- [ ] Minimums enforced (from your config)
288- [ ] Add-ons calculate correctly (per-sf for Res/Comm, flat for Apartments)
289- [ ] Cigarette >5yrs uses tier-based flat fee (not per-sf)
290- [ ] Premium apartments add surcharge to flat rate
291- [ ] High Rise Condo adds configured flat fee
292- [ ] Range ±15% around calculated total
293- [ ] Estimate number format: EST-YYYY-NNNN (sequential)
294- [ ] Output includes assumptions list for transparency
295 
296## One-Shot Recipes
297 
298### "Quick ballpark for website (Standard Res/Comm)"
299```python
300from estimator import quick_quote
301quick_quote(property_type="residential_commercial", sqft=2000, is_premium_region=False, add_ons=["pet_trauma"])
302# → "Estimated $3,400–$4,600" (2000 × $1.25 = $2,500 + 2000 × $0.35 = $700 + 2000 × $0.35 = $700 = $3,900)
303```
304 
305### "Full estimate for QuickBooks (Premium Apartment)"
306```python
307from estimator import formal_estimate
308estimate = formal_estimate(
309 customer_name="Jane Doe",
310 property_address="456 Ocean Dr, [CITY], [STATE] [ZIP]",
311 property_type="apartment",
312 bedrooms=2,
313 is_premium_region=True,
314 add_ons=["cigarette_ext", "surface_defense"]
315)
316# → Creates CRM estimate record, returns QB-ready line items
317# Base: $1,000 (2-bed) + $500 (Premium) = $1,500
318# Cigarette ext: +$150, Surface Defense: +$100 = $1,750 total
319```
320 
321### "Batch quote for realtor list"
322```python
323from estimator import batch_quote
324properties = [
325 {"address": "456 Palm Ave [CITY], [STATE] [ZIP]", "property_type": "residential_commercial", "sqft": 3200, "add_ons": ["cigarette_ext"]}, # Standard Region
326 {"address": "789 Ocean Dr [CITY], [STATE] [ZIP]", "property_type": "apartment", "bedrooms": 2, "add_ons": ["pet_trauma"]}, # Standard Region
327 {"address": "1000 Collins Ave [CITY], [STATE] [ZIP]", "property_type": "residential_commercial", "sqft": 2800, "is_premium_region": True, "add_ons": ["high_rise"]}, # Premium Region
328]
329for prop in properties:
330 print(batch_quote(prop))
331```
View all files on GitHub →

Details

Version
1.0.0
License
MIT
Stars on the repo
★ 122
Checked
Source
hewi333/Mom-n-Pop-Skills ↗
Creator
hewi333 · 12 listings
View creator

Similar skills

See all →
SkillMobile App Pricing Advisorappeeky/aso-skills · by appeekyWhen the user wants to design or optimize their app's monetization — pricing, paywalls, subscriptions, or in-app purchases. Also use when the user mentions "pricing", "paywall", "subscription", "IAP", "how to monetize", "revenue optimization", "free trial", or "conversion to paid". For retention impact, see retention-optimization. For competitive pricing, see competitor-analysis.★ 2.2k GitHub starsSkillPaywall Optimization Specialistappeeky/aso-skills · by appeekyWhen the user wants to design, test, or optimize their app's paywall — layout, copy, pricing display, trial offers, plan structure, hard vs soft paywall, paywall placement, or paywall A/B tests. Use when the user mentions "paywall", "paywall design", "paywall conversion", "trial-to-paid", "soft paywall", "hard paywall", "paywall A/B test", "paywall copy", "plan picker", "annual vs monthly display", "best paywall", "RevenueCat paywall", "Superwall", "Adapty", or "my paywall isn't converting". For overall pricing strategy and monetization model choice, see monetization-strategy. For trial nurture, dunning, and churn, see subscription-lifecycle. For where in the onboarding the paywall fires, see onboarding-optimization.★ 2.2k GitHub starsSkillPricing and Packagingcbrock84/headcount · by cbrock84Sets price, structures packages and tiers, and designs the monetization surfaces that carry them — upgrade paths, paywalls, and offer construction. Use this to set or change pricing, design or restructure tiers, choose a pricing metric, build an offer, design upgrade prompts and paywalls, or evaluate whether a pricing change is safe to make.★ 2k GitHub starsSkillWillingness-to-Pay AnalyzerRefoundAI/lenny-skills · by RefoundAIHelp users validate willingness-to-pay, select the right value metrics, and continuously optimize pricing and packaging to drive growth.★ 1.4k GitHub starsSkill100M Money Modelsgetagentseal/founder-playbook · by getagentsealDesigns a deliberate sequence of offers (attraction, upsell, downsell, continuity) so a new customer generates enough cash within ~30 days to fund acquiring the next one - Alex Hormozi's client-financed acquisition. Use when customers buy once and never again, when CAC eats all the profit, when you can't afford to advertise profitably, when the business grows but cash shrinks, when you sell one product at one price, when deciding what to sell first or next, or when structuring upsells, downsells, payment plans, trials, and continuity. Covers the 30-day payback rule, attraction/upsell/downsell/continuity offer types, and cash-flow sequencing for validated markets.★ 729 GitHub starsSkillGrand Slam Offer Designergetagentseal/founder-playbook · by getagentsealDesigns irresistible Grand Slam Offers using Alex Hormozi's value equation, obstacle-solution mapping, value-cost trim/stack, and offer-naming patterns. Use when fixing low conversion rates, packaging products, pricing services, designing high-converting offers, or when prospects browse but don't buy. Covers value stacking, guarantees, scarcity, urgency, and pricing psychology for validated markets.★ 729 GitHub stars

More from hewi333

SkillConstruction Project Managerhewi333/Mom-n-Pop-Skills · by hewi333Construction company AI agent — orchestrates email (Google Workspace), project management (JobTread Pave API), and file routing for a construction business. Handles email triage, attachment routing to JobTread, project status, task management, and daily briefings via Telegram. Reference implementation for a construction/trades business with an existing email→Drive→PM pipeline.★ 122 GitHub starsSkillLightweight SQLite CRMhewi333/Mom-n-Pop-Skills · by hewi333Use when tracking customer interactions, managing leads, or building a lightweight CRM for small businesses without dedicated CRM software. Stores contacts, leads, activities, estimates, and communications in local SQLite.★ 122 GitHub starsSkillBusiness Financial Analyzerhewi333/Mom-n-Pop-Skills · by hewi333Analyze business financials from a QuickBooks CSV export. Identifies cost categories, drills down on areas to cut costs, flags low-margin jobs, and spots revenue opportunities. CSV import now, QuickBooks API wiring optional later. Designed for small business owners who don't read spreadsheets — agent translates the numbers into plain English.★ 122 GitHub starsSkillLead-to-Payment Pipelinehewi333/Mom-n-Pop-Skills · by hewi333Use when a new lead arrives (email, Telegram message, or website form) and needs to move through the full pipeline: qualify the lead, generate an estimate, get owner approval, create a payment link, draft a customer email for owner review, and track payment. This is the master flow that orchestrates estimator-engine, crm-lite, stripe-payments, himalaya (IMAP/SMTP), and quickbooks-online. Owner stays in the loop and approves before anything is sent or charged.★ 122 GitHub starsSkillMailchimp Integration Agenthewi333/Mom-n-Pop-Skills · by hewi333Use when integrating with Mailchimp for audience management, campaigns, and automation. Handles API key auth, audience segmentation, and campaign workflows.★ 122 GitHub starsSkillMailchimp Campaign Managerhewi333/Mom-n-Pop-Skills · by hewi333Draft and run Mailchimp email campaigns with AI-generated content, subject line A/B testing, and optimal send timing. Agent drafts the email + subject variants, owner approves in Telegram, agent creates the campaign in Mailchimp. Turns a dormant contact list into an active marketing channel.★ 122 GitHub stars