Statistics
The Statistics page is Sublarr’s analytics dashboard. It collects everything Sublarr does — subtitle downloads, machine translations, sync runs, provider performance, and host health — into six sections that share a single time-range selector. Open it from the sidebar; the page fetches each section independently and shows a spinner until the first data arrives.
Time range
Section titled “Time range”A row of buttons in the header controls the window for the time-sensitive sections. The default is 30 days.
| Range | Window |
|---|---|
| 24h | Last 24 hours |
| 7 days | Last 7 days |
| 30 days | Last 30 days |
| All | Every record, no cut-off |
The range applies to Overview counts, the Trends chart, the Subtitles breakdowns, and the Translation section. The Providers table and the System section are always live snapshots and ignore the range.
Overview
Section titled “Overview”Six headline tiles summarising the current state and the selected window:
| Tile | Meaning |
|---|---|
| Subtitle files | Total subtitle downloads recorded (all time). |
| Downloads | Subtitle downloads within the selected range. |
| Translations | Translation events within the selected range. |
| Wanted | Items currently in the wanted backlog. |
| MT awaiting original | Provisionally machine-translated items still waiting for a real source to finalise. |
| Avg download score | Mean match score of downloads in range. |
Trends
Section titled “Trends”A multi-series line chart over the selected range, plotting three daily counts:
- Downloads — subtitle files written per day
- Translations — successful translation events per day
- Syncs — successful sync runs per day
The chart reads from a pre-aggregated daily rollup rather than scanning the raw event tables, so it stays fast even over long windows. See How the data is produced.
Subtitles
Section titled “Subtitles”Three breakdown panels covering downloads within the selected range:
| Panel | Breaks down by |
|---|---|
| By source | Where the subtitle came from (e.g. provider download, embedded extract, translation). |
| By language | Language of the downloaded subtitle. |
| By provider | Which subtitle provider supplied it. |
Each panel is a horizontal bar list; empty dimensions collapse to a “no data” note.
Translation
Section titled “Translation”Four tiles plus a per-backend breakdown, all scoped to the selected range and counting only successful (ok) translation events:
| Tile | Meaning |
|---|---|
| Characters translated | Sum of output characters across successful translations. |
| Estimated cost | Estimated spend in USD, derived from per-event cost estimates. |
| Quality-gate pass rate | Share of translation events that passed (successful events divided by all events). |
| Avg latency | Mean translation latency in milliseconds. |
The By backend panel breaks the successful translations down by the engine that produced them (for example your configured LLM or DeepL).
Providers
Section titled “Providers”A live table of every subtitle provider that has recorded activity. Rows with no searches and no downloads are hidden. Sorted by download count.
| Column | Meaning |
|---|---|
| Provider | Provider name. A · disabled marker appears when the provider has been auto-disabled by the circuit breaker. |
| Searches | Total searches issued to the provider. |
| Hit rate | Successful searches divided by total searches. |
| Downloads | Successful downloads from the provider. |
| Avg score | Mean match score of its downloads. |
This section is a live snapshot of the provider statistics table and is not affected by the time-range selector.
System
Section titled “System”A live snapshot of the host and database:
| Tile | Meaning |
|---|---|
| CPU | Current CPU usage of the host. |
| Memory | Current memory usage. |
| Disk | Disk usage of the root volume. |
| Uptime | How long the Sublarr process has been running. |
| Database size | On-disk size of the database (SQLite file size, or the reported database size on PostgreSQL). |
How the data is produced
Section titled “How the data is produced”Most sections query Sublarr’s live tables directly — subtitle downloads, translation events, provider statistics, and the wanted backlog — and cache the result briefly at the API layer.
The Trends chart is the exception. A scheduled rollup job aggregates each calendar day’s downloads, translations, and syncs into a single row per date, so the chart never has to scan the raw tables:
- The
stats_rollupscheduler job runs once a day and rewrites today and yesterday (to catch late-arriving records), then fills in any missing historical day within a 90-day window. - On first run against an existing library it backfills up to 90 days of history, skipping days with no activity so a new install doesn’t accumulate long runs of empty rows.
- The job is idempotent — re-running it for any date recomputes and overwrites that date’s row.
You can trigger a rollup on demand from Settings → System → Scheduler by running the stats_rollup job, which is useful right after first install to populate the trend chart immediately.