lag; } public function valueFor(CarbonInterface $targetMonday): ?float { [$newer, $older] = $this->dates($targetMonday); $a = $this->loader->ulspPence($newer->toDateString()); $b = $this->loader->ulspPence($older->toDateString()); if ($a === null || $b === null) { return null; } return (float) ($a - $b); } public function sourceDates(CarbonInterface $targetMonday): array { return $this->dates($targetMonday); } /** @return array{0: CarbonInterface, 1: CarbonInterface} */ private function dates(CarbonInterface $targetMonday): array { return [ $targetMonday->copy()->subDays(7 * ($this->lag + 1)), $targetMonday->copy()->subDays(7 * ($this->lag + 2)), ]; } }