Build a useful investigation brief
Measure each widget's server work
Capture query count, duration, joins or aggregation shape, response bytes, and handler time per widget for fixed filters and data size. Identify duplicate reads, overlapping ranges, and widgets that request fields no visible decision uses. Preserve ordering and time range so the comparison remains meaningful.
Follow payload and render dependencies
Trace each response through parsing, transformation, chart or table construction, layout, paint, and interaction readiness. Record node counts, repeated calculations, and whether one widget blocks shared controls. Compare errors and empty states too; a fast dashboard that hides failed widgets is not a fix.
Test one focused cost reduction
Try one change such as narrowing initial fields, sharing a bounded read, deferring a nonblocking widget, or reducing repeated client transforms. Replay the exact filters, data, and viewport. Check first decision context, widget correctness, refresh, empty, and error behavior before accepting the result.
What to carry forward
Deliver a brief with widget-level costs, first blocking dependency, measured data shape, tested reduction, and unresolved alternatives. Investigation is complete when implementation can target one source of expense and verification can check dashboard readiness, refresh, and decision correctness.
Keep the decision with the work.
Use a Work Item in Aglet to record the problem, the evidence you have, and the next decision. Add an owner and priority, then keep updates in the discussion so the next person can follow the reasoning.
Create an account See the product workflow