🚀 7/16 Release
✨ Enhancements
🔧 Job-Based Plans (new plan type)
Brand-new plan type where awards are calculated per job from your field-service data: plan structure, API, calculation engine, and award rollup
Plan builder wizard: eligibility + award rules, award modes, additional KPIs and qualifiers steps, and a distribution review + confirmation flow
Admin plan view: Plan Summary cards with right sidebar, Performance tab with a Jobs sub-pane (expandable per-employee drill-down) and an Individual Performance sub-pane
Per-rule payout breakdown drawer on the admin Payouts tab
Employee experience: Jobs tab on the plan page (web)
"Refresh sync" on the Performance tab triggers an Integration Hub sync + award recalc, and awards now also recalc automatically when a sync completes
New "Job Name" system field, saved and shown alongside Job ID on job results
Data attributes catalog powering job-field mapping
Text-based eligibility rules (e.g., Callbacks is "No")
Custom SQL job-award metrics for advanced award formulas
Per-plan dataset selection (primary + optional join dataset) in backoffice
Employee matching on job data now works across all providers (Google Sheets, Jobber, Housecall Pro, etc.), not just ServiceTitan
Integration Hub metric preview now shows the actual list of jobs with amount, date, and employee
Award titles now show the metric name (e.g., "Gross Profit") instead of the raw formula
Custom attribute naming is now inline in the dropdown instead of a separate component
👥 People
Role levels can now be changed even when actively used in a plan
🐛 Bug Fixes
🔧 Job-Based Plans
Added mapping-time warnings that flag columns whose values can't be read as the target attribute (e.g., dollar strings mapped to a percent field)
Job rows missing an employee value are now skipped instead of failing the whole dataset
Job-rows date filter no longer silently returns every job for every period on sheet-based sources
💰 Payouts & Plans
Fixed ratings not saving during distribution review after enrollments were changed mid-session on a pool plan
Fixed data not saving on manual review distributions
📊 Metrics & Data
Dataset "last updated" date now matches the actual last sync time
🗓️ July 24 Release
✨ Enhancements
📊 Dashboard
Dashboard overhaul: leaderboards front and center, plus new settings and layout
💳 Billing
AI token usage is now billed through Stripe
🗂️ Datasets
Google Sheet–backed dataset pages now link directly to the sheet, not just a CSV download
🐛 Bug Fixes
👋 Onboarding
Fixed backoffice-created companies getting trapped in the Get Started signup wizard on login
🔒 Security
Sidekiq web console now requires internal authentication (was previously reachable unauthenticated in all environments)
🗓️ July 27 Release
✨ Enhancements
🚀 Activation
New self-serve activation flow — kickoff → audit → plan → go live → welcome, walkable end to end
Instant baseline from self-reported revenue and average ticket, so a shop sees its audit in ~30 seconds without connecting an integration first
Audit screen: baseline KPI strip, opportunity score, dollar-ranked opportunity cards with "see where this comes from" provenance, and industry quartile benchmarks
Recommended plan: deterministic scorecard with plain-English rationale, AI narration, and preset refine chips
ROI + Go live: projected gain, P&L view, and Stripe checkout for Core/Essentials with seat-band pricing
🐛 Bug Fixes
📊 Dashboard
Fixed dashboard settings not saving because of a stale config
🗓️ July 28 Release
✨ Enhancements
🚀 Activation
AI Plan Architect step now reads as thinking — skeleton plan cards and progressive narration instead of an empty column that fills in all at once
📝 Sign-up
reCAPTCHA v3 on account creation, layered on top of the existing honeypot — covers both the get-started wizard and the legacy sign-up form
👋 Onboarding
Zuper and Salesforce are now separate integration chips instead of one combined "Zuper / Salesforce" option
🐛 Bug Fixes
📋 Plan Creation
Qualifiers with a target of 0 now save correctly — the target was silently dropped on save, which left the qualifier permanently unsatisfiable and projected $0 for every dependent KPI
🚀 Activation
Removed the Opportunity Score card from the business audit page — strong shops were scoring 0/100 "Limited headline upside" on the same page that showed them $89.6K/yr of reachable upside
