Skip to content
Skip to documentation content

Overview / Troops Overview

Troops Overview

Review the latest captured troop counts for your linked Travian account and correct its stored building levels.

At a glance

Product route: /workspaces/{workspace_id}/troops-overview.

Who can open this page: Verified member, enabled entitlement, collection and current linked workspace Travian account.

Primary data owners: backend-derived, extension-collected, roster-ingest, signed-in-member, workspace-manager. Values reflect recorded data at page load; they are not a live view of Travian.

What you see

The table has Village, ten tribe-specific unit-icon columns, Total, Tournament Square, Treasury and Tags. A village name opens the Travian map at its stored coordinates. Each row Total is a troop count; the footer sums each unit slot and the account total. Tournament Square and Treasury are number inputs with values from 0 through 20. Changing either submits that village correction automatically. Tags are read-only badges, or a dash when absent.

There is no account selector, combat-strength column, crop-upkeep column, freshness column or tag editor. The subtitle mentions every account, but the route always resolves only your linked account. Roman troop icons are the fallback when the roster tribe is unsupported. Village ordering follows captured village order; unset order falls back to village name.

Who fills in each field

Field or data What it means Who fills it in Can it be changed here? When it updates
Village and coordinates Captured village name links to its coordinates on the Travian map; coordinates are in the link, not printed as a separate column. Only the current linked account is included. extension-collected Read-only Page load from latest recorded values
Troop slots t1–t10 Latest captured per-village counts; tribe determines unit icons. Missing observations are not evidence of zero live troops. extension-collected Read-only Newest valid captured snapshot per village/day
Total Sum of ten slots per village; footer sums each slot and all villages. These are counts, not combat strength or crop upkeep. backend-derived Read-only Page load from latest recorded values
Tournament Square Stored building level 0–20; collector observations may refresh a member correction. extension-collected, signed-in-member Current linked member only Building observation or current-account correction
Treasury Stored building level 0–20; collector observations may refresh a member correction. extension-collected, signed-in-member Current linked member only Building observation or current-account correction
Tags Manual tags from Villages plus artifact-size and catapult automatic labels; read-only here. signed-in-member, workspace-manager, backend-derived Read-only Page load from latest recorded values

Calculations

Troop count totals

Calculation ID: troops.slot-total. Per-village, per-slot and account-wide troop counts.

Rule: For each recorded village read slots1..10, sum row counts; footer slot i sums that slot over villages; grand total sums every row total. Unit headers use resolved tribe with Roman icon fallback.

Input Who fills it in Unit Required or optional Fallback
Village troop counts extension-collected troops per slot Required Required; no fallback
Resolved tribe roster-ingest tribe ID Optional Roman icons for unsupported tribe

Output unit: troops. Precision: Exact integer. Rounding: No rounding. Clamping: No output clamp. Time zone: not-applicable.

Edge cases: Empty village list yields ten zero footer slots and total zero. Missing capture is not a zero live army. No combat/crop-upkeep weighting is applied.

Canonical implementation: IntelligenceService._build_account_troops_page. Non-canonical mirrors: None registered.

Used on: Troops Overview, Account Villages

Calculation source references

Village automatic tags

Calculation ID: village.auto-tags. Current artifact-size and siege threshold labels, following manual tags.

Rule: artifact size small/large/unique =>s.arti/l.arti/u.arti; catapults>=configured cata threshold =>cata point. Manual labels normalized defaults-first then custom; automatic labels follow fixed order s.arti,l.arti,u.arti,cata point. No automatic tag is stored/edited here.

Input Who fills it in Unit Required or optional Fallback
artifact_size extension-collected size label Optional Missing/unrecognized => no artifact tag
catapults backend-derived catapult count Required Required; no fallback
cata_threshold backend-derived units Optional Configured default60
Manual values/custom label map signed-in-member, workspace-manager tags Optional Empty manual list; unknown stored label falls back raw value

Output unit: ordered labels. Precision: Exact ordered labels. Rounding: No rounding. Clamping: No output clamp. Time zone: not-applicable.

Edge cases: Threshold equality adds cata point. Unknown artifact size adds none. Current troop table tags are read-only; manual edits live on Villages.

Canonical implementation: auto_tag_labels. Non-canonical mirrors: None registered.

Used on: Troops Overview, Villages, Account Villages

Calculation source references

Freshness and updates

The connected Chromium extension supplies the newest accepted troop/building observations when you visit the relevant Travian pages with matching account/server membership. History retains the newest valid village snapshot for each day. These displayed counts come from the latest stored overview, not a live army query. A saved building correction updates the current-overview row; a later collector observation can replace it. Reload to see fresh totals and automatic tags. This table does not display capture timestamps.

Actions and permissions

Who can take action / Who can perform each action: the following gates are separate from page visibility. Hidden navigation alone never authorizes a request.

Action Actor Permission
Correct Tournament Square signed-in-member collection plus current linked account; matching own village coordinate, level 0–20
Correct Treasury signed-in-member collection plus current linked account; matching own village coordinate, level 0–20

In Trapitan, change the number in your village’s Tournament Square or Treasury cell. The browser submits automatically and briefly marks success or failure; there is no separate Save button or detailed inline error text. Both endpoints require collection, verification, entitlement, the resolved current account and same origin; the coordinate must match one of that account’s stored current-overview rows. Missing rows return 404; out-of-range levels fail validation. A manager or owner cannot use these controls to select another account. Edit tags on Villages instead.

States and edge cases

An empty village list leaves an empty table body and ten zero footer counts plus a zero grand total. Troops Overview has no special empty-state message or collection button. Zero stored counts do not establish zero live troops. A missing or ambiguous active account link raises a server invariant error rather than displaying an account picker or an empty table; ownership gives no resolver bypass. Missing permissions or disabled entitlement blocks direct URLs. A failed correction leaves no confirmed saved change; reload before relying on it.

Source references

Source reviewed: 2026-10-05

Source references

Stable page ID: overview.troops.

  • src/trapitan/api/routes/web.py
  • src/trapitan/web/templates/troops_overview.html
  • src/trapitan/web/templates/partials/troops_overview_table.html
  • src/trapitan/intelligence/service.py
  • src/trapitan/authorization/dependencies.py
  • src/trapitan/authorization/current_account.py
  • src/trapitan/intelligence/repository.py
  • src/trapitan/authorization/policy.py
  • src/trapitan/api/routes/guards.py