SparkAI logoSparkAI

Spanish grammar lessons › Level B2 › The Spanish subjunctive

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).

Personhaber+ participle
yohayaterminado
túhayasterminado
él, ella, ustedhayaterminado
nosotros/ashayamosterminado
vosotros/ashayáisterminado
ellos, ellas, ustedeshayanterminado

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 fiesta when you know they didn't come: for a known missed chance say Ojalá hubieras venido.

Practice

  1. Espero que te _____ bien el examen de esta mañana.
    I hope this morning's exam went well for you (you haven't had the result yet).
    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.

  2. Me parece genial que tu empresa _____ (aceptar) el teletrabajo.
    I think it's great that your company has accepted remote working.
    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.

  3. No es seguro que el acusado _____ (decir) toda la verdad.
    It isn't certain that the accused has told the whole truth.
    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.

  4. Ojalá _____ a tiempo a la estación. Si no, perderá la entrevista.
    I hope he's got to the station on time. If not, he'll miss the interview.
    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).

In the app, this lesson is taught one idea at a time with the examples read aloud, followed by questions that explain the rule when you get one wrong. It then comes back for review on later days, until you've answered it correctly on three separate days.