The perfect subjunctive: haya hecho
Use haya + participle for completed actions after present triggers, ojalá, and time clauses about the future.
Part of the free B2 Spanish course. Press the speaker next to an example to hear it.
The perfect subjunctive (pretérito perfecto de subjuntivo) is the subjunctive partner of the present perfect (he hecho, The present perfect (he hablado) and when Spain uses it). Use it when a trigger needs the subjunctive and the action is already completed by the time you are talking about.
Form: haya + participle
It is made of the present subjunctive of haber plus the past participle (hablado, comido, vivido, and the irregular ones in Irregular participles: hecho, dicho, visto, escrito, puesto: hecho, dicho, visto, puesto, roto, escrito, vuelto, abierto).
| Person | haber | + participle |
|---|---|---|
| yo | haya | terminado |
| tú | hayas | terminado |
| él, ella, usted | haya | terminado |
| nosotros/as | hayamos | terminado |
| vosotros/as | hayáis | terminado |
| ellos, ellas, ustedes | hayan | terminado |
The participle never changes, and object pronouns go before haya: Espero que lo hayas leído.
When to use it
1. After a present trigger, about something already done. Compare Me alegra que vengas (that you are coming) with:
- Me alegra que hayas encontrado trabajo tan pronto.I'm glad you've found a job so soon.
- Me sorprende que nadie haya dicho nada.I'm surprised nobody has said anything.
- No creo que los resultados hayan llegado todavía.I don't think the results have arrived yet.
- Es posible que el vuelo se haya retrasado.The flight may have been delayed.
- No conozco a nadie que haya leído el informe entero.I don't know anyone who has read the whole report.
2. Hoping about something whose outcome you don't know yet. Ojalá and espero que + perfect subjunctive = I hope it has happened.
- Ojalá no se hayan olvidado de la reserva.I hope they haven't forgotten about the booking.
- Espero que lo hayáis pasado bien en la fiesta.I hope you had a good time at the party.
Ojalá haya aprobado = I hope she has passed (we don't know yet). Ojalá hubiera aprobado = I wish she had passed (she didn't). See Past hypotheses: si hubiera sabido, habría venido.
3. In time clauses about the future, for an action completed first. After cuando, en cuanto, hasta que (Cuando + subjunctive for the future) the present subjunctive is normal; the perfect stresses that one thing will be finished before the other.
- Cuando hayáis terminado, podéis iros a casa.When you've finished, you can go home.
Perfect or imperfect subjunctive?
After a present trigger, both can refer to the past. The perfect subjunctive mirrors the present perfect (recent, connected to now: hoy, esta semana, todavía); the imperfect subjunctive mirrors the preterite (a finished moment: ayer, en 2010). Native speakers are flexible here: No creo que lo haya dicho ayer is also heard.
Latin America
Everywhere the forms are the same, except hayan for vosotros (hayáis). Because many Latin American speakers prefer the preterite for recent events, they also tend to use the imperfect subjunctive where Spain uses the perfect: Me alegra que vinieras.
Common mistakes
Espero que has terminado: espero que needs the subjunctive: Espero que hayas terminado.Me alegra que hayas venir: haber is followed by the participle: hayas venido.hayan rompido, haya hacido: learn the irregular participles: roto, hecho.Ojalá hayas venido ayer a la fiestawhen you know they didn't come: for a known missed chance say Ojalá hubieras venido.
Practice
- Espero que te _____ bien el examen de esta mañana.Options: haya salido · salga · salió · ha salido
Show the answer
haya salido — A hope about something already done → perfect subjunctive. Salga would refer to the future.
- Me parece genial que tu empresa _____ (aceptar) el teletrabajo.
Show the answer
haya aceptado — Present trigger + completed action → haya aceptado. Many Latin American speakers would say aceptara / aceptase here (see the Latin America note), which is also correct.
- No es seguro que el acusado _____ (decir) toda la verdad.
Show the answer
haya dicho — Irregular participle: decir → dicho. Dijera / dijese (he told, at the trial) is also correct and is the usual choice in much of Latin America.
- Ojalá _____ a tiempo a la estación. Si no, perderá la entrevista.Options: haya llegado · hubiera llegado · llega · llegó
Show the answer
haya llegado — Ojalá + perfect subjunctive: we don't know yet and hope it has happened. Ojalá hubiera llegado = I wish he had (he didn't).