Sorting and tagging values in objects
Only two values of the sorted array are needed to decide the resultant tags, so the algo is:


scan all entries and find the maximum and pre-maximum. 
scan all entries and tag them accordingly in a new object


Tests show 10x speed-up, but of course it's noticeable only on large number of repetitions.

tagValues(data : any) {
    let keys = Object.keys(data);
    let len = keys.length;
    let max = -Infinity, max2 = -Infinity;
    for (let i = 0; i &lt; len; i++) {
        let value = data[keys[i]];
        if (value &gt; max) {
            max2 = max;
            max = value;
        }
    }
    let tagged = {};
    for (let i = 0; i &lt; len; i++) {
        let key = keys[i];
        let value = data[key];
        tagged[key] = value === max ? 'big' : value === max2 ? 'medium' : 'small';
    }
    return tagged;
}


P.S. As for sortByValues, instead of reversing an array after sorting it, invert the comparison.