◷ openchronology

Browsing, popularity and account standing

The dashboard's timeline browser lists public timelines. To keep spam out of it without blocking anyone from publishing, it ranks by account standing. Standing is computed from what an account has done and how long it has existed. Only administrators see it (#103).

What browsing lists

Browsing (public timelines with no search text) lists:

  • the public timelines of established accounts;
  • featured timelines, whoever owns them.

A timeline with sensitive-content labels is never featured, and readers who aren't signed in, or whose accounts may be under 18, don't browse it.

Other public timelines are still reachable:

  • By link: anyone with the address can open them, as before.
  • By search: a text search finds them, listed after established accounts' matches.
  • On their owner's profile: listed there, and among a reader's public favorites.

An owner who isn't established yet sees a note under Sharing & settings → Visibility saying how to become established.

Established accounts

An account is established when it is:

  1. in good standing: not suspended, not marked untrusted, and with no moderation restriction in force on anything it owns; and
  2. confirmed: a confirmed email address, or a Google, GitHub or Facebook sign-in; and
  3. at least 30 days old, or at least 7 days old and endorsed.

An account is endorsed when an endorsing account has starred or publicly forked one of its public timelines. An endorsing account is any of these, and never the account itself:

  • a confirmed account at least 30 days old;
  • an administrator;
  • an account marked trusted.

Administrators and accounts marked trusted are always established.

Standing

An established account's standing runs from 0.4 to 1, the sum of:

PartAdds
Base0.4
Ageup to 0.4, growing to 30 days
Two-factor authentication0.1
Endorsing accounts0.02 each, up to 0.2

The total is capped at 1. An account that isn't established has standing 0. Administrators and accounts marked trusted have 1.

SortRanks by
By popularityThe total standing of the accounts that starred or publicly forked the timeline
Trending this monthThe same, counting only stars and forks from the last 30 days
By starsThe raw star count

Each account counts once per timeline, and an owner's own stars and forks count for nothing. So a crowd of new accounts adds nothing, and an established account's star counts more the longer it has been around.

When it updates

What changesUpdated
A star or unstarThe timeline's popularity at once, and its owner's standing
An administrator's change to trust, suspension or the administrator roleThat account at once, the accounts it endorses, and the popularity of what they starred
A moderation restriction or liftThe owner's standing, the same way
Accounts ageing, email confirmation, two-factor authentication, published forks, trendingA sweep every 15 minutes, and once at migration

At 100,000 accounts, 200,000 public timelines and 200,000 stars, a sweep takes about 4 seconds.

Administration

Site administration → Users shows each account's standing and why:

  • established, with its standing and endorsers; or
  • what it still lacks (a confirmation, its age, an endorsement, or a restriction in force).

Standing overrides it:

SettingEffect
From its activityThe default: computed as above
TrustedAlways established, with standing 1. Use it for known contributors, institutions or the site's own accounts.
UntrustedNever established: its timelines leave browsing, and its stars and forks count for nothing

Seeding marks the seed account trusted, so the operator's curated timelines are listed.

Data

TableHolds
oc_account_standingEach account's standing and endorser count (server/standing.mjs)
oc_timeline_popularityEach timeline's popularity and trending scores
oc_users.trustThe administrator's override: trusted, untrusted, or null

The two score tables are kept apart from the accounts and timelines they rank. Recomputing them never rewrites those rows, and never sends live-update notices to open timelines.

This page is docs/browsing.md in the source code, as this server runs it.