Skip to main content

Goals, streaks & language progress

Sustained community contribution runs on visible progress — but most platforms buy motivation with surveillance: public rankings nobody asked to join. AfriAnnotate's motivation layer is built on one rule: nothing about a contributor is public unless they explicitly choose it.

Personal goals & streaks​

In their profile, a contributor sets a daily goal (0 = off) and sees:

  • today's progress toward it (annotations submitted + validation votes cast both count — judging is contribution);
  • their current streak of consecutive active days, anchored so that today not being over doesn't break yesterday's streak.

Goals are private, self-set, and self-serving — the platform never broadcasts them.

Leaderboards — opt-in, always​

Projects with crowd validation show a top-validators panel on the Listen page (last 30 days), and appearing on it requires explicitly opting in in your profile — with an optional alias so contributors can compete without exposing their name. The opt-out default means an empty leaderboard on day one; that's the cost of doing this right, and the panel hides itself entirely until someone opts in.

Public language progress​

The motivating number for language communities isn't personal rank — it's "how far has my language come?" The Discover page answers it with a per-language strip across public projects: clips collected, hours of speech, and the percentage crowd-validated, per declared language.

Clip durations are recorded automatically when audio QC analyzes a new recording, so hours accumulate from ingest onward. Clips recorded before durations were stored can be filled in with python manage.py backfill_clip_durations; a language's hours only count clips whose duration is known.

  • Projects enroll by declaring their language (Settings → General — the same setting that pins the annotator-facing UI language).
  • Projects with no declared language simply don't appear — no "unspecified" noise.
  • Codes render as names ("ha" → Hausa).
  • The endpoint is public by design: progress belongs to the language community, not just account holders.

What deliberately doesn't exist​

No public per-person totals without opt-in, no manager-visible "productivity scores" dressed as motivation, no dark-pattern re-engagement email (notification nudges may come later — as explicit opt-ins). Quality management has its own honest tooling; motivation shouldn't secretly be it.