Plexus · Promotion Wizard Workload Dashboard

Loading…

Matters per customer (opened in period)iMatters per customer. Count of matters where date_created falls in the selected window and the matter links to this customer via action_participant.csv. Excludes deleted and out-of-scope action types.

Hours per customer (in period)iRaw logged hours per customer. Sum of ACTUAL HRS from the Time Records Report, filtered to matters attributed to this customer, in the selected window. Subject to logging hygiene — see "Normalised workload" below for a hygiene-independent effort estimate.

Customer summaryiPer-customer breakdown. Lifetime matters = all-time count. Opened/closed = within the selected window. Median and P90 cycle times in days (close date − created date). Hours = raw logged only.

CustomerLifetime mattersOpened in periodClosed in periodMedian cycle (days)P90 cycleHours

Matters per lawyer (opened in period)iMatters led per lawyer. Count of matters opened in the window where the lawyer is the matter's assigned_to_participant_id. Only current lawyers shown; historical lawyers' matters still appear in the customer-level aggregates above.

Hours per lawyer (in period)iRaw logged hours per lawyer. Sum of hours where the lawyer is the timekeeper on the Time Records Report, in the window. Zero doesn't mean no work — it means no time was logged. Compare against "Normalised workload" below to see the logging gap.

Lawyer × Customer heatmap (matters opened)iIntersection of lawyer and customer. Each cell = matters opened in the window where this lawyer is the lead and this customer is on the matter. Darker cells = more matters. Useful for spotting existing specialisation (e.g. "Catherine handles most L'Oréal").

Normalised workload effort modeliWhy this exists. Raw logged hours undercount real effort because Promotion Wizard is flat-rate billed and lawyers don't always log time. Normalised effort fills the gap.

How it's calculated:
1. Compute the median actual_hours per task type, using only tasks where hours > 0 (≥10 observations needed; else fall back to the global median of ~0.15h).
2. For each task completed in the window, use its actual hours if logged, else substitute the calibrated median for its task type.
3. Attribute the effort to the matter lead (not the task doer) — delegated work still counts against the lead's workload.

Task count × calibrated median effort per task type. Uncouples workload from time-logging hygiene — works even if a lawyer forgets to log hours.

Raw logged hours vs Normalised effort — current lawyersiThe logging gap. Raw = hours the lawyer recorded in the Time Records Report. Normalised = effort estimated from task counts × calibrated standards. Gap = difference. A large positive gap (e.g. Zack's +10×) means the lawyer is doing work but not logging it — the normalised figure is the truer measure.

LawyerRaw logged (tasks)Normalised effortLogging gap

Calibrated effort per task type (top 10)iStandard effort per task type. Median actual_hours across tasks where hours were logged (>0). These are the multipliers the normalised effort model applies to unlogged tasks. Recalibrated automatically every time refresh.py runs.

Task typeStandard effort (h)

Workload split simulator (5 current lawyers)iHow the balance works. Pick one lawyer per customer. Totals below sum that customer's matters and hours into the assigned lawyer's bucket.

Mean = total matters assigned across all 5 lawyers ÷ 5.
"Above mean" flag triggers when a lawyer's assigned matters exceed 120% of the mean (i.e. >20% above average). The card turns amber.

Uses last-90-day matter counts — change the period selector at the top to see a different window.

Reallocate each customer's share of last-90-day matters across lawyers. Warns if anyone >20% above mean.
CustomerMatters (90d)Hours (90d) Catherine PappasZack BakoulasJobelyn EspinoMerryl PalamaraAlana (p-t)

Job mix (hours by QUICK-CODE)iWhat work the team is doing. Total logged hours grouped by the QUICK-CODE field on each time entry (ActionStep's task-type classifier: T&C Drafting, Artwork Review, Revision, etc.). Entries without a QUICK-CODE show as (blank) — improving that is a quick-win hygiene change.

Hours per lawyer per monthiLogged hours trend. Sum of ACTUAL HRS for each current lawyer, grouped by calendar month. Reflects only what's logged — treat absolute values as a lower bound; the shape of the trend is more reliable than the absolute height.