[1] seems to have the actual details on compressed vectors. looks like for each page you're storing min&max, and the values come as offsets from the min (smaller->less bits per value), did I get that right?
primitive speedup
sum price 7.7x
avg price 33x
how does this even happen though?