Enterprise-grade COES-style commission configuration for contractor companies. 14 commission types, G/L account mapping, payroll classes, split commissions, and automated posting with approval workflows.
CommissionDashboardScreen
useQuery(api.commissions.queries.getCommissionSummary), getCommissionLeaderboard, getPendingCommissions
CommissionCodesScreen
useQuery(api.commissions.queries.listCommissionCodes), CommissionCodeRow component, type filter chips
CreateCommissionCodeScreen
useMutation(api.commissions.mutations.createCommissionCode), type chip selector, G/L field mapping
CommissionRulesScreen
useQuery(api.contractor.teamRoles.listCommissionRules), priority ordering, condition badges, override/additive logic
CommissionTypesScreen
useQuery(api.commissions.queries.listCommissionTypes), CommissionTypeCard, 14 COES types, color-coded left borders
CommissionPostingsScreen
useQuery(api.commissions.queries.listCommissionPostings), useMutation(approveCommissionPosting, reverseCommissionPosting), bulk approve
RepPerformanceScreen
useQuery(api.commissions.queries.getRepCommissions), bar chart, team comparison, type breakdown, payroll class info
PayoutSettingsScreen
useMutation(api.commissions.mutations.updatePayoutSettings), frequency selector, Stripe Connect integration, approval workflow toggle
commissionTypes — 14 COES type definitions (B, C, D, F, L, M, N, O, P, Q, R, S, T, U) with trigger config, G/L defaults, calculation method
commissionCodes — Specific commission configs (~90 codes). Links to type, G/L mapping, rate, tiers, caps, service category filters
commissionSplitRules — Split commissions (e.g., Sales 40% + Pickup 60%). Array of {role, percentage, payrollClassId}
commissionPostings — Ledger of actual commissions. Status: pending → approved → posted → paid. G/L posting, split tracking, approval workflow
commissionPayrollBatches — Group postings for payroll. Status: draft → approved → exported → completed. QuickBooks/ADP/Gusto export
payrollClasses — Employee classification (sales, technician, installer, manager). Rate multiplier, eligible codes, guarantees
commissionGlAccounts — Chart of accounts (expense, liability, clearing). External system mapping for QuickBooks/ADP
commissionAuditLog — Full audit trail: type/code/class CRUD, posting approval, batch export, reversal tracking
api.commissions.queries
.getCommissionSummary — Aggregate stats (pending/approved/paid totals)
.listCommissionTypes — 14 types with active/inactive filter
.listCommissionCodes — Codes by type filter
.listCommissionPostings — Postings by status, limit 50
.getPendingCommissions — Pending approval queue
.getCommissionLeaderboard — Top earners with total
.hasCommissionTypesInitialized — First-run check
api.commissions.mutations
.initializeCommissionTypes — One-time setup of 14 types
.createCommissionCode — New code with G/L mapping
.approveCommissionPosting — Approve pending posting
.reverseCommissionPosting — Reverse with reason
api.contractor.teamRoles
.listCommissionRules — Conditional rules list
.createCommissionRule — New rule (conditions + payout)
.deleteCommissionRule — Remove rule
api.commissions.triggers
.onInvoicePost — Auto-calculate on invoice
.onTicketComplete — Calculate on job completion
.onPaymentReceived — Revenue-based trigger
CommissionSummaryCard — Summary with pending/approved/paid stats
CommissionCodeRow — Code with type badge, rate, G/L
CommissionTypeCard — Type with color-coded left border
CommissionPostingRow — Posting with status, amount, approve CTA
CommissionTypeBadge — Color-coded type letter badge
PayrollBatchCard — Batch with period, totals, export status