Sim Pipeline · Weights · FAQ

SimulationCraft Rules, Stat Weights & Calculation Methodology

I don’t rank specs by feel. I run SimC profiles, cross-check them against live Warcraft Logs parse percentiles, and re-run keys until variance drops. These are the exact rules behind every number on playcayne.com.

How Combat Logs Get Parsed Here

  1. Full pull, never snippets. I take the whole log with timestamps, difficulty, and roster size locked in.
  2. Sim timeline diff. I compare casts against the SimC timeline: movement gaps, GCD clipping from double-taps, missed external cooldown rotations.
  3. Twenty pulls minimum. I take the median parse percentile. Pulls with early deaths leave the sample.
  4. Cooldown mapping. I map externals and defensives against boss timers — blown soak assignments surface here.
  5. Publish or kill. If a claim survives neither sim nor log, the draft dies. No exceptions.

Stack: SimC nightly · Raidbots API · WCL live client · 50k iterations

Haste Breakpoint Math

Tooltip numbers mean nothing without breakpoints. Here is the Season 2 frame I sim from before any gear call:

ProfileBase GCDSoft-Cap Rule
Standard caster1.50sFloor 0.75s at 100% haste
Energy fixed1.00s flatHaste devalued, stack mastery
Dynamic melee1.50sFloor 0.75s at 100% haste
Bloodlust burst×1.3 hasteRe-check 0.75s floor
Queue default400 msSet to ping + 50
DoT specsSnapshottingBuffs lock at cast

My call: default 400 ms queue on sub-100 ms ping is the most common silent DPS loss in Season 2 logs. Set ping + 50 and watch clipping vanish.

Damage Normalization Rules

Active Seconds OnlyDowntime stripped

Lust Windows ApartBurst isolated

Cooldown SegmentsAligned compares

I divide total damage by active combat seconds, strip lust-only windows, and compare cooldown-aligned segments only. Short pulls inflate burst specs, so I never rank off a single pull. Then I tune the queue engine below to the same latency the log ran on.

Live Tool

Spell Queue Window & GCD Latency Engine v1.0

I built this to end GCD clipping debates with numbers. Drag the sliders. I divide base GCD by your haste, price ping against your queue window, and hand you the exact in-game macro.

45 ms
5 ms fiber250 ms cross-region
20 %
0 % naked140 % lust + procs
400 ms
0 ms off400 ms default

Energy GCD stays pinned at 1.0s — haste never moves it. Melee shares the 1.5s base and 0.75s floor; instants only skip the cast portion. Bloodlust multiplies current haste by 1.3.

True GCD 1.250s Floor 0.750s · not capped
Clip / Dead-Time 0 ms Queue covers latency
Optimal SQW band 85 – 105 ms
Est. DPS bleed / pull 0.0 %
Queue Timeline — Cast vs Latency 1250 ms
Cast 805 ms Queue 400 ms Latency 45 ms
One-Click Macro String
/console SpellQueueWindow 95
CLIPPING RISK: Queue Way Above Ping.

Default 400 ms on a 45 ms ping overwrites procs on double-taps. Paste the macro above and re-check the log for GCD clipping.

Math I use: GCD = max(0.750, base / (1 + haste)). Optimal queue = ping + 40 to 60 ms hardware buffer, capped at 400. Bleed = dead-time / GCD priced per pull.

Straight Answers On Sims

What Spell Queue Window should I run at my ping?

I run ping plus a 40 to 60 ms hardware buffer, capped at 400. A 50 ms ping means /console SpellQueueWindow 100. Anything higher overwrites procs, anything lower bleeds dead time.

How do haste soft-caps change my gearing?

Each soft-cap shortens the GCD until the 0.75 second floor, then extra haste loses value fast. I sim every tier set because one more dot tick or one fewer filler flips the whole SimC profile.

Why does my sim disagree with my Warcraft Logs parse?

Sims assume perfect uptime with zero movement. I diff the sim timeline against the log cast by cast: movement gaps, GCD clipping from double-taps and missed external cooldown rotations explain nearly every gap.

How do I normalize damage across pulls of different lengths?

I divide total damage by active combat seconds, strip lust-only windows, and compare cooldown-aligned segments only. Short pulls inflate burst specs, so I never rank off a single pull.