diff --git a/core/templates/core/_adjustment_row.html b/core/templates/core/_adjustment_row.html
index d07d830..95606ec 100644
--- a/core/templates/core/_adjustment_row.html
+++ b/core/templates/core/_adjustment_row.html
@@ -55,9 +55,13 @@
{# --- Team (worker's first team, if any — many workers are unteamed) --- #}
+ {# Uses `teams.all` (NOT `teams.first`) because the view's #}
+ {# .prefetch_related('worker__teams') populates `_prefetched_objects_cache` #}
+ {# for `.all()` calls — `.first()` would ignore the cache and fire a #}
+ {# fresh `ORDER BY ... LIMIT 1` SQL query per row (up to ~50 per page). #}
- {% with team=adj.worker.teams.first %}
- {% if team %}{{ team.name }}{% else %}—{% endif %}
+ {% with teams=adj.worker.teams.all %}
+ {% if teams %}{{ teams.0.name }}{% else %}—{% endif %}
{% endwith %}
diff --git a/core/templates/core/payroll_dashboard.html b/core/templates/core/payroll_dashboard.html
index 2166a19..e08422c 100644
--- a/core/templates/core/payroll_dashboard.html
+++ b/core/templates/core/payroll_dashboard.html
@@ -563,9 +563,13 @@
{# --- Type multi-select (Bonus / Overtime / etc.) --- #}
+ {# Each label/input pair below has matching for=/id= so screen #}
+ {# readers announce the field name when focus moves into the #}
+ {# select. The .adj-multi class still drives Choices.js init — #}
+ {# adding id= is purely additive. #}