Dashboard
{{ currentElectionName }}
Auto-refresh {{ autoRefresh ? 'on' : 'off' }}
Election Info
ID
{{ electionMeta.id }}
Name
{{ electionMeta.name }}
Path
{{ electionMeta.base_path }}
Quick Links
Server Status
Screener
{{ status.screener.url }}
Config loaded · server unreachable ({{ status.screener.url }})
Config loaded · no server URL set
No config file found
Annotator
{{ status.annotator.url }}
Config loaded · server unreachable ({{ status.annotator.url }})
Config loaded · no server URL set
No config file found
Annotator Form
Loaded
Screener Progress
{{ screenerProgress.team_completed || 0 }} total labels| Coder | Completed | Flagged |
|---|---|---|
| {{ c.coder }} | {{ c.completed }} | {{ c.flagged }} |
No coder data available
Inter-Coder Agreement
{{ screenerAgreement.agreement_pct }}%{{ screenerAgreement.items_with_multiple }} items coded by 2+ coders, {{ screenerAgreement.agreements }} agree
Disagreements ({{ screenerAgreement.disagreements.length }})
| Item | Labels |
|---|---|
| #{{ d.item_id }} | {{ l.coder }}: {{ l.label }} |
Annotator Progress
{{ annotatorProgress.team_completed || 0 }} completed| Coder | Completed | Flagged |
|---|---|---|
| {{ c.coder }} | {{ c.completed }} | {{ c.flagged }} |
No coder data available
Export Data
User Management
Screener Coders
| Username | Actions |
|---|---|
| {{ c.username }} |
|
No coders configured
Annotator Coders
| Username | Actions |
|---|---|
| {{ c.username }} |
|
No coders configured
Form Editor
No form config loaded. Make sure annotator_form path is configured.
☰
{{ (section.questions||[]).length }} questions
▶
☰
{{ q.id }}
{{ q.type }}
required
Extra Options
{{ listName }}
{{ group.items?.length || 0 }} items
{{ form.title }}
{{ section.title }}
{{ section.description }}
{{ q.title || q.text }} *
{{ q.helper_text }}
+ {{ flatOptions(q).length - 5 }} more...
Settings
Screener Settings
Token Expiry (days)
How long login tokens are valid
Shared Annotations
Coders can see each other's labels
Show AI Score
Display the SightEngine AI score to coders in the screener
Sets / Rounds
No sets defined (using default data_path)
Annotator Settings
Token Expiry (days)
How long login tokens are valid
Show AI Hints
Display GPT-4o classification suggestions to coders during annotation
Sets
No sets defined (using default data_path)
Raw Config Editor
Editing: {{ rawTarget }}
Annotation Reset
Danger ZoneDelete annotation files for a specific coder or all coders. This cannot be undone.
Server Actions
Pipeline
Last run: {{ new Date(pipelineStats.lastUpdated).toLocaleString() }}
No pipeline data yet. Run the pipeline to see stats here.
Data Collection
{{ p.count.toLocaleString() }}
{{ key }} posts
{{ new Date(p.time).toLocaleDateString() }}
{{ pipelineStats.totalPosts.toLocaleString() }}
Total Posts
{{ pipelineStats.actors.toLocaleString() }}
Actors
Processing
{{ pipelineStats.dedupFiles.toLocaleString() }}
Media Files
{{ pipelineStats.dedupGroups.toLocaleString() }}
Dedup Groups
{{ pipelineStats.dedupSaved.toLocaleString() }}
Dupes Saved
{{ pipelineStats.classifications.toLocaleString() }}
AI Classifications
{{ pipelineStats.reviewQueue.toLocaleString() }}
Review Queue
Pipeline Steps
✓
●
✗
○
{{ step.duration_s < 60 ? step.duration_s.toFixed(1) + 's' : (step.duration_s / 60).toFixed(1) + 'm' }}
{{ step.name }}
Actor Coverage
| Platform | Actors |
|---|---|
| {{ p.platform }} | {{ p.count.toLocaleString() }} |
| Total | {{ pipelineActors.total.toLocaleString() }} |
Run History
| Timestamp | Duration | Completed | Errored | |
|---|---|---|---|---|
| {{ new Date(run.timestamp).toLocaleString() }} | {{ run.total_duration_s < 60 ? run.total_duration_s + 's' : (run.total_duration_s / 60).toFixed(1) + 'm' }} | {{ run.completed }}/{{ run.total_steps }} | {{ run.errored }}0 | {{ pipelineRunExpanded === idx ? '▼' : '▶' }} |
|
✓
✗
○
{{ sname }}
{{ step.duration_s.toFixed(1) }}s
|
||||
Pipeline Log
{{ filteredLogs.length }} entries
No log entries
| Time | Level | Step | Message |
|---|---|---|---|
| {{ entry.timestamp ? new Date(entry.timestamp).toLocaleString() : '' }} | {{ entry.level || 'info' }} | {{ entry.step || '' }} | {{ entry.message || '' }} |
Error Log
Loading...
Showing {{ filteredErrors.length }} of {{ errorEntries.length }} entries
