promotional bannermobile promotional banner

PeaversSplitsData

Benchmark keystone boss splits, as a data library other addons read.

PeaversSplitsData

AddonSentry

A data library addon for World of Warcraft that provides benchmark keystone boss splits from parses.gg, for other addons to read.

Features

  • Median time from the start of a Mythic+ run to each boss dying, for every dungeon in the current season
  • The middle half of the pool (p25/p75) alongside every median, so a consumer can say what a delta is worth
  • The run count behind every figure -- nothing here asks to be trusted without its sample size
  • Exact keystone levels only, never a band: a level with no entry means no pool at that level cleared the sample floor
  • One season only, with the patch it was baked against exposed as API.GetPartition
  • Daily updates, generated from parses.gg's public splits endpoint
  • Ships no UI; every call is nil-guarded and safe to make optimistically

A split is the time from the start of a Mythic+ run to a boss dying. It is the number a group is judged by while the key is being run - the dungeon timer is a single deadline at the very end, and it tells you nothing until it is too late to do anything about it, whereas being ninety seconds down at the second boss is knowable at the second boss.

This addon ships no UI. PeaversSplits is the consumer.

What is in it

For every dungeon in the current season, at every exact keystone level with enough runs behind it, and for every boss:

field meaning
split the pool's median seconds from the start of the run to that boss dying
fast / slow its p25 and p75 - the middle half of the pool
runs how many runs the figures rest on
order where the game lists that boss in the dungeon
name the boss's English name

fast and slow are not decoration. A delta of forty seconds means nothing on a boss where the middle half of the pool spans four minutes, and a consumer that shows a bare +0:40 invites the reader to conclude something the number cannot support.

Two rules the shape enforces

Exact keystone level, never a band. Enemy health scales per level, so a +19 is genuinely slower than a +10 for reasons that are not the group's doing. A level with no entry means no pool at that level cleared the sample floor - it does not mean the neighbouring level will do. API.GetLevels exists so a consumer can say "no pace for +14 yet, the highest published is +12" rather than quietly comparing against +12.

One season only. Every dungeon here was keyed on the same patch, so nothing in the file can be compared against a pool from another one. A dungeon rotated out of the current season simply has no entry, rather than carrying last season's numbers under this season's name. API.GetPartition returns the patch, and is worth showing: if the game has moved on and the data has not been rebaked, that string is the only thing that says so.

Where the data comes from

Generated by splits-module in PeaversAddonDataSupplier from parses.gg's public /api/keys/{id}/splits, which publishes the same pool the site's own Splits widget is drawn from. The generator runs daily and opens a pull request here, which auto-merges.

src/Data/Splits.lua is overwritten wholesale on each run. Do not edit it by hand. It is named for its contents rather than for its source, deliberately: naming a data file after where the data came from is what turns a source change into a silently unloaded file.

For Developers

local API = _G.PeaversSplitsData and _G.PeaversSplitsData.API

local mapID = C_ChallengeMode.GetActiveChallengeMapID()
local level = C_ChallengeMode.GetActiveKeystoneInfo()

-- One boss, at this exact level.
local pace = API.GetSplit(mapID, level, encounterID)
if pace then
  print(("pool reaches this boss at %.0fs over %d runs"):format(pace.split, pace.runs))
end

-- The whole route, before the key starts.
local bosses = API.GetBosses(mapID, level)

-- What IS covered, for saying something useful about a level that is not.
local levels = API.GetLevels(mapID)

API.GetDungeonName(mapID)  --> "Murder Row"
API.GetPartition()         --> "12.1"
API.GetLastUpdate()        --> "2026-08-27 19:31:24"

Every call is guarded at every level of the lookup and returns nil on any miss rather than erroring, so it is safe to query optimistically straight out of ENCOUNTER_END. Returned tables are shared, not copied - treat them as read-only.

Full API documentation is in the docs folder, and PeaversSplits is a working implementation example.

Installation

This is a data library used by other Peavers addons and doesn't require direct user interaction. PeaversUpdater installs and updates it automatically alongside its parent addon, or download it directly from CurseForge.


Part of the Peavers addon collection · Report an issue · Support development on Patreon

The PeaversSplitsData Team

High Crafter tier frameprofile avatar
Owner
High Crafter tier icon
  • 6
    Followers
  • 28
    Projects
  • 1.6M
    Downloads

https://parses.gg open data combat logs, from the community, for the community.

Donate

More from PeaversView all