Kipler: Geçmişe Yönelik Tahmin ve Eleştiri
must have done: kesin tahmin (yapmış olmalı). may / might / could have done: olasılık (yapmış olabilir). can't / couldn't have done: imkânsızlık (yapmış olamaz). should / ought to have done: yapmalıydı ama yapmadı (eleştiri, pişmanlık). needn't have done: gereksiz yere yaptı. didn't need to do: gerek yoktu (yapılıp yapılmadığı belirsiz).
YDS Tuzağı: 'should have done' gerçekleşmemiş bir şeyi anlatır; geçmişteki alışkanlık için 'used to' ya da 'would' kullanılır. 'could have done' hem 'yapabilirdi ama yapmadı' hem de 'yapmış olabilir' demektir; cümleye bak.
