{
  "slug": "contractor-software-comparison",
  "name": "Contractor Software Comparison (neutral, no affiliate)",
  "publisher": "Level (levelcfo.com)",
  "last_updated": "2026-07-20",
  "license": "CC-BY 4.0, free to cite with attribution",
  "neutrality": "Level sells no field-service software and takes no affiliate or referral fee from any vendor listed. This dataset is published so the comparison is verifiable and reproducible.",
  "confidence_tiers": {
    "verified": "Primary source: vendor documentation, official pricing page, or SEC filing.",
    "third_party_estimate": "Aggregator or reseller estimate for a quote-only product; directional, dated, not an official rate.",
    "anecdotal": "Single review or forum report.",
    "inference": "Architecturally sound conclusion with no direct source; labeled as such."
  },
  "field_service_tools": [
    {
      "name": "ServiceTitan",
      "pricing_model": "Per-tech/month, quote-only. Tiers: Starter, Essentials, The Works.",
      "pricing_estimate_usd_per_tech_month": [250, 400],
      "pricing_confidence": "third_party_estimate",
      "pricing_source": "https://www.servicetitan.com/pricing (model, verified); dollar range: myquoteiq, costbench, opsler, fieldcamp",
      "implementation_estimate_usd": [5000, 30000],
      "contract": "12-month minimum common; multi-year for discounts. Auto-renewal/ETF/renewal-hike reported by customers, not vendor-confirmed.",
      "lock_in": "High",
      "native_job_costing": true,
      "sync_gap": "QuickBooks export 'does not export job details but instead pushes invoice details'; Business Unit maps to QB Class, not a job. Invoices/payments reach the GL; job cost/margin stay in ServiceTitan.",
      "sync_gap_confidence": "verified",
      "sync_gap_source": "https://help.servicetitan.com/docs/understand-data-mapping-to-quickbooks-desktop.md",
      "rating_g2": 4.4,
      "rating_capterra": 4.4,
      "rating_confidence": "second_hand_verify_on_platform",
      "best_fit": "Established multi-crew home-service, ~10+ techs, $2M+, service-heavy with office staff. Poor fit for solo/small (<=3 techs) and new-construction/project."
    },
    {
      "name": "BuildOps",
      "pricing_model": "Per-user/month, quote-only.",
      "pricing_estimate_usd_per_user_month": [200, 400],
      "pricing_confidence": "third_party_estimate",
      "implementation_estimate_usd": [25000, 75000],
      "contract": "Length per-contract, not published. 30-day data-export window after termination (verified via ToS).",
      "lock_in": "High",
      "native_job_costing": true,
      "is_erp": false,
      "runs_payroll": false,
      "sync_gap": "System of action vs QuickBooks system of record. QBO inventory excluded; NetSuite WIP/change-orders behind a paid add-on; Intacct vendors one-way by default. GetApp Accounting sub-score 3.1 / Job Costing 3.5 vs 4.4 overall.",
      "sync_gap_confidence": "verified",
      "sync_gap_source": "https://www.buildops.com/platform/integrations",
      "rating_capterra": 4.4,
      "best_fit": "Commercial-only MEP (HVAC/mechanical/electrical/plumbing/fire), mid-to-large, roughly $5M+ revenue (BuildOps cites $5M-$100M)."
    },
    {
      "name": "Jobber",
      "pricing_model": "Per-plan/month, officially published.",
      "pricing_published_usd_month": { "Core": 49, "Connect": 139, "Grow": 199, "Plus": 499 },
      "extra_user_usd_month": 29,
      "pricing_confidence": "verified",
      "pricing_source": "https://www.getjobber.com/pricing/",
      "quickbooks_sync_tier": "Connect",
      "job_costing_tier": "Grow",
      "contract": "Month-to-month cancel-anytime, or discounted annual prepaid (non-refundable mid-term). 14-day trial, no card.",
      "lock_in": "Low",
      "native_job_costing": true,
      "sync_gap": "QuickBooks Online only (no Desktop). One-way; items map to income accounts only, so labor/material cost and job margin do not post to the GL. Documented duplicate-customer and mapping errors.",
      "sync_gap_confidence": "verified",
      "sync_gap_source": "https://help.getjobber.com/hc/en-us/articles/115009786748",
      "rating_capterra": 4.6,
      "best_fit": "Solo to small residential home-service (2-50 employees). Not for commercial or complex job costing."
    },
    {
      "name": "Housecall Pro",
      "pricing_model": "Per-plan/month, officially published.",
      "pricing_published_usd_month": { "Basic": 79, "Essentials": 189, "Max": 329 },
      "pricing_confidence": "verified",
      "pricing_source": "https://www.housecallpro.com/pricing",
      "quickbooks_sync_tier": "Essentials",
      "job_costing_tier": "Basic",
      "contract": "No long-term contract, cancel anytime, 14-day trial. Phone support is Max tier only.",
      "lock_in": "Low",
      "native_job_costing": true,
      "quickbooks_desktop_supported": true,
      "sync_gap": "Supports QuickBooks Online and Desktop (edge over Jobber). Vendor's own FAQ: its job-costing product 'specifically does not integrate with QuickBooks Online.' Invoices/payments sync; cost/margin do not reach the ledger.",
      "sync_gap_confidence": "verified",
      "sync_gap_source": "https://www.housecallpro.com/features/job-costing/",
      "rating_capterra": 4.7,
      "best_fit": "Small-to-midsize residential HVAC/plumbing/electrical/GC."
    }
  ],
  "accounting_systems": [
    {
      "name": "QuickBooks Online (Plus / Advanced)",
      "pricing_usd_month": { "Plus": [110, 140], "Advanced": [250, 340] },
      "pricing_confidence": "third_party_estimate",
      "pricing_note": "2026 range; sources conflict on exact post-increase sticker; confirm live.",
      "native_wip": false,
      "native_percentage_of_completion": false,
      "native_aia_g702_g703": false,
      "native_retainage": false,
      "job_costing": "General only (Projects, class tracking, estimates-vs-actuals on Advanced).",
      "confidence": "verified",
      "best_fit": "Single-entity contractors under ~$5M, no AIA/certified payroll. Caps at 25 users."
    },
    {
      "name": "QuickBooks Enterprise (Contractor Edition, Desktop)",
      "pricing_usd_year_per_seat": [1700, 5300],
      "pricing_confidence": "third_party_estimate",
      "native_wip": false,
      "native_percentage_of_completion": false,
      "native_aia_g702_g703": false,
      "native_retainage": false,
      "adds_over_qbo": "Change orders, job-costing center, committed-costs-by-job report.",
      "confidence": "verified",
      "best_fit": "Mid-size, inventory/job-cost heavy, up to 40 users."
    },
    {
      "name": "Sage 100 Contractor",
      "pricing_usd_user_month": [115, 160],
      "pricing_confidence": "third_party_estimate",
      "native_wip": true,
      "native_percentage_of_completion": "report + manual journal entry",
      "native_aia_g702_g703": true,
      "native_retainage": true,
      "deployment": "on-premise only",
      "confidence": "verified",
      "best_fit": "First real ERP after QuickBooks, ~$5M-20M."
    },
    {
      "name": "Sage 300 CRE",
      "pricing_confidence": "not_published",
      "native_wip": true,
      "native_percentage_of_completion": true,
      "native_aia_g702_g703": true,
      "native_retainage": true,
      "deployment": "legacy on-premise",
      "confidence": "verified",
      "best_fit": "Large multi-entity GC / real estate / heavy civil, ~$25M-500M+."
    },
    {
      "name": "Sage Intacct Construction",
      "pricing_usd_year": { "base": 8580, "per_extra_user": 2880 },
      "pricing_confidence": "third_party_estimate",
      "native_wip": "automated to GL",
      "native_percentage_of_completion": "automated to GL (ASC 606)",
      "native_aia_g702_g703": "yes (gap closed 2024 R3)",
      "native_retainage": true,
      "deployment": "cloud, multi-entity",
      "confidence": "verified",
      "best_fit": "Cloud multi-entity growth-stage, entry ~$4-5M, $10M-500M+."
    },
    {
      "name": "NetSuite (Oracle)",
      "pricing_usd_month": { "base": 999, "per_user": [99, 199] },
      "pricing_confidence": "third_party_estimate",
      "native_wip": "paid module (Advanced Revenue Management)",
      "native_percentage_of_completion": "paid module",
      "native_aia_g702_g703": false,
      "native_certified_payroll": false,
      "note": "General ERP needing a construction/field layer. Procore<->NetSuite connector does NOT sync prime contracts, budgets, commitments/POs, change orders, or timecards; every export needs manual accounting approval.",
      "confidence": "verified",
      "sync_gap_source": "https://support.procore.com/integrations/netsuite",
      "best_fit": "Larger multi-entity/diversified contractors using OneWorld consolidation."
    },
    {
      "name": "Foundation",
      "pricing_usd_month_start": [400, 500],
      "pricing_confidence": "third_party_estimate",
      "native_wip": true,
      "native_percentage_of_completion": true,
      "native_aia_g702_g703": true,
      "native_retainage": true,
      "native_certified_davis_bacon_union_payroll": true,
      "confidence": "verified",
      "payroll_source": "https://www.foundationsoft.com/features/payroll/",
      "integrations": "Walled garden (own suite; no native ServiceTitan/BuildOps/Procore).",
      "best_fit": "Trade/specialty contractors ~$1M-250M with union/prevailing-wage/certified-payroll complexity."
    },
    {
      "name": "Spectrum (Trimble Viewpoint)",
      "pricing_confidence": "not_reliably_published",
      "native_wip": true,
      "native_aia_g702_g703": true,
      "job_costing": true,
      "union_payroll": true,
      "documented_weakness": "Redundant AP entry (reviewers re-enter vendor info on a second screen; a 1-2 min task takes 10).",
      "confidence": "verified",
      "rating_softwareadvice": 3.9,
      "best_fit": "Mid-to-large project-based firms prioritizing the ledger over project management."
    }
  ],
  "thesis": {
    "statement": "Field platforms can track job cost internally, but the sync to accounting carries invoices and payments, not a reconciled cost figure. The labor burden a field tool applies is an estimated rate rarely trued-up to actual payroll, PO taxes, and card charges (burden is 40-50% of labor), so the general ledger's job margin reads higher than reality.",
    "confidence": "verified",
    "independent_corroboration": "CarpenterCPAs (independent CPA firm): contractors 'convinced they were making 15% margins discover they were actually operating at break-even once we cleaned up their labor tracking.' https://carpentercpas.com/2024/04/the-labor-costing-headache-why-your-job-costing-system-is-probably-broken-and-how-to-fix-it/",
    "carve_out": "The Procore + Agave + construction-ERP stack DOES sync cost codes and commitments; the gap is primarily a field-service/MEP problem.",
    "other_players": ["Profitability Partners", "Adaptive (adaptive.build)", "Agave (useagave.com)", "Apparatus"]
  },
  "sourcing_caveats": "Reddit, G2, Capterra, and TrustRadius block automated fetch; ratings are second-hand except where noted and should be verified on-platform before republishing a specific number. All quote-only pricing is a dated third-party estimate, not an official rate. Jobber and Housecall Pro pricing is officially published."
}
