{% extends "base.html" %} {% block title %}opencode-perf-stats — Aggregate{% endblock %} {% block content %}

Aggregate Report

{% for m in models %} {% endfor %}
Reset
{% if error %}
{{ error }}
{% else %} {% set ov = data.overview %} {% set tk = data.tokens %} {% set tps = data.tps.aggregate %} {% set ttft = data.ttft.aggregate %}

{{ filter_desc }} — {{ session_count }} session(s), {{ ov.message_count }} message(s)

Sessions
{{ session_count }}
{{ ov.message_count }} messages
Total Cost
${{ "%.4f"|format(tk.cost) }}
Cache hit: {{ "%.1f"|format(tk.cache_hit_pct) }}%
TPS p50
{{ "%.1f"|format(tps.median) if tps.median is not none else '—' }}
p95: {{ "%.1f"|format(tps.p95) if tps.p95 is not none else '—' }}{% if tps.low_n %} {% endif %}
TTFT p50
Input Tokens
{{ "{:,}".format(tk.input) }}
Output Tokens
{{ "{:,}".format(tk.output) }}
Cache Read
{{ "{:,}".format(tk.cache_read) }}

Per-Model TPS

Per-Model TTFT

Per-Model Output Tokens

Per-Model Breakdown

{% for r in data.per_model %} {% endfor %}
ModelMessagesOutput TokensTPS p50TPS p95TTFT p50TTFT p95Cost
{{ r.model }} {{ "{:,}".format(r.messages) }} {{ "{:,}".format(r.output_tokens) }} {{ "%.1f"|format(r.tps_p50) if r.tps_p50 is not none else '—' }} {{ "%.1f"|format(r.tps_p95) if r.tps_p95 is not none else '—' }}{% if r.tps_low_n %}{% endif %} {{ "%.0f"|format(r.ttft_p50) if r.ttft_p50 is not none else '—' }}ms {{ "%.0f"|format(r.ttft_p95) if r.ttft_p95 is not none else '—' }}ms{% if r.ttft_low_n %}{% endif %} ${{ "%.4f"|format(r.cost) }}

Top Sessions by Output Tokens

Top Sessions

{% for s in data.top_sessions %} {% endfor %}
SessionTitleModelOutputCostDuration
{{ s.id[:20] }} {{ s.title }} {{ s.model }} {{ "{:,}".format(s.output_tokens) }} ${{ "%.4f"|format(s.cost) }}
{% endif %} {% endblock %} {% block scripts %} {% if data %} {% endif %} {% endblock %}