John Poole, founder of the popular synthetic benchmark known as Geekbench, has discovered a curious correlation between the oft-reported performance issues that some owners of older iPhones have been complaining about and battery age/changes to iOS.

Long story short, many performance issues plaguing older Apple handsets can be chalked up to a combination of a battery that no longer retains 100% capacity and new, sophisticated features in iOS that eat up CPU cycles, Poole has found out.

Poole set out to do his own in-depth testing following a report on Reddit from last week which has sparked a discussion regarding iPhone performance as a function of battery age.

“While we expect battery capacity to decrease as batteries age, we expect processor performance to stay the same,” Pool wrote in a blog post Monday.

Some conspiracy theorists out there believe that lower-than-usual Geekbench 4 scores on older handsets are due to so-called planned obsolescence that Apple is assumedly imposing in software in order to push users towards buying a new phone.

On the other hand, many people reported that replacing their battery has indeed increased their Geekbench 4 CPU score, as well as the overall performance of their phone.

As Reddit poster “kadupse” wrote:

Many iPhone 6s devices were shutting down unexpectedly, even after the battery replacement program (which many people weren’t entitled to use).

Because degraded batteries last much less and end up with a lower voltage, Apple’s solution was to scale down CPU performance. This doesn’t solve anything and is a bad experience, but it’s better than having your device shut down at 40% when you need it the most.

iOS 10.2.1 has reduced unexpected shutdowns in iPhone 6 and iPhone 6s models by as much as 80%, Apple said at the time, but not everyone found the explanation convincing. To solve this mystery once and for all, Poole has plotted the kernel density of Geekbench 4 single-core scores for the iPhone 6s and iPhone 7 series running different versions of iOS.

Top of post are charts for iPhone 6s and below are ones for iPhone 7.

The charts for iPhone 6s indicate that the reported CPU throttling mainly manifested itself as people were performing upgrades from iOS 10.2.0 to iOS 10.2.1 and iOS 11.2.0. iPhone 7 owners did not see any noticeable slowdowns until iOS 11.2.

Scores obtained in iOS’s Low Power Mode are not included in the distribution.

Poole says the issue will only get worse as iPhones and their batteries continue to age and Apple continues to add features to iOS that require substantial CPU and GPU performance, such as Face ID, ARKit-powered apps and machine learning-powered shooting modes.

“The difference between iOS 10.2.0 and iOS 10.2.1 is too abrupt to be just a function of battery condition,” Poole observed, leading him to suspect that Apple in fact may have introduced a change in iOS to limit performance when battery condition decreases past a certain point.

“Apple acknowledged the sudden shutdown issue that affected iPhone 6 and iPhone 6s earlier this year,” he continued. Apple apparently added a similar change to iOS 11.2.0 for iPhone 7 even though that handset does not appear to be affected by the same issue.

The problem with Apple’s approach is that iOS gives users no notification that their handset’s performance is being throttled, creating a third, unexpected state.

According to Pool:

While this state is created to mask a deficiency in battery power, users may believe that the slow down is due to CPU performance, instead of battery performance, which is triggering an Apple introduced CPU slow-down. This fix will also cause users to think, ‘my phone is slow so I should replace it’ not, ‘my phone is slow so I should replace its battery’.

And this, in turn, will likely feed into the “planned obsolecense” narrative.

For what it’s worth, Finnish CPU and GPU computer benchmark developers Futuremark recently said it found no evidence proving Apple is deliberately throttling older phones in software in order to make them feel sluggish.

Thoughts?