{% extends "dashboard/base.html" %} {% from "partials/_macros.html" import pill, empty_state, relative_time, info_toggle %} {% from "partials/_charts.html" import bar_histogram %} {% block page %} {% call info_toggle(key='routes', title="What are route decisions?") %}

Every chat request through the brains gateway picks a tier (e.g. fast, balanced, thorough) based on the inferred task type and the routing policy. This page shows the distribution: which task types you're seeing and which tiers are doing the work.

Use this to spot routing drift — e.g. trivial tasks landing on the thorough tier (slow + expensive) or hard tasks landing on the fast tier (cheap but low-quality).

{% endcall %}

{{ icon('layers') }} By tier

Volume across the {{ routes|length }} most recent requests.

{{ bar_histogram(by_tier_chart, height=180) }}

{{ icon('list-checks') }} By task type

What kind of work brains is being asked to route.

{{ bar_histogram(by_task_chart, height=180) }}

{{ icon('network') }} Recent decisions

Latest {{ routes|length }} routing events.

{% if routes %} {% for r in routes %} {% endfor %}
TimeTask typeTier
{{ relative_time(r.created_at) }} {{ r.task_type }} {{ r.model_tier }}
{% else %} {{ empty_state( 'No route decisions yet', body='Routes are recorded when a session calls the chat gateway.', icon_name='network' ) }} {% endif %}
{% endblock %}