# Quote Rules Use this only when pricing or behavior rules are relevant. For general resume context, the four startup docs are enough. ## Pricing source of truth - Built-in pricing defaults live in `quote-pricing.js`. - `package-prices.json` may override them at startup. - `readFormState()` in `quote-engine.js` maps the DOM into a normalized state object. - `calculateQuote(state, pricing)` in `quote-engine.js` is the current pricing source of truth. - `calcQuote()` in `SVS-MSP-Calculator.js` remains as the compatibility wrapper used by the rest of the runtime. ## Core billing rules - User package base rate: - `RATE_M365_M2M` ($140) when M365 Included + month-to-month - `RATE_M365` ($130) when M365 Included + 12-month or 24-month term - `RATE_BYOL` ($110) when BYOL is selected (all terms) - M365 retail comparison: monthly $36, annual $29 — savings shown in UI - User add-ons: - Extended Hours - 1Password - INKY Pro - Zero Trust User Seat - Endpoint pricing: - `RATE_ENDPOINT` per endpoint - `ADDON_USB_BLOCKING` per endpoint when selected - `ADDON_BARE_METAL_BACKUP` per endpoint when selected - Server pricing: - `RATE_SERVER` per server - Zero Trust Networking: - `ZT_SEAT_RATE` per non-user device seat - `ZT_ROUTER_RATE` per HaaS device - VoIP: - tier rate per seat - optional desk phone add-on - optional eFax add-on priced per seat ## Site admin fee rules - Base subtotal for threshold logic: - user base - endpoint base - server base - Site admin base: - `max(ADMIN_FEE_FLOOR, ADMIN_FEE_MINIMUM - baseSubtotal)` - Additional site admin charges: - `ADMIN_FEE_ZT` when Zero Trust is active - `ADMIN_1PWM_PCT` surcharge on 1Password MRR when 1Password is selected - Admin fee can be manually waived ## Contract term rules - Month-to-month: no MRR discount, full onboarding fee - 12-month: 3% off MRR + 50% off onboarding fee - 24-month: 5% off MRR + complimentary onboarding (fully waived) ## Onboarding fee rules - Default onboarding fee is auto-calculated as 50% of pre-discount MRR - 12-month term auto-applies 50% discount to onboarding (25% of MRR) - 24-month term fully waives onboarding (complimentary) - Manual entry overrides the auto value until reset - Manual override value is preserved in `data-manual-value` attribute across term switches - Waived onboarding disables the input and shows complimentary state - Onboarding fee is not included in headline MRR ## Tax rules - Ontario HST is optional (user toggle) - HST is applied to discounted MRR, not base MRR - Print/PDF export respects the user's HST toggle state (does not force HST on) ## Savings and comparison rules - M365 bundle savings are shown when M365 Included is selected - BYOL can trigger a missed-savings callout - VoIP can compare against a current phone bill input - In-house IT comparison uses internal tool-cost and salary assumptions from pricing config ## eFax pricing decision - The approved business rule is per seat - Current logic already calculates the eFax add-on per VoIP seat - Any remaining `per line` sales copy should be aligned in a small approved copy pass ## JSON export rules - Export includes `version: '1.0'` as first field in payload - Schema defined in STAGE2-BUILD-PROMPT.md - Intended for n8n workflow consumption ## Admin fee nudge - When Zero Trust is active (`ztActive`), an amber nudge warns about the $250 admin fee supplement - Nudge is informational — does not block configuration