Participation
Technician participation always groups by assigned team member. Each distinct current company member receives a job’s entire financial result once, even with several appointments or assignments. Inactive members, non-technician roles, and canceled visits remain included when their assignment is retained; assignment is not evidence of attendance. A job with two members contributes its full amounts to both members, so these rows overlap and must not be added into company totals. Jobs without members stay in job profitability but have no participation row.team_member_id selects distinct jobs for job financials and job profitability; in participation it selects only that member’s rows. This follows the existing participation model and does not infer sold/earned attribution or divide profit among workers.
For example, a job with $1,300 costing revenue and $1,000 gross profit assigned to two members contributes $1,000 profit to each member’s participation row. Company job profit remains $1,000. Adding member rows would double-count it.
Participation uses the job-costing report date and eligibility rules. Saved attribution instead uses the company-local work-completion date and does not require costing to be enabled.