The structure ought to have + past participle is used to talk about things which were supposed to happen but did not.
- I ought to have sent the money yesterday, but I forgot.
- She ought to have been more careful.
- They ought to have repaired the roof before monsoon set in.
This structure can also be used to make guesses about things which are not certain to have happened.
- They ought to have returned yesterday. (It is probable, but we don’t know whether they have actually returned.)
- 6 o’clock. She ought to have reached home by now.