"Hey Ya!" is a song in G major. Each cadential six-measure phrase is constructed using a change of meter on the fourth measure (creating a song with 22 beats in each phrase) and uses a I–IV–V–V/ii chord progression. G major and C major chords are played for one and two measures, respectively. André 3000 then uses a deceptive cadence after a measure of the dominant D major chord, leading into two measures of an E major chord (against a G note in the melody implying E minor). The song moves at a tempo of 159 beats per minute, and André's vocal range spans more than an octave and a half, from B3 to G5.