-
Notifications
You must be signed in to change notification settings - Fork 0
Trust and Awards
Trust is hailsDotGO's behavioral reputation system: every signal from the Raid Finder becomes an auditable event, the events sum to a score, and the score maps to a public tier (Trusted, Neutral, Caution) that unlocks community powers. Awards are the companion system: Pokemon-themed recognitions that staff (and eventually the community) can pin to a trainer's profile. This page explains both engines end to end.
The trust_events table is the source of truth; users.trust_score is just an incrementally maintained cache of SUM(applied_delta) (admins can recompute it from the log at any time). Every event records who acted, which lobby it came from, the raw delta, the weight applied, and the final applied delta. Commends and dislikes are idempotent per actor per lobby: voting twice does nothing.
| Event | Raw delta | Trigger |
|---|---|---|
commend |
+3 | A member commends the host in post-raid feedback |
dislike |
-4 | A member dislikes the host in post-raid feedback |
raid_success |
+1 | A member reports the raid succeeded |
confirm_timeout |
-2 | Letting the 2-minute confirm window lapse |
invite_window_fail |
-1 | A host letting the 4-minute invite window lapse |
host_unfulfilled |
-1 | A host's lobby ends without the raid ever starting: it expires while still open, or the host cancels it before raiding |
left_early |
-3 | The host marks a member as having left mid-raid |
staff_adjust |
any | Manual admin correction (see Admin Guide) |
The applied delta is raw * weight, clamped to [-8, +6] per event (staff adjustments bypass the clamp).
- Staff reports are non-negotiable: a fixed weight of 2.0, no other factors.
-
Peer reports are weighted by three multiplied factors:
- the actor's report reliability (
rater_weight, clamped 0.1 to 1.5), - an account age ramp: age in days divided by 90, clamped between 0.25 and 1.0 (a brand-new account's report counts a quarter as much; accounts older than 90 days are not further boosted),
- a relative age factor when the actor is younger than their target (down to 0.5).
- the actor's report reliability (
- Reliability is self-correcting. After each commend or dislike, the actor's reliability is recomputed over their last 90 days of reports (minimum 5 to matter): a dislike ratio above 40% starts costing weight. The penalty slope is steeper (2.0x) when the actor's own received trust is non-negative (i.e., they are well-regarded), and shallower (1.2x) when they themselves have a negative trust balance. Roles raise the cap: testers up to 1.2, moderators 1.4, admins 1.5, regular users 1.0. Mass-disliking therefore mutes the disliker without touching their own score.
- Confirm timeout free passes: the first 2 confirm timeouts in any rolling 24 hours are logged with zero weight (audit trail only). Real life happens.
-
Unfulfilled lobby free passes: the first 6
host_unfulfilledevents in any rolling 4 hours are logged with zero weight; lobbies that simply never fill are normal. Only hosts churning past that take the minor penalty on each further lobby. Invite-window failures are tracked separately and do not count toward this tally. - Requeues are penalty-free: lobby cancellations and invite-window failures send members back to the queue front without trust events against them.
The displayed score ("effective trust") is the cached score plus a +5 read-time bonus while the user has any active store purchase (see Store). The bonus is never persisted, so it vanishes when the purchase expires, and a single weighted dislike outweighs it.
| Tier | Threshold |
|---|---|
| Trusted | effective trust of 25 or more |
| Neutral | everything in between |
| Caution | effective trust below -10 |
New account neutrality: accounts younger than 14 days with fewer than 3 completed lobbies always display Neutral, whatever their score, so alt accounts can neither farm a Trusted badge nor grief someone into Caution overnight.
Your trust tier (Trusted, Neutral, or Caution) appears beside your name throughout the site: on your Trainer Directory card, in raid lobby member lists, and on your trainer profile page. Your raw numeric score is not publicly displayed, only the tier label is shown. Staff can view the full event log from the admin panel.
The quickest honest paths:
- Complete raids as a member (each successful raid gives the host a
raid_success+1; you are boosted indirectly through a healthier community). - Show up on time when you are matched, confirm promptly and do not let the 2-minute window expire. The first two confirm timeouts in any 24 hours are free; repeated timeouts cost trust.
- As a host: run lobbies you intend to finish. Up to 6 unfulfilled lobbies per 4 hours are free; churning past that incurs a small penalty per lobby.
- Earn commends from the hosts of raids you join (each commend gives the host +3 trust, building a healthy reputation for them; your own commends and dislikes to others affect your reliability score).
- Custom raid lobbies at effective trust of 50 or more (configurable; staff and special ranks bypass it). See Raid Finder.
- Community award granting is available to users who meet the per-award minimum rank requirement, once the site-wide feature flag is on (below).
Moderators can inspect any user's full event log; admins can apply manual adjustments (recorded as staff_adjust events with a note, between -100 and +100) and recompute the cached score from the log. Admins can also set a user's rater weight directly. Details in the Admin Guide.
Awards are a catalog of badges with a name, description, icon, and color. The seeded set is Pokemon-flavored: Helping Hand, Friend Ball, Professor's Aide, Ace Trainer, and Joyful Spirit; admins can add more.
Each award has a configurable minimum rank required to grant it, set by an admin. The available levels are:
| Setting | Who can grant |
|---|---|
| Anyone | Any logged-in user (subject to the site-wide community grants setting) |
| Trusted+ | Effective trust tier must be Trusted or above |
| Content Creator+ | Must hold the Content Creator special rank |
| Translator+ | Must have the translator flag |
| Tester+ | Must have the Tester role or above |
| Moderator only | Moderators and above only |
Additional rules:
- Admins and Super Admins always bypass the rank requirement and can grant any award to anyone.
- Community grants at the "Anyone" level are still gated by the global
awards_community_grants_enabledsite setting, if that setting is off, only staff can grant regardless of individual award settings. - You cannot grant an award to yourself.
- Grants are idempotent per granter: one person can give a specific award to a specific user only once (enforced by a unique key, so retries are silently dropped). The same award from different granters stacks.
- A grant can carry a note up to 160 characters, shown with the award.
- Admins manage the catalog (create, edit, deactivate, delete) and moderators can revoke individual grants; see the Admin Guide.
Staff and eligible community members grant awards from the Awards tab in the admin panel (/admin). The tab shows the active catalog and a grant form: type the recipient's username (autocomplete is available), select the award from the catalog dropdown, add an optional note (up to 160 characters), and submit. The award list in the grant modal is automatically filtered to only show awards the current user is eligible to grant based on their rank. Recent grants are listed below for reference. Moderators can revoke any grant from the same tab. Inactive awards do not appear in the catalog picker.
Admins can change the minimum grant rank on any award directly from an inline dropdown in the Awards panel, no separate edit modal is needed.
Awards appear on trainer profile pages, reached from Trainer Directory cards, listed with their icon, the granter, and the note. The catalog and any user's grants are also publicly readable via the API (see API Reference).
Repository | Live site | hailsDotGO is a fan-made project, not affiliated with, endorsed by, or connected to Niantic or The Pokémon Company. Game data comes from community sources credited on the Data Sources page.
Start Here
Features
- Raids and Counters
- DPS Calculator
- IV Calculator
- PvP IV Ranker
- Events
- Shiny Tracking
- Trainer Directory
- Raid Finder
- Social Features
- Trust and Awards
- Bug Reports
- Player Reports
- Store
- Accounts and Roles
- Admin Guide
Self-Hosting
Development
Translations