Future perfect, conditional perfect, and past subjunctive perfect
The futuro perfecto (future perfect) expresses an action that will be complete before a future moment. It also expresses present probability.
Formation: habré/habrás/habrá/habremos/habréis/habrán + participio
Habré terminado antes de las cinco. (I will have finished before five.)
¿Habrás comido? (Will you have eaten by then? / I wonder if you have eaten.)
Present probability: Ya habrán llegado. (They must have arrived by now.)
The condicional perfecto is the main clause of type 3 and mixed conditionals, and also expresses past probability.
Formation: habría/habrías/habría/habríamos/habríais/habrían + participio
Lo habría hecho si hubiera podido. (I would have done it if I had been able to.)
Habría llegado tarde — había mucho tráfico. (He must have arrived late — there was a lot of traffic.)
The pluscuamperfecto de subjuntivo (past perfect subjunctive) appears in the if-clause of type 3 conditionals and after certain conjunctions.
Formation: hubiera/hubieras/hubiera/hubiéramos/hubierais/hubieran + participio
Si hubiera sabido, te lo habría dicho. (If I had known, I would have told you.)
No creía que hubieran llegado ya. (I didn't think they had already arrived.)
The perfecto de subjuntivo (haya + pp) is used in present/future subjunctive contexts where the subordinate action is completed.
Formation: haya/hayas/haya/hayamos/hayáis/hayan + participio
Espero que haya llegado bien. (I hope she has arrived safely.)
No creo que hayan terminado todavía. (I don't think they have finished yet.)
The choice of perfect tense in a subordinate clause depends on the tense in the main clause.
Espero que haya llegado. (Present main → subjuntivo perfecto)
Esperaba que hubiera llegado. (Past main → pluscuamperfecto subj.)
Si hubiera estudiado, habría aprobado. (Type 3: pluscuam. subj. → cond. perfecto)
Traps for English speakers
These are the errors English speakers make most often.