# W' and CP settings help

**URL:** <https://forum.intervals.icu/t/w-and-cp-settings-help/1155>\
**Category:** Training\
**Created:** [15 June 2020 10:54 UTC](https://forum.intervals.icu/t/w-and-cp-settings-help/1155 "2020-06-15T10:54:29Z")\
**Posts on this page:** 1\
**Showing post:** 21

<div class="post-metadata">

**Author:** ![david](https://forum.intervals.icu/user_avatar/forum.intervals.icu/david/32/30189_2.png) [@david](https://forum.intervals.icu/u/david)\
**Post date:** [18 June 2020 04:47 UTC](https://forum.intervals.icu/t/w-and-cp-settings-help/1155/21 "2020-06-18T04:47:40Z")

</div>

Intervals.icu uses the differential algorithm. Here is the code that computes it:

```
let wb = wPrime
let pt = 0
for (let i = 0; i < data.length; i++) {
  let t = time[i]
  let secs = t - pt
  let deltaW = cp - data[i]
  if (deltaW > 0) {
    for (let j = 0; j < secs; j++) wb += deltaW * (wPrime - wb) / wPrime
  } else {
    wb += deltaW * secs
  }
  data[i] = Math.floor(wb)
  pt = t
}

```

I found a nice writeup here:

[https://medium.com/critical-powers/comparison-of-wbalance-algorithms-8838173e2c15](https://medium.com/critical-powers/comparison-of-wbalance-algorithms-8838173e2c15)

---

_[View the full topic](https://forum.intervals.icu/t/w-and-cp-settings-help/1155)._
