G16 · Grammar

Present Perfect — Perfecto vs indefinido

he comido vs comí: choosing the right past for the right time frame

Two pasts, one rule of thumb

Spanish (in Spain) splits the past by time frame: if the period includes NOW (hoy, esta semana, este año), use the pretérito perfecto; if it is closed (ayer, el lunes, en 2019), use the indefinido.

Hoy he desayunado churros. (Today I had churros — today is still running.)

Ayer desayuné tostadas. (Yesterday I had toast — yesterday is closed.)

English speakers over-use the indefinido. Listen for the time marker — it decides for you.

Form: he, has, ha + participio

Present of haber + past participle. Same irregular participles as the pluscuamperfecto.

he · has · ha · hemos · habéis · han + hablado/comido/vivido

¿Has visto mi móvil? (Have you seen my phone?)

Todavía no hemos terminado. (We haven't finished yet.)

Like English "have done" — but remember nothing can separate haber and the participle.

The open-period markers

These markers call for the perfecto because the period is still open.

hoy · esta mañana/semana · este mes/año · últimamente (lately)

ya (already) · todavía no (not yet) · alguna vez (ever) · nunca

¿Has estado alguna vez en México? (Have you ever been to Mexico?)

Experience questions (¿alguna vez...?) always take the perfecto — just like English "have you ever...?".

The closed-period markers

These markers close the period and demand the indefinido.

ayer · anoche · la semana pasada · el año pasado · en 2015 · hace dos días

Anoche cené con mis padres. (Last night I had dinner with my parents.)

En 2019 viajamos a Chile. (In 2019 we travelled to Chile.)

Unlike British English, Spanish is strict: "hoy" really does force the perfecto, "ayer" really does force the indefinido.

A note on Latin America

In most of Latin America the indefinido covers nearly everything ("Hoy desayuné churros" is normal in Mexico). This course teaches the Castilian distinction — examiners expect it, and you will understand both.

Spain: Hoy he comido paella.  ·  Mexico: Hoy comí tacos.

Both are correct Spanish — but match your register to your exam.

Exam tip: in writing, pick one system and stay consistent throughout your text.

Common Mistakes

Traps for English speakers

These are the errors English speakers make most often.

Ayer he visitado a mi abuela.
Ayer visité a mi abuela.
ayer closes the period → indefinido, never the perfecto (in Spain)
Hoy desayuné churros. (in a Castilian exam)
Hoy he desayunado churros.
hoy keeps the period open → pretérito perfecto in peninsular Spanish
¿Has visto la película la semana pasada?
¿Viste la película la semana pasada?
la semana pasada is a closed period → indefinido
He nunca probado el gazpacho.
Nunca he probado el gazpacho.
nunca goes before he — nothing splits haber + participle
¿Alguna vez estuviste en México? (experience question)
¿Alguna vez has estado en México?
Experience with alguna vez → perfecto: has estado

Recap: Present Perfect

Open period
hoy, esta semana, este año → perfecto
Hoy he desayunado churros.
Closed period
ayer, en 2019, hace dos días → indefinido
Ayer desayuné tostadas.
Form
he/has/ha/hemos/habéis/han + participio
¿Has visto mi móvil?
Experience
¿alguna vez has...? · nunca he...
¿Has estado alguna vez en México?
Already / yet
ya he... · todavía no he...
Todavía no hemos terminado.
Regional
Latin America prefers the indefinido
Hoy comí tacos. (Mex.)
Practice now →