Skip to content

Fight syntax and links

How a URL names the pull, the scope and the targets, so a link you paste tonight still shows the same thing next week.

Updated Sep 14, 2026

Every choice on an audit page lives in the URL. That is deliberate: a link copied into Discord is the audit, not a bookmark to "whatever the page shows now".

The address#

/ledger/<code>/<audit>?fight=<pull>
  • <code> is the 16-character Warcraft Logs report code (the part after /reports/ in a Warcraft Logs link).
  • <audit> is one of sr, gear, buffs, hit, consumables, attendance. The report page (/ledger/<code>) links to all six, plus night, summary and compare.

Which pull#

?fight= names the pull for the per-pull audits (shadow resistance, enchants & gems, buffs, hit):

ValueMeaning
fight=lastThe last boss pull of the report. The default when nothing is given.
fight=27Fight #27 — the id Warcraft Logs assigns, the same number in its own URLs.

The fight picker on the page writes the id into the URL as you switch, and Copy link always copies the resolved id rather than last, so a link made on Tuesday still points at Tuesday's pull after Thursday's raid is logged. Trash pulls are not offered; the audits are about boss pulls.

Which fights count#

Consumables and attendance read the whole report rather than one pull. Two scopes:

ValueMeaning
(none)Boss encounters only. Potions on trash are counted separately in the breakdown and do not affect the score.
scope=allEvery pull, trash included. Include trash on the toolbar toggles it.

Three parameters override the guild's audit policy for one link, in this order of precedence: the link, then the guild named on the report, then the defaults.

ParameterApplies toExample
buffed=Shadow resistance — the buffed target (default 244)?buffed=230
gear=Shadow resistance — the gear-only target (default 160)?gear=150
rings=Enchants & gems — auto, require or ignore?rings=require

The page header says where its targets came from: "(targets from this link)" or "(Black Pearl's policy)". A guild sets its own under its page so nobody has to remember the parameters.

Live logs and refreshing#

A report is fetched from Warcraft Logs and cached; a settled report is served from the cache for good, which is what keeps the site inside its Warcraft Logs points budget.

A report whose last fight was within the last day is treated as live: the cached copy is re-fetched when it is more than five minutes old, so a raid watching its own log costs one query per five minutes however many people have it open. The report page and the night grid show a Live pill with a "fetched N minutes ago" stamp, and for two hours after the last fight they ask once a minute whether a new pull has landed — when one has, the page refreshes itself. Nothing to click; leave the night grid on the second monitor.

Append ?refresh=1 (or use Refresh on the report page) to fetch again right now — after the log finishes uploading, or when a fight was still in progress when you first opened it. Refreshes are rate-limited per report.

Player pages#

A player's name in any table links to /ledger/player/<name>?server=<realm>&region=<region>: their history across every report the site has seen — enchant and gem completeness, buffs, consumables, and SR on the Shahraz pulls — with the repeat offences called out.