The main rule
Ask three questions of every verb. When is it: now or later, before now, or before a past point (tuviera, haya tenido, hubiera tenido)? Is it real or unreal, known or unknown (Si llueve against Si lloviera, Ojalá haya salido bien against Ojalá hubiera salido bien)? And is it an action by someone, a result, or a report of what someone said (fue cerrada por el ayuntamiento, está cerrada, me preguntó si estaba cerrada)? A wish, doubt or request about another person's action asks for the subjunctive; a deadline, a guess or a hypothetical result asks for a future or conditional form.
One map, every form
| Situation | Form | Example |
|---|---|---|
| A wish, unlikely now | ojalá + imperfect subjunctive | Ojalá tuviera más tiempo para viajar. |
| A wish, you do not know the result yet | ojalá + perfect subjunctive | Ojalá haya salido bien el examen. |
| A regret about the past | ojalá + pluperfect subjunctive | Ojalá hubiera estudiado más. |
| Doubt about a past event, seen from now | no creo que + perfect subjunctive | No creo que haya llegado todavía. |
| Doubt or feeling about an earlier past point | past verb + hubiera + participle | No creía que hubiera llegado antes de las ocho. |
| What someone wanted or asked of another person | past verb + que + imperfect subjunctive | Quería que vinieras. Le pedí que me ayudara. |
| A deadline ahead | futuro perfecto | Para el lunes habré terminado. |
| A guess about the recent past | futuro perfecto | No contesta: habrá salido. |
| The future of a past point, in a story | condicional perfecto | Dijo que para las ocho lo habría terminado. |
| A hypothetical past result | condicional perfecto | En tu lugar, habría llamado. |
| An unlikely or unreal present or future condition | si + imperfect subjunctive, condicional | Si tuviera tiempo, viajaría más. |
| An unreal past condition | si + pluperfect subjunctive, condicional perfecto | Si hubiera estudiado, habría aprobado. |
| A mixed condition: past cause, present result | si + pluperfect subjunctive, condicional | Si hubiera aceptado aquel trabajo, ahora viviría en Chile. |
| A process or event in the passive | ser + participle (+ por) | El puente fue construido en 1890 por una empresa local. |
| A resulting state | estar + participle | Hoy el museo está cerrado. |
| A reported question | original tense shifts back, si or a question word | ¿Has comido? > Me preguntó si había comido. |
| A reported order or request | decir que + subjunctive | Me dijo que me sentara. |
| Reported information | decir que + indicative | Me dijo que venía a las ocho. |
English hides most of these choices. "Would" alone covers viniera ("I wanted you to come" is Quería que vinieras), vendría ("he said he would come") and habría terminado ("he said he would have finished by eight"). "If I had" is si tuviera when it means now and si hubiera tenido only in the longer "if I had had"; "I wish I had time" is ojalá tuviera, but "I wish I had studied" is ojalá hubiera estudiado. "She asked me to help her" is Me pidió que la ayudara: pedir with another person usually takes que and the subjunctive. English uses one passive for an event and a state ("was built", "is closed"); Spanish splits them: fue construido against está cerrado. "By Monday I will have finished" maps directly to habré terminado.
The pairs learners mix up
| Pair | The question to ask | Example |
|---|---|---|
| si tuviera / si hubiera tenido | Is the situation now or ahead, or in the past? | Si tuviera coche, iría hoy. / Si hubiera tenido coche, habría ido ayer. |
| ojalá tuviera / haya tenido / hubiera tenido | Unlikely now, not known yet, or it did not happen? | Ojalá tuviera tiempo. / Ojalá haya tenido buen viaje. / Ojalá hubiera tenido más tiempo. |
| habrá terminado / habría terminado | A deadline or guess from now, or the future of a past point in a story? | Dice que para el viernes habrá terminado. / Dijo que para el viernes habría terminado. |
| fue cerrado / está cerrado | An event with a time or an agent, or the state now? | El local fue cerrado en mayo. / Hoy está cerrado. |
| me dijo que venía / me dijo que viniera | Did the original say a fact or give an order? | «Vengo a las ocho» > venía. «Ven a las ocho» > viniera. |
| no creo que haya llegado / no creía que hubiera llegado | Is the main verb in the present or in the past, with an earlier anchor? | No creo que haya llegado ya. / Cuando llamé, no creía que ya hubiera llegado. |
Examples
- Ojalá hubiera estudiado más para el examen. I wish I had studied more for the exam.
- Mi jefa quería que terminara el informe antes de las ocho. My boss wanted me to finish the report before eight.
- No creo que haya llegado todavía; su vuelo salió tarde. I don't think he has arrived yet; his flight left late.
- Cuando llegamos, nos sorprendió que el tren ya hubiera salido. When we arrived, we were surprised that the train had already left.
- Para el viernes habré terminado la traducción. By Friday I will have finished the translation.
- Dijo que para las ocho lo habría terminado, pero no lo terminó. He said he would have it finished by eight, but he didn't finish it.
- Si hubiera aceptado aquel trabajo, ahora viviría en Chile. If I had accepted that job, I would be living in Chile now.
- El puente fue construido en 1890 y hoy está cerrado al tráfico. The bridge was built in 1890 and is closed to traffic today.
- Ayer Marcos me preguntó si había comido y me dijo que me sentara. Yesterday Marcos asked me if I had eaten and told me to sit down.
- Me dijo que venía a las ocho, y yo le dije que viniera antes. He told me he was coming at eight, and I told him to come earlier.
A model text, analysed
Marcos quería que su hermana Sofía lo acompañara a Lviv (another person's action after a past verb: imperfect subjunctive). Ella le preguntó si el hotel estaría cerca de la estación (¿Estará cerca? shifts to the conditional in a closed story), y él le dijo que no se preocupara (an order: subjunctive), porque la reserva ya estaba hecha (information, so indicative; a state, so estar). Sofía dijo que para el viernes habría pedido los días libres (the future of a past point: conditional perfect), pero su jefe se los negó. Ahora la reserva está cancelada (a state now), porque fue cancelada por el hotel el lunes (an event with an agent: ser). Marcos piensa: «Si mi hermana hubiera tenido vacaciones, ahora estaríamos en Lviv» (a mixed condition) y «Ojalá hubiéramos reservado en otra fecha» (a regret: pluperfect subjunctive).
Where Spanish allows two forms
Several choices are not mistakes either way. Hablara and hablase, hubiera and hubiese, mean the same, and -ra is the one to use. In the result clause of an unreal past condition, habría aprobado, hubiera aprobado and hubiese aprobado all work; the si clause stays hubiera estudiado. After a present verb about a past event, No creo que lo haya hecho and No creo que lo hiciera are both heard. After a past verb about something still ahead, Me pidió que venga mañana and que viniera mañana are both correct, and the imperfect is the safe choice. For the passive, El puente fue construido en 1890, Se construyó el puente en 1890 and Construyeron el puente en 1890 are all fine; the real contrast is event against state. After cuando, cuando termines and cuando hayas terminado both work. In reports, content that is still true or still ahead can keep its tense (Me preguntó dónde vivo, Me preguntó si vendrá), and Me preguntó que si venía is common in speech; in a closed past story the shifted forms (vivía, vendría) are the standard choice.
A check before you write
Put a time on the verb (now, ahead, before now, before a past point), then say whether it is wished, doubted, hypothetical or reported. If one clause is an "if", look only at the verb after si: that is where the time is decided.
Common mistakes
Si tendría tiempo, viajaría más.Si tuviera tiempo, viajaría más. after si never use the conditional; the imperfect subjunctive goes thereSi habría sabido la verdad, no habría venido.Si hubiera sabido la verdad, no habría venido. an unreal past needs the pluperfect subjunctive after siOjalá había estudiado más.Ojalá hubiera estudiado más. ojalá takes the subjunctive, never the indicativeAyer me pidió que lo hago.Ayer me pidió que lo hiciera. a past verb of request asks for the imperfect subjunctiveEl puente está construido en 1890.El puente fue construido en 1890. an event with a date is ser; estar shows only the stateQuería tú venir.Quería que vinieras. / Quería venir. a different subject needs que and the subjunctive; one subject takes the infinitiveCuando habrás terminado, llámame.Cuando hayas terminado, llámame. / Cuando termines, llámame. after cuando about the future Spanish uses the subjunctive, never the future perfect
Frequently asked questions
How do I choose between si tuviera and si hubiera tenido?
Look at the time of the situation. Si tuviera (+ conditional) is for now or ahead and is unlikely or unreal: Si tuviera tiempo, viajaría más. Si hubiera tenido (+ conditional perfect) is for the past: Si hubiera tenido tiempo, habría viajado más.
What is the difference between ojalá tuviera, ojalá haya and ojalá hubiera?
Ojalá tuviera is a wish that is unlikely now, ojalá haya salido bien hopes for something you do not know yet, and ojalá hubiera estudiado regrets something that did not happen.
When do I use habré terminado and habría terminado?
Habré terminado is a deadline or a guess from now: Para el lunes habré terminado, No contesta: habrá salido. Habría terminado is the future of a past point, mostly in a story: Dijo que para el lunes lo habría terminado, or a hypothetical result: Yo no lo habría hecho.
Should I use ser or estar with a participle?
Use ser for the event or process, often with a date or por and an agent: fue construido en 1890 por una empresa local. Use estar for the result you see now: está cerrado. In daily speech, the passive se is also common: Se construyó en 1890.
How do I tell an order from information in reported speech?
Go back to the words that were said. An order or request becomes the subjunctive: «Siéntate» > me dijo que me sentara. Information stays indicative: «Vengo a las ocho» > me dijo que venía a las ocho.
Do I always change the tense in reported questions?
In a closed past story, yes: «¿Has terminado?» > me preguntó si había terminado, «¿Vendrás?» > me preguntó si vendría. If the content is still true or still ahead, the original tense may stay.