The Spanish past perfect: había + participle
The past perfect is haber in the imperfect — había, habías, había, habíamos, habían — plus a past participle. It marks an action that happened before another past action: cuando llegué, ya se habían ido. If your sentence has only one past event in it, you do not need this tense at all.
Draft copy. Every claim needs a native-speaker check before publishing — the byline is what makes this citable, so it has to be earned.
The past before the past
This tense does one job: it puts two past events in order.
Cuando llegué al aeropuerto, el avión ya había despegado. When I got to the airport, the plane had already taken off.
Two things happened. The plane took off first, so the plane gets había despegado. I arrived second, so I get the plain pretérito, llegué.
That is the whole rule, and it is more useful than “the past perfect is for the distant past”. Distance has nothing to do with it. Hace dos minutos ya se habían ido is fine — two minutes is not distant, but it is still earlier than the moment you are telling the story from.
The test: is there a second past moment in the sentence, spoken or implied? If not, use the pretérito and stop.
Building it
Haber in the imperfect, then the participle. The participle never changes — no agreement, ever.
| haber | + participle | |
|---|---|---|
| yo | había | hablado |
| tú | habías | comido |
| él / ella / usted | había | vivido |
| nosotros | habíamos | salido |
| ustedes / ellos | habían | llegado |
Participles: -ar verbs take -ado, -er and -ir verbs take -ido. hablar → hablado, comer → comido, vivir → vivido.
The irregulars are the same eight you already met with the present perfect:
- decir → dicho, hacer → hecho, ver → visto, poner → puesto
- escribir → escrito, abrir → abierto, volver → vuelto, morir → muerto
Nothing goes between había and the participle. Not a pronoun, not no, not ya. Those all go in front: no me había dado cuenta, ya lo habían vendido.
The words that pull it in
Certain markers almost force the tense, because they are themselves about ordering two moments:
| Marker | Example |
|---|---|
| ya | Ya había pagado la cuenta cuando llegaste. |
| todavía no | A las nueve todavía no había empezado a estudiar. |
| cuando | Él había terminado el pastel cuando tú llegaste. |
| antes de | Antes de venir a Lima, nunca había comido ceviche. |
| nunca | Nunca había visto tanta gente en el Centro. |
| para entonces | El vuelo llegó a las tres; para entonces habíamos esperado cuatro horas. |
Where learners overuse it
English lets you say “I had a great time yesterday, I had never been there”. In Spanish, if there is no second past reference point, the pretérito does the job:
- Ayer fui a Barranco. — not había ido, because nothing came after it.
- El año pasado aprendí a cocinar. — one event, one tense.
Reach for había only when you can point at the later event.
The one you will hear in Peru
In Peru — strongly in the Andes, and widely in Lima too — había + participle does an extra job that no textbook prints. It reports surprise at something you have just found out:
- ¡Había sido bien rico! — “Oh, it’s actually delicious!”
- ¡Tú habías sido el hermano de Rosa! — “So you’re Rosa’s brother!”
There is no “past before the past” here at all. The speaker is marking new information: I did not know this a second ago. It comes from contact with Quechua, which marks that distinction grammatically. You do not need to produce it, but you will hear it constantly, and hearing it as a normal past perfect will confuse you.
Try it
Fill each blank with the past perfect or the pretérito:
- Cuando llamé, mi hermano ya ___ (salir).
- Ayer ___ (yo, comer) anticuchos por primera vez.
- Nunca ___ (nosotros, ver) tanta neblina hasta ese invierno.
- El lunes ___ (ellos, cancelar) la clase.
→ 1 había salido · 2 comí · 3 habíamos visto · 4 cancelaron (one past event, so no había).
Next
The subjunctive has its own version of this tense, and in Peru it does more work than the textbook version does.
→ Hubiera and hubiese: the pluperfect subjunctive → The present perfect, and why Peru uses it less
Topics The pastPeruvian Spanish
Había, or just the pretérito?
Seven sentences about ordering two past moments — including the one Peruvian use of había that has nothing to do with ordering anything.
-
1Cuando llegué al aeropuerto, el avión ya ___.
Answer
había despegado — Two past events, so the earlier one takes the past perfect. *Despegó* would put the take-off and the arrival at the same moment, which is not what happened.
-
2Ayer ___ anticuchos por primera vez.
Answer
comí — There is only one past event here, so the pretérito is enough. *Había comido* needs a second, later past moment for it to sit before.
-
3Nunca habíamos ___ a ese restaurante.
Answer
vuelto — *Volver* has the irregular participle *vuelto*. The participle after *haber* never agrees with anything either — it is *habíamos vuelto*, not *vueltos*.
-
4Which sentence means “I hadn't realised”?
Answer
No me había dado cuenta. — Pronouns go in front of *había*, never between *había* and the participle. *No me he dado cuenta* is the present perfect: I haven't realised, as of now.
-
5A las nueve de la noche todavía no ___ a estudiar.
Answer
había empezado — *Todavía no* points at a later reference moment — nine o'clock — so the non-event before it takes *había*. This marker almost always pulls the past perfect in.
-
6You finally try a dish a friend recommended and it turns out delicious. In Peru you might hear:
Answer
¡Había sido bien rico! — In Peruvian Spanish *había sido* can mark surprise at something just discovered, with no past-before-a-past in sight. It comes from contact with Quechua and you will hear it constantly.
-
7¿Cuál oración está en pasado perfecto?
Answer
Había usado el carro de mi hermano. — The tense is *había* plus a participle. *Había* on its own is just “there was”, and the last option is the present perfect — a different thing.