There's a lot of interpretation in this solution, but try this query and tell me what's missing or wrong.
Assumption 1: The ID column can actually be different and all id's should be treaded separately, if not, omit the
o1.ID = o2.ID
Assumption 2: The count column is there just for telling us that there should be only one entry in the result set for the first date until the status changes
And the same goes for the --description column
WITH ordered AS(
SELECT ID,Date,Status,ROW_NUMBER() OVER(ORDER BY Date) as rn
FROM MyTable
)
SELECT o1.ID,o1.DATE
FROM ordered o1,ordered o2
WHERE o1.ID = o2.ID
AND o1.rn = o2.rn -1
AND o1.Status <> o2.Status