public function getTierByScore($score)
    {
        // Ensure score is within bounds, or normalise.
        if ($score < $this->min) {
            $score = $this->min;
        } elseif ($score > $this->max) {
            $score = $this->max;
        }

        $count = count($this->scoreTiers);
        $current = $this->scoreTiers[0];

        for ($i = 1; $i < $count; $i++) {
            $next = $this->scoreTiers[$i];
            if ($score < $next->minimum) {
                break;
            }
            $current = $next;
        }

        return $current->key;
    }