4 HR
Team List
9:41
Team
All (8)
Active (6)
Pending (1)
Inactive (1)
Pending Invites (2)
sarah.johnson@gmail.com
Crew Lead · Sent Feb 20
PENDING
mike.rivera@outlook.com
Worker · Sent Feb 22
PENDING
JC
James Callahan
Owner · Last active today
ACTIVE
MR
Marcus Reeves
Lead Tech · Last active today
ACTIVE
TW
Tony Washington
Estimator · Last active yesterday
ACTIVE
KP
Kevin Patterson
Dispatcher · Last active Feb 21
ACTIVE
LD
Lisa Donovan
Office Manager · Last active Feb 20
ACTIVE
RB
Ryan Brooks
Apprentice · Pending onboarding
PENDING
DP
David Perez
Worker · Inactive since Jan 15
INACTIVE

TeamMemberListItem, TeamInviteCard

useQuery(api.teams.contractorTeamQueries.listMembers)

Invite Member
9:41
Invite Team Member
Email Address
sarah.johnson@gmail.com
An invitation email will be sent to this address
Role Type
Standard Role
Custom Role
Select Standard Role
Crew Lead
Available standard roles: Manager, Dispatcher, Crew Lead, Worker, Estimator, Project Manager, Safety Coordinator, Office Manager
Send Invitation
Cancel

Input, Select, Button

useMutation(api.teams.contractorTeams.inviteMember)

Member Detail
9:41
Team Member
MR
Marcus Reeves
marcus.reeves@callahan-hvac.com
(330) 555-0147
LEAD TECH
Active
Change Status
Active
Activity
Invited Jan 5, 2026
Joined Jan 8, 2026
Last Active Feb 24, 2026
Documents
View Member Documents
Remove from Team
Team GrowthContractors who onboard 5+ members in the first month see 40% higher job completion rates.

Avatar, RoleBadge, StatusIndicator

useQuery(api.teams.contractorTeamQueries.getMember)


Leaderboard
9:41
Team Leaderboard
Revenue
Jobs
Avg Ticket
Close Rate
1
MR
Marcus Reeves
$14,850
+12%
2
TW
Tony Washington
$12,320
+8%
3
KP
Kevin Patterson
$9,710
0%
4
LD
Lisa Donovan
$7,450
-5%
5
RB
Ryan Brooks
$3,200
+22%

Avatar, Card, numbered rank badges

useQuery(api.teams.technicianPerformance.getTeamLeaderboard)

Performance Detail
9:41
Performance
MR
Marcus Reeves
Lead Tech
Rank #1 of 5
Today
This Week
This Month
This Week Revenue
$14,850
+12% vs last week
12
Jobs
$1,238
Avg Ticket
84%
Close Rate
4.8
Rating
Last 30 Days
10
11
12
13
14
15
16
17
18
19
20
21
22
23
View Full Profile
ScoringPerformance scores combine job completion rate, customer ratings, and on-time arrival. Updated daily.

StatCard, MetricComparison

useQuery(api.teams.technicianPerformance.getTechnicianScorecard)


Custom Roles
9:41
Custom Roles
Show inactive roles
Senior Estimator ACTIVE
Full estimating access with CRM permissions
6 permissions · 2 members
Junior Tech ACTIVE
Limited access for apprentice-level technicians
3 permissions · 1 member
Fleet Supervisor ACTIVE
Vehicle management and dispatch override access
8 permissions · 1 member

CustomRoleCard, Switch

useQuery(api.teams.contractorTeamQueries.listCustomRoles)

Create Role
9:41
Create Role
Role Information
Role Name *
Senior Estimator
Description
Full estimating access with CRM integration permissions
Permissions (4 selected)
Select the permissions this role should have
Jobs
View all jobs
Read access to job listings
Create estimates
Generate and submit estimates
Delete jobs
Remove jobs from system
CRM
View contacts
Access customer contact info
Edit contacts
Modify customer records
Custom RolesCreate roles that match your org structure. Each controls access to scheduling, bidding, and financial data.
Create Role
Cancel

PermissionGroup, Input

useMutation(api.teams.contractorTeams.createCustomRole)

Role Detail
9:41
Custom Role
Senior Estimator
Full estimating access with CRM integration permissions
ACTIVE
Role is active
Inactive roles cannot be assigned to new members
Permissions (6)
View all jobs
Jobs
Create estimates
Jobs
View contacts
CRM
Edit contacts
CRM
View team metrics
Analytics
Export reports
Analytics
Details
Created Jan 15, 2026
Last Updated Feb 10, 2026
Delete Role

Switch, Badge

useQuery(api.teams.contractorTeamQueries.getCustomRole)


HR Portal
9:41
HR Portal
8
Total Employees
6
Active
1
Pending Onboarding
1
Terminated
Document Alerts
W-9 Tax Form
Ryan Brooks
Expired
EPA Lead Cert
Tony Washington
5 days
Vehicle Insurance
Kevin Patterson
18 days
All
Active
Inactive
Pending
MR
Marcus Reeves
marcus.reeves@callahan-hvac.com
ACTIVE ONBOARDED
100%
Docs
Terminate
RB
Ryan Brooks
ryan.brooks@gmail.com
PENDING DOCS PENDING
33%
Docs
Terminate

StatCard, StatusBadge, OnboardingBadge

useQuery(api.teams.hrPortalQueries.getHRStats)

Terminate Employee
9:41
HR Portal
Termination NoticeTerminated members lose access immediately. Job history and earnings records are preserved for reporting.

Modal overlay with type selection chips

useMutation(api.teams.hrPortal.terminateMember)


My Onboarding
9:41
My Onboarding
Welcome, Ryan!
Complete the documents below to finish your onboarding.
Documents Pending
2 of 6 documents need your attention
Your Progress
4 of 6 complete 67%
Documents
W-9 Tax Form
Required · Signed Jan 20
Employment Agreement
Required · Signed Jan 20
Non-Disclosure Agreement
Required · Signed Jan 22
Safety Training Cert
Required · Approved Jan 25
EPA Lead Certification
Required · Action needed
SIGN
Direct Deposit Form
Optional · Action needed
SIGN
Need Help?
Contact your manager if you have questions about any of these documents or encounter issues completing them.

OnboardingProgressBar, OnboardingStatusCard, DocumentCard

useQuery(api.teams.teamMemberDocumentQueries.myOnboarding)

Member Documents
9:41
Member Documents
Pending Documents
Ryan Brooks — 2 documents remaining
Progress
4 of 6 complete 67%
Pending Your Approval
EPA Lead Certification
Signed Feb 22, 2026
Reject
Approve
All Documents
W-9 Tax Form
Required · Approved
DONE
Employment Agreement
Required · Approved
DONE
NDA
Required · Approved
DONE
Safety Training
Required · Approved
DONE
EPA Lead Cert
Required · Needs review
REVIEW
Direct Deposit Form
Optional · Not signed
PENDING
Bypass Onboarding
Use this to grant full access without completing documents. A reason is required.
Document ComplianceAuto-approve validates expiration dates and required fields. Manual review available for exceptions.

DocumentCard, AlertDialog

useQuery(api.teams.teamMemberDocumentQueries.listMemberDocuments)


CSV Bulk Import
9:41
Bulk Import
Drop CSV or tap to browse
RFC 4180 compliant
Preview
Name
Email
Role
Status
Sarah Chen
s.chen@email.com
Crew Lead
VALID
Mike Torres
m.torres@co.com
Worker
VALID
Amy Reeves
a.reeves@co.com
Estimator
DUPLICATE
Import 2 of 3

CSVUploader, ImportPreviewTable

useMutation(api.teams.contractorTeams.bulkImportMembers)

Bulk Review Modal
9:41
Review Pending
Pending Submissions
4 PENDING
Select All
JD
Jake Dawson
Crew Lead
NP
Nina Patel
Estimator
RL
Ray Lombardi
Worker
TS
Tanya Stone
Dispatcher
Approve Selected (3)
Reject

BulkReviewList, SelectableCard

useMutation(api.teams.contractorTeams.bulkApproveMembers)

Auto-Approve Toggle
9:41
Team Settings
Auto-Approve New Members
Automatically approve team members who match your invitation criteria
Approval Rules
Email domain match
Enabled
Role pre-assigned
Enabled
Requires background check
Disabled
Bulk ActionsSelect multiple members to assign roles, update permissions, or send announcements in one action.

ToggleSwitch, ApprovalRuleCard

useMutation(api.teams.contractorTeams.updateAutoApprove)

Progress by Role Groups
9:41
Pipeline Tracker
Pipeline Stages
Not Invited
Invited
Started
Approved
Technicians
8 total
2 3 1 2
Sales Reps
5 total
0 1 2 2
Managers
3 total
0 0 1 2

PipelineChart, RoleGroupCard

useQuery(api.teams.contractorTeamQueries.getPipelineByRole)


My Earnings
9:41
My Earnings
This Month
Last Month
This Year
All Time
Total Earned
$15,234
42 commissions
Paid
$9,000
18 paid
Pending Approval
$2,100
5 pending
Approved
$4,134
19 ready
By Commission Type
SALES 12 commissions
$8,500
SERVICE 8 commissions
$4,200
BONUS 5 commissions
$2,534
Recent Commissions
All Pending Paid
Sales Commission — Job #4521
Mar 1, 2026
$850.00
Pending
Service Bonus — HVAC Install
Feb 25, 2026
Job completion bonus
$1,200.00
Approved
Sales Commission — Job #4498
Feb 20, 2026
$675.00
Paid
Load More
Earnings TransparencySee your commission breakdown in real-time. File disputes directly from this screen.

Team member earnings dashboard with period filters, type breakdown, and commission history.

useQuery(api.commissions.getMyEarnings)


HR Management
9:41
HR Management
3
Active Cases
12
Resolved
2
Pending Review
Termination Cases
Marcus Brown
Filed Mar 12, 2026
Pending
Jake Rivera
Filed Feb 28, 2026
Terminated
Lisa Thompson
Filed Mar 18, 2026
Under Review

HR termination management with case tracking and status badges.

useQuery(api.teams.hr.listTerminations)


Payouts
9:41
Payouts
Total Paid
$42,680
Pending
$6,240
This Month
$8,450
Team Members
8
Recent Payouts
Marcus Brown
Mar 20, 2026
$2,450
Jake Rivera
Mar 18, 2026
$1,875
Lisa Thompson
Mar 15, 2026
$3,100
Sam Wilson
Mar 10, 2026
$1,250

Team payout management with summary stats and recent payout history.

useQuery(api.teams.payouts.list)


Tech Messages
9:41
Tech Messages
Search messages...
Marcus Brown
2m ago
Hey, the HVAC unit at 42 Oak St is making a weird noise...
Jake Rivera
15m ago
Parts arrived for the Johnson job. Starting tomorrow AM.
Lisa Thompson
1h ago
Got it, will send the invoice by EOD.
Sam Wilson
3h ago
Confirmed for the 9 AM walkthrough at Maple Dr.
Carlos Mendez
Yesterday
Thanks boss, all wrapped up on the Garcia project.

Tech message threads with avatars and unread indicators.

useQuery(api.messages.listTechThreads)


My Earnings
9:41
My Earnings
Total Earnings
$28,450
+12% vs last month
Period Breakdown
This Month
$4,200
Last Month
$3,750
This Quarter
$11,800
Commission Breakdown
Sales Commission
18 jobs
$16,200
Service Bonus
12 jobs
$8,400
Referral Bonus
4 referrals
$3,850

Individual earnings dashboard with hero stat, period breakdown, and commission detail.

useQuery(api.commissions.getMyEarningsDetail)


Leaderboard
9:41
Leaderboard
This Month
All Time
1
MB
Marcus Brown
32 jobs • 4.9 rating
$12,400
2
JR
Jake Rivera
28 jobs • 4.8 rating
$10,850
3
LT
Lisa Thompson
25 jobs • 4.7 rating
$9,200
4
SW
Sam Wilson
22 jobs • 4.6 rating
$7,600
5
CM
Carlos Mendez
19 jobs • 4.5 rating
$6,300

Ranked leaderboard with avatars, job counts, ratings, and revenue stats.

useQuery(api.teams.leaderboard.ranked)

Roster & Invitations Live
9:41
Team Management
14
Active
3
Pending
Jake Martinez
Technician · Active
Active
Sarah Lee
Senior Tech · Active
Active
Tom Rivera
Technician · Active
Active
mike@newtech.com
Invited 2 days ago
Pending
Team GrowthContractors who onboard 5+ members in the first month see 40% higher job completion rates.
23
Team Size
87%
Active Rate
Jake Martinez
Technician · Joined Jan 2026
142
Jobs
4.9
Rating
96%
On-Time
Contact
(330) 555-0142
jake@kowalskihvac.com

Leaderboard & Performance Live
9:41
Leaderboard
Rankings
1
Jake Martinez
Score: 96
2
Sarah Lee
Score: 91
3
Tom Rivera
Score: 87
ScoringPerformance scores combine job completion rate, customer ratings, and on-time arrival. Updated daily.
$56K
Team Revenue
4.7
Avg Rating
Jake Martinez — Scorecard
142
Jobs Completed
4.9
Avg Rating
96%
On-Time
$4,200
Earned MTD

Roles & Permissions Live
9:41
Roles & Permissions
Admin
Full access · 2 members
Technician
Jobs + schedule · 8 members
Sales Rep
CRM + leads · 4 members
Senior Tech
Custom · 3 members
Custom RolesCreate roles that match your org structure. Each controls access to scheduling, bidding, and financial data.
Admin — Permissions
View Team Members
Manage Roles
View Financials
Manage Billing
HR Actions

HR Portal Live
9:41
HR Portal
14
Active
1
Suspended
2
Terminated
Jake Martinez
Active
Dave Wilson
Suspended
Chris Brown
Terminated
Termination NoticeTerminated members lose access immediately. Job history and earnings records are preserved for reporting.
Terminate Member
This action revokes all app access immediately. The member’s job history and earnings records will be preserved.
Reason
Notes

Onboarding & Documents Live
9:41
Onboarding
Onboarding Checklist
Profile completed
W-9 submitted
Background check pending
Insurance certificate
Document ComplianceAuto-approve validates expiration dates and required fields. Manual review available for exceptions.
Document Upload
Drop files here or tap to upload
PDF, JPG, PNG up to 10MB

Bulk Operations Live
9:41
Bulk Operations
Jake Martinez
Sarah Lee
Tom Rivera
Amy Chen
Bulk ActionsSelect multiple members to assign roles, update permissions, or send announcements in one action.
2 selected — Choose Action

My Earnings Live
9:41
My Earnings
Period
$4,200
Earned
$3,800
Paid
$400
Pending
23
Jobs
Earnings TransparencySee your commission breakdown in real-time. File disputes directly from this screen.
Commission Breakdown
Sales Commission
$2,400
Install Bonus
$1,200
Referral Bonus
$400
Quality Bonus
$200
Team Command Center Live
https://app.3bids.io/contractor/team
3BidsTeam
Roster ⌘1
Leaderboard ⌘2
Roles ⌘3
HR Portal ⌘4
Bulk Ops ⌘5
Earnings ⌘6
MK
Mike Kowalski
Contractor

Team Command Center

14
Active Members
3
Pending Invites
4.7
Avg Rating
$42.8K
Team Earnings MTD
Member
Role
Status
Jobs
Rating
Actions
Jake Martinez
Technician
Active
142
4.9
Sarah Lee
Senior Tech
Active
128
4.8
Tom Rivera
Technician
Active
98
4.7
Team GrowthContractors who onboard 5+ members in the first month see 40% higher job completion rates.

Leaderboard & Performance Live
https://app.3bids.io/contractor/team/leaderboard
3BidsTeam
Roster ⌘1
Leaderboard ⌘2
Roles ⌘3
HR Portal ⌘4
Bulk Ops ⌘5
Earnings ⌘6
MK
Mike Kowalski
Contractor

Leaderboard & Performance

#
Name
Score
Jobs
Rating
On-Time
1
Jake Martinez
96
142
4.9
96%
2
Sarah Lee
91
128
4.8
93%
3
Tom Rivera
87
98
4.7
91%
ScoringPerformance scores combine job completion rate, customer ratings, and on-time arrival. Updated daily.

Roles & Permissions Live
https://app.3bids.io/contractor/team/roles
3BidsTeam
Roster ⌘1
Leaderboard ⌘2
Roles ⌘3
HR Portal ⌘4
Bulk Ops ⌘5
Earnings ⌘6
MK
Mike Kowalski
Contractor

Roles & Permissions

Standard Roles
Admin
Full access · 2 members
Technician
Jobs + schedule · 8 members
Sales Rep
CRM + leads · 4 members
Custom Roles
Senior Tech
Jobs + mentoring · 3 members
Custom
Custom RolesCreate roles that match your org. Each controls access to scheduling, bidding, and financial data.

HR Portal Live
https://app.3bids.io/contractor/team/hr
3BidsTeam
Roster ⌘1
Leaderboard ⌘2
Roles ⌘3
HR Portal ⌘4
Bulk Ops ⌘5
Earnings ⌘6
MK
Mike Kowalski
Contractor

HR Portal

14
Active
1
Suspended
2
Terminated
Member
Role
Status
Since
Actions
Dave Wilson
Technician
Suspended
Mar 10
Chris Brown
Sales Rep
Terminated
Feb 28
Termination NoticeTerminated members lose access immediately. Job history and earnings records are preserved for reporting.

Bulk Operations Live
https://app.3bids.io/contractor/team/bulk
3BidsTeam
Roster ⌘1
Leaderboard ⌘2
Roles ⌘3
HR Portal ⌘4
Bulk Ops ⌘5
Earnings ⌘6
MK
Mike Kowalski
Contractor

Bulk Operations

Member
Role
Status
Jake Martinez
Technician
Active
Sarah Lee
Senior Tech
Active
Tom Rivera
Technician
Active
Amy Chen
Admin
Active
Bulk ActionsSelect multiple members to assign roles, update permissions, or send announcements in one action.

Earnings Live
https://app.3bids.io/contractor/team/earnings
3BidsTeam
Roster ⌘1
Leaderboard ⌘2
Roles ⌘3
HR Portal ⌘4
Bulk Ops ⌘5
Earnings ⌘6
MK
Mike Kowalski
Contractor

Team Earnings

March 2026
$42,800
Total Earned
$38,200
Paid Out
$4,600
Pending
14
Team Members
Member
Role
Earned
Paid
Status
Jake Martinez
Technician
$4,200
$3,800
Paid
Sarah Lee
Senior Tech
$3,850
$3,450
Paid
Tom Rivera
Technician
$2,100
$0
Pending
Earnings TransparencyEach team member sees their own commission breakdown in real-time. Disputes can be filed directly from the earnings screen.

Data Architecture

Schema tables, queries, mutations, and status flows that power Team Management — roster, roles, permissions, HR portal, onboarding, documents, and team member earnings.

Source Files

team/index.tsx
Team roster — member list, search, filters, status badges
screen
team/[memberId].tsx
Member detail — profile, performance, documents, earnings
screen
team/roles.tsx
Role management — permissions matrix, custom role builder
screen
team/hr-portal.tsx
HR portal — onboarding, documents, compliance tracking
screen
team/earnings.tsx
Earnings — commission tiers, payouts, performance bonuses
screen

Convex Queries

listMembers
Filter by role, status, location. Returns paginated team roster.
query
getTeamLeaderboard
Ranked members by composite score with 30-day trends.
query
listCustomRoles
All custom roles with permission sets and member counts.
query
getHRStats
Onboarding progress, document compliance rates, headcount metrics.
query
getMyEarnings
Individual earnings breakdown — commissions, bonuses, payouts.
query

Convex Mutations

team.inviteMember
Send invite — auto-create onboarding checklist, assign default role.
mutation
team.updateMemberRole
Change role — cascade permission updates, audit logged.
mutation
team.terminateMember
Terminate — revoke access, archive data, final payout triggered.
mutation
team.createCustomRole
Build role from permission matrix — granular access control.
mutation

Member Lifecycle

Invited Onboarding Active
Terminal: Suspended Terminated

Key Design Decisions

Role-Based Access
Custom roles with granular permissions control access to scheduling, bidding, financial data, and admin functions.
Commission Structures
Tiered commission configs per role level. Auto-calculated payouts with bonuses for exceeding targets.
Certification Tracking
License and cert expiry monitoring. Auto-alerts 30 days before expiration. Non-compliant members flagged.
Multi-Location Assignment
Team members can serve multiple locations. Scheduling respects location assignments and travel time.
Onboarding Checklist
Step-by-step new hire flow — profile, documents, terms acceptance. Progress tracked in real-time by admin.
Performance Metrics
KPI tracking per team member — completion rate, customer ratings, on-time arrival. 30-day rolling trends.
Back to Top