All data analysis is performed using python with standard off-the-shelf numpy and scipy. Differential capacity plots are obtained by integrating the current over time using the scipy function cumtrapz and the dQ/dV data is obtained from numpy gradient with a second-order polynomial. Wherever necessary, data has been interpolated using the interp1d function from scipy. non-linear voltage curve (in fact, the same originating from the simulation in Figure ) and the measured property is the current. As the reader might tell, there are some minor errors in the simulation with the non-linear voltage signal due to imperfect interpolations. The resulting differential capacity plots are shown in Figure ) and are virtually indistinguishable. Unsurprising this edge case of non-linear charging produces a conventionally interpretable dQ/dV diagram. Not discussed herein are pulsed protocols, as demonstrated by Garcia et al. and Cicvaric et al., however, these protocols fall into the linear charging category (intermittently stopped). A defining difference is also the fact that these, again, actuate current and not potential.