Skip to content

Methodology

Every figure in the interface is either something an archive returned or something calculated in your browser from the records currently loaded. This page explains which is which.

Reading the rules

Numbers and records carry a thin rule on their left edge. A solid rule means the value came from an archive as stored. A dashed rule means Subdex calculated it from loaded records. A dotted rule means coverage is known to be incomplete, either because a request failed or because loading was stopped.

Queries

Searches are built from documented archive parameters and validated before they are sent. Keyword search is only accepted alongside an author, subreddit or thread, because the archives do not support an unscoped keyword query and sending one wastes a request that was going to fail.

A single request returns at most 100 records. Larger targets are reached by paginating, and the interface shows how many requests that cost.

Pagination

Pages are walked backwards through time using the timestamp of the oldest record on the previous page. Archive date filters are inclusive, so the boundary record appears again on the next page. Rather than nudging the cursor and risking dropped records — a single second can hold many — the duplicate is retrieved and removed by ID.

Normalization and deduplication

Records from every provider are converted into one shape, so charts and exports do not depend on which archive answered. Records sharing a Reddit ID are merged into one, with their sources combined.

Where two providers disagree about a field, the first non-empty value is shown and the disagreement is preserved alongside it. Neither source is treated as authoritative.

Timestamps

All bucketing is done in UTC. Local-time bucketing would shift records across day and month boundaries depending on who ran the analysis, which would make the same query produce different charts for different people. The posting-time chart can be shifted for display, but the underlying timestamps are never altered.

Scores

Archived scores are snapshots. Records captured within about 36 hours of posting carry a placeholder value rather than a real score, so they are excluded from score statistics and the number excluded is reported. A median that quietly included them would be wrong and look fine.

Sorting by score sorts the records you have loaded. The archives sort by date only, so this is never a ranking across everything that exists.

Text analysis

Keyword and term analysis runs locally over loaded text. URLs, user and subreddit prefixes and punctuation are stripped, and common English stopwords are excluded. Archive markers such as deleted and removed are excluded too, since they are metadata rather than something a person wrote.

  • An unquoted keyword matches on word boundaries, so searching for one term does not match a longer word containing it.
  • A quoted keyword matches as an exact phrase.
  • Occurrences count every appearance; items count the records containing at least one.

What is deliberately absent

There is no inference layer. Subdex does not estimate location, timezone, age, gender, politics, beliefs, health or personality, does not score personalities, and does not attempt to decide whether two accounts belong to the same person. Those are not missing features. They are the boundary of the tool.