Overview
Incentives Dashboard
9:41
Incentives
Active Bonuses 8 2 new
Volume Tiers 4 All active
Cross-Sells 23 +38%
Avg per Rep $535 +12%
1
MJ
Marcus Johnson
Gold Tier
$1,240
7 bonuses
2
SR
Sarah Rodriguez
Silver Tier
$980
5 bonuses
3
DW
David Williams
Bronze Tier
$720
4 bonuses
12 Total Reps
Bronze (5)
Silver (4)
Gold (2)
Platinum (1)

IncentivesDashboard screen

useQuery(api.incentives.dashboard) / useQuery(api.incentives.topEarners)

Cross-Sell Bonuses
9:41
Cross-Sell Bonuses
Roof + Gutter Bundle
Roofing → Gutter Install
12 earned Min $2,500
$150
HVAC + Duct Cleaning
HVAC Repair → Duct Service
8 earned Min $1,000
10%
Paint + Drywall Repair
Interior Paint → Drywall Patch
3 earned Min $800
$75
Electrical + Panel Upgrade
Rewiring → Panel Upgrade
0 earned Min $3,000
$200
Total Paid Out $3,425
Revenue Generated $48,200
ROI 14.1x

CrossSellBonusesList screen

useQuery(api.incentives.crossSellBonuses.list) / useMutation(api.incentives.crossSellBonuses.toggle)

Configuration
Create Cross-Sell Bonus
9:41
New Bonus
Roofing
Gutter Installation
Flat Amount
Percentage
Bonus only triggers when combined job value meets this minimum
Feb 1, 2026
No end date
All Reps
Select Reps
Managers Only

CreateCrossSellBonus screen

useMutation(api.incentives.crossSellBonuses.create) / useQuery(api.services.list)

Volume Tiers
9:41
Volume Tiers
Bronze Starter
$0 - $10,000 / month
1.0x
Silver Growth
$10,001 - $25,000 / month
1.15x
Gold Elite
$25,001 - $50,000 / month
1.35x
Platinum MVP
$50,001+ / month
1.5x

VolumeTiersList screen

useQuery(api.incentives.volumeTiers.list) / useQuery(api.incentives.volumeTiers.qualifyingCounts)

Create Volume Tier
9:41
New Tier
Revenue
Jobs
New Customers
Rep must generate revenue within this range during the qualification period
Multiplier
Flat Bonus
Applied to base commission rate for all jobs at this tier
Weekly
Monthly
Quarterly

CreateVolumeTier screen

useMutation(api.incentives.volumeTiers.create) / volumeTierSchema validator

Performance
Rep Incentive View
9:41
Marcus Johnson
Gold Platinum
$36,200 earned $50,001 needed
$13,801 away from Platinum (1.5x multiplier)
Bonuses Earned 7
Total Bonus $1,240
Projected Monthly Payout
$2,870
Base $1,630 + Bonuses $1,240
Roof + Gutter Bundle
Feb 22, 2026 · Job #4812
+$150
HVAC + Duct Cleaning
Feb 19, 2026 · Job #4798
+$95
Paint + Drywall Repair
Feb 15, 2026 · Job #4776
+$75
Roof + Gutter Bundle
Feb 12, 2026 · Job #4751
+$150

RepIncentiveView screen

useQuery(api.incentives.repSummary) / useQuery(api.incentives.repHistory)

Leaderboard
9:41
Leaderboard
Week
Month
Quarter
Year
SR
Sarah R.
$980
2
MJ
Marcus J.
$1,240
1
DW
David W.
$720
3
4
KC
Kevin Chen
Bronze +15%
$540
3 bonuses
5
AP
Angela Patterson
Silver -8%
$425
2 bonuses
6
TM
Tyler Martinez
Bronze +22%
$380
2 bonuses
7
JH
Jessica Howard
Bronze 0%
$300
1 bonus
8
RB
Robert Baker
Bronze +5%
$225
1 bonus

IncentiveLeaderboard screen

useQuery(api.incentives.leaderboard) / periodFilter state

Incentive Analytics
9:41
Analytics
Total Cost $4,280 +18%
Revenue Generated $62,400 +31%
Incentive ROI 14.6x
Cost per Sale $186 -9%
Roof + Gutter
18.2x
HVAC + Duct
14.7x
Paint + Drywall
10.9x
Elec + Panel
N/A
Nov
Dec
Jan
Feb
Bronze Silver Gold Platinum
Increase Electrical Bonus
No uptake on Electrical + Panel bundle. Consider raising the bonus to $300 or lowering the minimum job value.
Potential +$4,200/mo revenue
Silver-to-Gold Gap Widening
4 reps stuck at Silver for 2+ months. Consider adding a mid-tier incentive or reducing the Gold threshold to $20,000.
4 reps at risk of stalling
Top Performer Breakaway
Marcus Johnson is outpacing the field by 2.3x. Consider team-based bonuses to lift overall performance.
Team avg $535 vs top $1,240

IncentiveAnalytics screen

useQuery(api.incentives.analytics) / useQuery(api.incentives.optimizationInsights)

Data Architecture

Screens

  • Dashboard app/(contractor)/settings/company/incentives.tsx
  • Bonuses List app/(contractor)/settings/company/cross-sell-bonuses.tsx
  • Create Bonus app/(contractor)/settings/company/create-cross-sell-bonus.tsx
  • Tiers List app/(contractor)/settings/company/volume-tiers.tsx
  • Create Tier app/(contractor)/settings/company/create-volume-tier.tsx
  • Rep View app/(contractor)/settings/company/rep-incentive.tsx
  • Leaderboard app/(contractor)/settings/company/incentive-leaderboard.tsx
  • Analytics app/(contractor)/settings/company/incentive-analytics.tsx

Convex Backend

  • Schema crossSellBonuses, volumeTiers, incentiveEarnings tables
  • Queries api.incentives.dashboard, .leaderboard, .analytics, .repSummary
  • Queries api.incentives.crossSellBonuses.list, .volumeTiers.list
  • Queries api.incentives.topEarners, .repHistory, .optimizationInsights
  • Mutations api.incentives.crossSellBonuses.create, .update, .toggle
  • Mutations api.incentives.volumeTiers.create, .update, .delete
  • Internal api.incentives.evaluateBonus (called on job completion)
  • Internal api.incentives.recalculateTiers (cron: daily)

Schema: crossSellBonuses

  • _id v.id("crossSellBonuses")
  • companyId v.id("contractorUsers")
  • name v.string() — e.g. "Roof + Gutter Bundle"
  • primaryServiceId v.id("services")
  • addOnServiceId v.id("services")
  • bonusType v.union("flat", "percentage")
  • bonusAmount v.number() — dollars or percent
  • minJobValue v.optional(v.number())
  • startDate v.number() — timestamp
  • endDate v.optional(v.number())
  • scope v.union("all", "selected", "managers")
  • scopeUserIds v.optional(v.array(v.id("contractorUsers")))
  • isActive v.boolean()

Schema: volumeTiers

  • _id v.id("volumeTiers")
  • companyId v.id("contractorUsers")
  • name v.string() — e.g. "Gold"
  • metric v.union("revenue", "jobs", "newCustomers")
  • thresholdMin v.number()
  • thresholdMax v.optional(v.number()) — null = unlimited
  • rewardType v.union("multiplier", "flat")
  • rewardAmount v.number() — multiplier or dollars
  • period v.union("weekly", "monthly", "quarterly")
  • tierColor v.string() — hex color
  • sortOrder v.number()

Schema: incentiveEarnings

  • _id v.id("incentiveEarnings")
  • userId v.id("contractorUsers")
  • companyId v.id("contractorUsers")
  • type v.union("crossSell", "volumeTier")
  • sourceId v.union(v.id("crossSellBonuses"), v.id("volumeTiers"))
  • jobId v.optional(v.id("jobs"))
  • amount v.number() — dollars earned
  • earnedAt v.number() — timestamp
  • period v.string() — "2026-02" for aggregation
  • status v.union("pending", "approved", "paid")

Hooks & Types

  • useIncentiveDashboard Aggregated stats, top earners, tier distribution
  • useCrossSellBonuses CRUD + toggle active state
  • useVolumeTiers CRUD + qualifying rep counts
  • useRepIncentive Individual rep tier, progress, history
  • useLeaderboard Rankings with period filter (week/month/quarter/year)
  • useIncentiveAnalytics ROI, effectiveness, trends, suggestions
  • IncentiveType CrossSellBonus | VolumeTier — union type
  • TierLevel "bronze" | "silver" | "gold" | "platinum"
Dashboard + Active Bonuses
9:41
Incentives
This Month
$4,280
Total bonus payouts
Active Bonuses8 2 new
Volume Tiers4 Active
Cross-Sells23 +38%
Avg per Rep$535 +12%
Top Earners
1
MJ
Marcus Johnson
Gold Tier
$1,240
7 bonuses
2
SR
Sarah Rodriguez
Silver Tier
$980
5 bonuses
3
DW
David Williams
Bronze Tier
$720
4 bonuses
Active Cross-Sell Bonuses
Roof + Gutter Bundle
Roofing → Gutter Install
12 earnedMin $2,500
$150
HVAC + Duct Cleaning
HVAC Repair → Duct Service
8 earnedMin $1,000
$95
Paint + Drywall Repair
Interior Paint → Drywall
3 earnedMin $800
$75
Electrical + Panel Upgrade
Electrical → Panel
0 earnedMin $3,000
$200
Program Summary
$3,250
This Month
87%
Conversion
Volume Tiers + Leaderboard
9:41
Tiers & Leaderboard
Volume Tiers
Platinum
$50,001+ revenue
1.5x
Gold
$25,001 – $50,000
1.25x
Silver
$10,001 – $25,000
1.1x
Bronze
$0 – $10,000
1.0x
WeekMonthQuarterYear
SR
Sarah R.
$980
2
MJ
Marcus J.
$1,240
1
DW
David W.
$720
3
4
KC
Kevin Chen
Bronze +15%
$540
3 bonuses
5
AP
Angela Patterson
Silver -8%
$425
2 bonuses
6
TM
Tyler Martinez
Bronze +22%
$380
2 bonuses
Rep Detail + Analytics
9:41
Marcus Johnson
MJ
Marcus Johnson
Gold TierTop Performer
GoldPlatinum
$36,200 earned$50,001 needed
Bonuses Earned7
Total Bonus$1,240
Recent History
Roof + Gutter Bundle
Feb 22, 2026 · Job #4812
+$150
HVAC + Duct Cleaning
Feb 19, 2026 · Job #4798
+$95
Paint + Drywall Repair
Feb 15, 2026 · Job #4776
+$75
Bonus Effectiveness
Roof + Gutter
12
HVAC + Duct
8
Paint + Dry
3
Elec + Panel
0
AI Optimization Insights
Increase Electrical Bonus
No uptake on Electrical + Panel bundle. Consider raising the bonus to $300 or lowering the minimum job value.
Potential +$4,200/mo revenue
Silver-to-Gold Gap Widening
4 reps stuck at Silver for 2+ months. Consider adding a mid-tier incentive or reducing the Gold threshold.
4 reps at risk of stalling
Top Performer Breakaway
Marcus Johnson outpacing the field by 2.3x. Consider team-based bonuses to lift overall performance.
Team avg $535 vs top $1,240
Incentives — Dashboard
https://app.3bids.io/contractor/incentives
3Bids
Dashboard ⌘1
Cross-Sell ⌘2
Volume Tiers ⌘3
Leaderboard ⌘4
Analytics ⌘5
MK
Mike Kowalski
Contractor
Settings ⌘,
Incentives Dashboard
This Month
$4,280
Total Payouts
8
Active Bonuses
23
Cross-Sells
$535
Avg per Rep
Active Cross-Sell Bonuses
Roof + Gutter Bundle
12 earned · Min $2,500
$150
HVAC + Duct Cleaning
8 earned · Min $1,000
$95
Paint + Drywall Repair
3 earned · Min $800
$75
Electrical + Panel
0 earned · Min $3,000
$200
Team Leaderboard — This Month
1
MJ
Marcus Johnson
Gold
$1,240
7 bonuses
2
SR
Sarah Rodriguez
Silver
$980
5 bonuses
3
DW
David Williams
Bronze
$720
4 bonuses
4
KC
Kevin Chen
Bronze
$540
3 bonuses
Bonus Effectiveness
Roof+Gutter
12
HVAC+Duct
8
Paint+Dry
3
Elec+Panel
0
Tier Distribution
1
Platinum
2
Gold
4
Silver
5
Bronze
AI Insights
Increase Electrical Bonus
+$4,200/mo potential
Silver-to-Gold Gap
4 reps at risk
Top Performer Gap
$535 avg vs $1,240 top
Incentives — Configuration
https://app.3bids.io/contractor/incentives/config
3Bids
Dashboard ⌘1
Cross-Sell ⌘2
Volume Tiers ⌘3
Leaderboard ⌘4
Analytics ⌘5
MK
Mike Kowalski
Contractor
Settings ⌘,
Cross-Sell Configuration
Create Cross-Sell Bonus
Bonus Name
Roof + Gutter Bundle
Trigger Service
Roofing
Cross-Sell Service
Gutter Install
Bonus Amount
$150
Min Job Value
$2,500
Volume Tiers
Platinum
$50,001+ · 1.5x
Gold
$25,001–$50K · 1.25x
Silver
$10,001–$25K · 1.1x
Bronze
$0–$10K · 1.0x
Program Settings
Evaluation Period
Monthly
Payout Schedule
1st of Month
Auto-Qualify
Tier Change Alerts
Pro Tip:
Monthly evaluations with immediate payouts show 38% higher rep engagement than quarterly programs.