sourceDates($targetMonday) as $d) { $v = $this->loader->ulspPence($d->toDateString()); if ($v === null) { return null; } $values[] = (float) $v; } $latest = $values[0]; $mean = array_sum($values) / count($values); return $latest - $mean; } public function sourceDates(CarbonInterface $targetMonday): array { $dates = []; for ($w = 1; $w <= self::WINDOW_WEEKS; $w++) { $dates[] = $targetMonday->copy()->subDays(7 * $w); } return $dates; } }