Michael Joseph Jackson (August 29, 1958 – June 25, 2009) was an American singer-songwriter, dancer, actor, choreographer, businessman, philanthropist and record producer. Referred to as the King of Pop, he became the most successful entertainer of all time. He is also one the most influential.[1][2][3]  His contributions to music, dance and fashion,[4]  and a much-publicized personal life, made him a global figure in popular culture for over four decades.

Jackson made his debut alongside his brothers in 1964 as lead singer and youngest member of The Jackson 5. His solo career started in 1971. He produced ten studio albums. The 1982 album Thriller remains the best-selling album of all time, having sold more than 110 million copies worldwide. Four of his other albums rank among the world's best-sellers. Jackson is credited with having elevated the music video from mere promotional tool into an art form. His videos for Billie Jean, Beat It and Thriller made him the first African American artist to amass a strong crossover following on MTV. He popularized a number of complicated dance techniques, such as the robot and the moonwalk. His distinctive musical style, vocal style, and choreography continue to transcend generational, racial and cultural boundaries.

Jackson has been inducted into twelve music halls of fame, more than any other act. He is one of the very few artists to have been inducted into the Rock and Roll Hall of Fame twice. Other achievements include several Guinness World Records (including the Most Successful Entertainer of All Time); 15 Grammy Awards (including the Living Legend Award and the Lifetime Achievement Award); 26 American Music Awards (more than any other artist, and including recognition as Artist of the Century); 17 number-one singles in the US (including four as a member of The Jackson 5); and estimated global sales of over 780 million records,[5][6] making him one of the best-selling recording artists ever.[7] Jackson's personal life and relationships generated controversy for years. His changing appearance was noticed from the late 1970s onwards, as changes to his nose and skin color caused much media speculation. In 1993 he was accused of child sexual abuse, though no formal charges were brought. In 2005 he was tried and acquitted of similar allegations.

Jackson died on June 25, 2009 from a drug overdose, amidst preparations for his This Is It concert series. Before his death, Jackson had reportedly been administered drugs such as propofol and lorazepam. The Los Angeles County Coroner concluded that his death was homicide. Prosecutors formally charged his personal physician with involuntary manslaughter. The death triggered a global outpouring of grief. It was estimated that as many as a billion people around the world may have watched the memorial service on live television.[8][9] On March 16, 2010, Sony Music Entertainment signed a record-breaking $250 million deal with Jackson's estate to retain distribution rights to his recordings until 2017 and release seven posthumous albums over the next decade.
