Lesson 25: Pretérito perfecto compuesto — "I have eaten", "Have you ever...?", "Today I've..."

How to work with this lesson

  1. Read the rule — see how he hablado is assembled (5 minutes, no more)
  2. Run the scale out loud — he, has, ha, hemos, habéis, han + one fixed participle. Drill to automatism.
  3. Drill the "alguna vez" matrix — "Have you ever…?" — "Yes, I already…" / "No, I never…"
  4. Read every example out loud. Without that, the rule stays on paper.

Knowing how to build he comido = 10%. Getting your mouth to fire off ¿Has visto esa película? — No, todavía no la he visto without a pause — that takes hundreds of reps.


Part 1: What this tense actually is

Good news for English speakers: this is almost exactly the English present perfect.

EnglishSpanish
I have eaten.He comido.
She has written the letter.Ha escrito la carta.
Have you ever been to Madrid?¿Has estado alguna vez en Madrid?

Same structure: to have in the present + past participle. Same uses: life experiences, recent past with present relevance, time periods that include now. The mapping is one-to-one — you mostly already know when to use it from English. Spanish has two ways to say "I did / I have done something":

TenseExampleWhen
Pretérito indefinido (lessons 21–22)Ayer comí paella.Closed window. It's done, the time frame is over.
Pretérito perfecto compuesto (this lesson)Hoy he comido paella.The time window is still open — today, this week, this year, life-so-far.

The Spain rule (the central rule): if the action falls inside an open time window (today, this week, this year, "ever in life", "already", "not yet"), use perfecto compuesto. If the window is closed (yesterday, in 2020, three days ago, last Monday), use indefinido. Full marker list in Part 4.

Regional caveat: in Latin America the perfecto compuesto is barely used for "today I did X" — they say hoy comí paella. In Spain it's the norm: hoy he comido. We teach the Spain norm as the base — it's understood everywhere, and the LatAm pattern is just "use indefinido a bit more often". In Mexico, Argentina, Peru, you'll hear indefinido where a Spaniard says compuesto — that's dialect, not an error.


Part 2: How it's built — haber in the present + participle

The tense is compound (hence compuesto): an auxiliary verb haber in the present + the past participle of the main verb. Exactly the same machinery as English "I have + eaten".

Step 1: haber in the present — a pure helper, translate it as English "have"

Personhaber
yohe
has
él / ella / ustedha
nosotros / nosotrashemos
vosotros / vosotrashabéis
ellos / ellas / ustedeshan

Heads up: this haber is not "to have" in the sense of possession. "To have (something)" = tener. Here haber is a purely grammatical auxiliary, like English have in I have eaten — by itself it carries no meaning.

Step 2: The past participle — regulars

Verb typeParticiple endingExample
-ar-adohablar → hablado (spoken), trabajar → trabajado (worked)
-er-idocomer → comido (eaten), beber → bebido (drunk)
-ir-idovivir → vivido (lived), salir → salido (gone out)

That's literally it. Chop the infinitive ending, add -ado or -ido. Just like English -ed for regular verbs.

Step 3: Put them together

yo + he + hablado = he hablado ("I have spoken" / "I've spoken")

Personhablarcomervivir
yo / tú / élhe hablado / has hablado / ha habladohe comido / has comido / ha comidohe vivido / has vivido / ha vivido
nos. / vos. / elloshemos hablado / habéis hablado / han habladohemos comido / habéis comido / han comidohemos vivido / habéis vivido / han vivido

Iron rule #1: haber and the participle cannot be separated by anything. Not by no, not by a pronoun, not by an adverb. Negation and pronouns sit before haber; adverbs go before haber or after the participle. ✅ No he comido nada. / Ya lo he visto. / Lo he visto ya.He no comido nada. / He lo visto. Unlike English ("I have already seen it"), Spanish never splits the unit.

Iron rule #2: the participle is INVARIANT in this tense. It always ends in -o, regardless of subject gender or number. (Watch out if you're thinking in French — Spanish does NOT agree here.) Ella ha hablado. (not hablada) / Las chicas han comido. (not comidas) / Los niños han vuelto. (not vueltos) The participle CAN agree by gender/number — but only as an adjective or in the passive (Lesson 41). In perfecto compuesto, it's frozen.


Part 3: Irregular participles — memorize the block

Not many, but very high-frequency. Learn them as a chunk.

InfinitiveParticipleInfinitiveParticiple
abrir (to open)abiertomorir (to die)muerto
cubrir (to cover)cubiertoponer (to put)puesto
decir (to say)dichoresolver (to solve)resuelto
escribir (to write)escritoromper (to break)roto
hacer (to do/make)hechosatisfacer (to satisfy)satisfecho
ir (to go)idover (to see)visto
volver (to return)vuelto

Examples in context: He abierto la ventana. / ¿Qué has dicho? / He escrito una carta. / ¿Qué has hecho hoy? / ¿Dónde has puesto las llaves? / He roto el vaso. / ¿Has visto la película? / Mi padre ha vuelto a casa.

Derivatives are also irregular — same root, same participle: describirdescrito, descubrirdescubierto, deshacerdeshecho, componercompuesto, devolverdevuelto, preverprevisto.

Memorize as a block: abierto, cubierto, dicho, escrito, hecho, ido, muerto, puesto, resuelto, roto, satisfecho, visto, vuelto — say it out loud five times. This investment pays back in L26 (había hecho), L39 (haya hecho), L41 (fue hecho). Same list, three more tenses.


Part 4: Time markers — the signal words

About 10 markers almost always pull perfecto compuesto with them, and they cover 80% of cases.

MarkerEnglishExample
hoytodayHoy he trabajado mucho.
esta mañana / tarde / noche / semanathis morning / afternoon / evening / weekEsta semana he visto tres películas.
este mes / este añothis month / this yearEste año he viajado mucho.
yaalreadyYa he comido, gracias.
todavía no / aún nonot yetTodavía no he terminado.
nunca / jamásneverNunca he estado en Japón.
alguna vezever (questions only)¿Has estado alguna vez en París?
recientemente / últimamenterecently / latelyÚltimamente he dormido mal.
en mi vidain my life (= never, emphatic)En mi vida he visto algo así.

ya / todavía pair: ¿Ya has comido?Sí, ya he comido. / No, todavía no he comido. Ya = result is in place; todavía no = still expected.

alguna vez / nunca pair: alguna vez is for QUESTIONS only. Q: ¿Has visitado alguna vez Madrid? — Have you ever visited Madrid? Yes: Sí, ya lo he visitado. / Sí, lo he visitado dos veces. No: No, nunca he estado allí. / No, todavía no he estado.


Part 5: Compuesto vs indefinido — side by side

SituationTenseExample
Today (still going)compuestoHoy he desayunado tarde.
YesterdayindefinidoAyer desayuné tarde.
This weekcompuestoEsta semana he ido al gimnasio tres veces.
Last weekindefinidoLa semana pasada fui al gimnasio dos veces.
Ever / in life (experience)compuesto¿Has probado el sushi?
In 2015 (dated event)indefinidoProbé el sushi en 2015.
Already done (result now)compuestoYa he comprado el pan.
Done two hours agoindefinidoCompré el pan hace dos horas.
Recently (no specific date)compuestoRecientemente he leído un libro genial.
A month agoindefinidoHace un mes leí un libro genial.

The mental test: "Is the window still open or closed?" Open (hoy, esta semana, este año, alguna vez, en mi vida, recientemente) → compuesto. Closed (ayer, en 1990, hace tres días, el lunes pasado) → indefinido. In Mexico/Argentina/Peru you'll hear Hoy desayuné tarde — normal there. In Spain it's Hoy he desayunado tarde. Learn the Spain norm; you'll understand both.


Next up: Lesson 26 — Pretérito pluscuamperfecto (había hablado). The past-before-the-past: an action that happened before another past action ("I had already eaten when she arrived"). Exact same construction (haber + participle), only now haber is in the imperfect: había, habías, había, habíamos, habíais, habían. Every participle from this lesson comes right back — drill them hard now and L26 is essentially free.

Lesson 25: Pretérito perfecto compuesto — "I have eaten", "Have you ever...?", "Today I've..." · Español · Glottos Matrix