First substring-based time-bucketing. Practice extracting the hour-of-day from a TEXT timestamp (substr(snapshot_hour, 12, 2)::INT), AVG-ing a percentage column, and producing the diurnal pattern Amazon listing managers use to time price adjustments.