Guides / How to read a ForeverDiff diff

How to read a ForeverDiff diff

Method guide | explains how ForeverDiff works | updated Sep 16, 2026

Every page here shows what changed between two builds of the World of Warcraft client, with both values side by side, read verbatim from the game data. We publish records, not grades: there are no "buff" or "nerf" labels. A strip near the top of each page names the exact build a value came from and the build it is compared against.

  • The build strip is the provenance: source build, the build compared to, and the sync date.
  • A field diff shows the old value and the new value, aligned, both verbatim.
  • Counts, never grades: the numbers speak, so 12 becoming 15 is shown, not labelled.

The build strip is the provenance

Near the top of every entity, build and compare page is a strip that names the build the values were read from, the build they are compared against, and the date we synced the data. That strip is the citation. It links to the methodology, which walks one real change from the page back to the client table, row id and build it came from.

Added, changed, removed

An entity is tagged added when it appears in the newer build but not the older one, removed when it was in the older build and is gone from the newer one, and changed when it exists in both but one or more of its fields differ. These are states, not verdicts: "removed" does not mean deleted forever, and a withheld (encrypted) row is never reported as removed.

Values are verbatim, both sides shown

A field that changed is shown as two values, the Classic Era value and the Forever value, side by side and unedited. We do not paraphrase, round for effect, or summarise. If a value is a list or a nested record, we show it in full rather than describe it. The one non-client label we apply is the item quality name (Poor, Common, Rare, and so on), which is the game's own fixed enum, not our opinion.

Records, never grades

We do not tell you whether a change is good or bad. No tier lists, no rankings, no "buff" or "nerf" tags. The reason is trust: the moment a site starts grading, its numbers become an argument. Ours stay a record. You can see that a cast time went from 3.0 to 2.5 and decide for yourself what it means.

Unidentified fields

New builds sometimes add columns the community definitions have not named yet. We store them and, when one changes, we report it honestly as an unidentified field with its raw values, rather than inventing a label. See how datamining works for why that happens.

Frequently asked

Why do not you say whether a change is a buff or a nerf?

Because that is a judgement, and judgements are contestable. We publish the two values verbatim and let you draw the conclusion. This is the same stance a diff view or a changelog takes.

What does "unidentified field" mean?

A column in the client the community definitions have not given a human name yet. We keep it and show its raw values when it changes, but we never render a placeholder name as if it were a real field.

Related

How we read this → · All guides →