Me alegro de que hayas venido.I'm glad you've come.
The present perfect subjunctive (pretérito perfecto de subjuntivo) is the subjunctive for something that is already done. You build it from the present subjunctive of haber plus a past participle, and you use it after the same triggers as the present subjunctive when the event is completed rather than happening now or still to come.
Quick shortcut: haya, hayas, haya, hayamos, hayáis, hayan + past participle (haya venido). Same triggers as the present subjunctive, but the event is finished: Me alegro de que vengas (you're coming) → Me alegro de que hayas venido (you came).
How to build it
Take the present subjunctive of haber and add the past participle, exactly as you do for the present perfect (he hablado), only with the subjunctive form of haber:
| haber (subjunctive) | Example | |
|---|---|---|
| yo | haya | haya hablado |
| tú / vos | hayas | hayas comido |
| usted/él/ella | haya | haya vivido |
| nosotros/as | hayamos | hayamos terminado |
| vosotros/as | hayáis | hayáis llegado |
| ustedes/ellos/ellas | hayan | hayan salido |
The participle is regular (-ado for -ar verbs, -ido for -er/-ir verbs) or one of the usual irregular ones: hecho, dicho, visto, puesto, escrito, abierto, roto, vuelto (and their compounds, like devuelto). Object and reflexive pronouns never sit between haya and the participle; they go before haya: No creo que se haya ido, Espero que se lo hayas dicho.
When the event is already finished
With a present-tense trigger, the present subjunctive points to something happening now or still to come, and the present perfect subjunctive points to something that is already over by the moment of speaking:
| Happening now / still to come | Already completed |
|---|---|
| Me alegro de que vengas. | Me alegro de que hayas venido. |
| Dudo que termine hoy. | Dudo que haya terminado. |
| No creo que lo vea. | No creo que lo haya visto. |
| Es una pena que se vayan. | Es una pena que se hayan ido. |
Here is how it works with the main kinds of triggers:
- Emotion: Me sorprende que haya llegado tan temprano. (It surprises me that he's arrived so early.)
- Doubt and denial: No creo que hayan recibido el mensaje. (I don't think they've received the message.) Es posible que ya haya salido. (It's possible he's already left.)
- Hope: Espero que hayas dormido bien. (I hope you slept well.) Ojalá haya llegado bien. (I hope she got there safely.) This is ojalá about something that may well have happened, unlike the unlikely wishes covered in the other uses of the imperfect subjunctive.
- Influence or necessity, with a deadline: Quiero que hayas terminado para las cinco. (I want you to have finished by five.)
Finished by a future point
The present perfect subjunctive is also what Spanish uses after a time word like cuando, en cuanto, después de que or hasta que when the action will be completed first and the main clause is in the future or an instruction. It carries the "will have finished" idea of the future perfect inside a subjunctive clause:
- Llámame cuando hayas terminado. (Call me when you've finished.)
- Saldremos en cuanto haya parado la lluvia. (We'll go out as soon as the rain has stopped.)
- No te vayas hasta que hayas hablado con ella. (Don't leave until you've spoken to her.)
Compare Llámame cuando termines, which is also correct: it tends to treat the finishing as the moment itself, while cuando hayas terminado stresses that it is already done before you call.
A finished past event with a time marker
With a finished time marker like ayer, speakers vary: No creo que haya venido ayer is common, especially in Spain, while No creo que viniera ayer is also widely used, especially in Latin America. Neither is wrong. The present perfect subjunctive is the natural choice when the event is connected to the present or the time frame hasn't closed (esta semana, hoy); the sequence of tenses with the subjunctive sorts out the whole picture, including what happens when the main verb is in the past.
Common mistakes
- ❌ Me alegro de que has venido. → ✅ Me alegro de que hayas venido. (me alegro de que is a trigger, so haber takes its subjunctive form, not the indicative has.)
- ❌ Llámame cuando habrás terminado. → ✅ Llámame cuando hayas terminado. (after cuando for something not yet real, Spanish uses the subjunctive, not the future.)
- ❌ Espero que hayas ponido las llaves aquí. → ✅ Espero que hayas puesto las llaves aquí. (poner has the irregular participle puesto.)
- ❌ No creo que haya se ido. → ✅ No creo que se haya ido. (the pronoun goes before haya, not between haya and the participle.)
Quick check
- Complete: Me alegro de que ya __________ (llegar, vosotros).
- Complete: Dudo que ella __________ (ver) la película.
- Complete: Llámame en cuanto __________ (hablar, tú) con el médico.
- Which one means the speaker is hoping for a result that may already have happened: Ojalá apruebe or Ojalá haya aprobado?
- Complete: Es probable que se lo __________ (decir, ellos) ya.
Show answers
- hayáis llegado: the event is finished, and me alegro de que is a trigger.
- haya visto: ver has the irregular participle visto.
- hayas hablado: after en cuanto, for something that will be done first.
- Ojalá haya aprobado: the hope is about a result that may already exist.
- hayan dicho: decir has the irregular participle dicho, and the pronoun lo stays before hayan.
Learn faster with GrammarMama
This article covers one topic — here's how GrammarMama helps you turn it into lasting progress:
-
Know your level — A quick placement test finds your CEFR level, so every exercise fits you. Find your level →
-
Follow a clear path — Practise every topic in the right order, from A1 all the way to C2. See the full path →
-
Set your own goal — Tell us what you're learning for, and exercises follow your interests. Set a goal →
-
Track your mistakes — See the patterns behind what trips you up, and fix them for good. Review your mistakes →
-
Build your vocabulary — Words from your exercises are saved and reviewed with spaced repetition. Open your vocabulary →
-
Practise speaking — Answer exercises out loud instead of typing, whenever you like. Try speech practice →
-
Train your pronunciation — Get instant, word-by-word feedback on how you sound. Train your pronunciation →
-
Practise a little every day — Short daily exercises, matched to your level, keep the language fresh. Start practising →
Key takeaways
- Present perfect subjunctive = haya, hayas, haya, hayamos, hayáis, hayan + past participle (haya venido).
- It follows the same triggers as the present subjunctive, but for an event that is already finished (Me alegro de que hayas venido).
- After cuando, en cuanto, después de que and hasta que, it expresses something that will be completed first (Llámame cuando hayas terminado).
- Pronouns go before haya, and the irregular participles (hecho, dicho, visto, puesto, escrito...) stay irregular.
- With a finished time marker like ayer, both haya venido and viniera are heard; neither is wrong.