Pretérito Perfeito Composto (Present Perfect Compound)

Of all the compound tenses in European Portuguese, the pretérito perfeito composto is the one that gives learners — especially Spanish speakers and English speakers — the most trouble. Its form is familiar: tenho feito, tens feito, tem feito. Its meaning is not. The tense looks identical to English "have done" and Spanish he hecho, but it only covers one narrow slice of what those forms mean: repeated or continuous action over a recent stretch of time, still going on. This page is the deep-dive. It walks through the forms, the three core uses, the time expressions that trigger it, and the two transfer errors (Spanish and English) that produce the vast majority of mistakes.

The form: ter in the present + past participle

The tense is built on the present indicative of ter plus an invariable past participle.

Personter (present)
  • past participle
eutenhotenho feito
tutenstens feito
ele / ela / vocêtemtem feito
nóstemostemos feito
eles / elas / vocêstêmtêm feito

Two spelling points worth flagging. The third-person plural is têm with a circumflex, not tem. The diacritic distinguishes plural from singular in writing: ele tem ("he has") vs. eles têm ("they have"). The two forms are pronounced slightly differently in many dialects, but even where they are homophones, the spelling distinction is obligatory.

The second point is that the past participle never changes. Tenho feito, tens feito, têm feito, all with the same feito. Unlike French or Italian, EP participles under ter do not agree with anything — not with the subject, not with a direct object, not with anything.

Tenho feito muitas asneiras ultimamente.

I have been doing a lot of silly things lately.

Tens lido o jornal esta semana?

Have you been reading the paper this week?

Eles têm chegado sempre atrasados.

They have been arriving late all the time.

Full paradigms for every regular verb in -ar, -er, -ir follow the same pattern — just swap the participle. Tenho falado, tenho comido, tenho partido. Irregular participles (tenho feito, dito, visto, posto, vindo, aberto, escrito, coberto) are learned once and drop into every compound tense.

The one thing to remember about meaning

Every sentence in the pretérito perfeito composto answers the same implicit question: What has been going on, repeatedly or continuously, over the recent past and still into now?

The action is not a one-off. It is not pinned to a specific moment. It is not a life experience. It is a pattern — something that has happened multiple times, or that is still unfolding, within a window of time that includes the present.

Tenho pensado muito em ti.

I have been thinking about you a lot (over recent days or weeks, still am).

Tem feito muito calor este verão.

It has been very hot this summer (still is).

Temos trabalhado até tarde nos últimos meses.

We have been working late over the last few months.

Compare with the simple preterite, which locates the action entirely in the past:

Pensei em ti ontem.

I thought about you yesterday. (one moment, over with)

Ontem fez muito calor.

Yesterday it was very hot. (a single bounded day)

Trabalhámos até tarde ontem à noite.

We worked late last night. (one evening, done)

Both forms describe the past. But the composto keeps one foot in the present — the action has not stopped. The simple preterite plants both feet in the past.

💡
A useful mental test: if the sentence works with "lately" or "over the last few weeks" in English, you probably want the composto. If it works with "yesterday" or "in 2020" or "once," you want the simple preterite. The composto is the Portuguese for the English progressive perfect ("has been -ing") — not the simple perfect ("has done").

The three core uses

The pretérito perfeito composto does three slightly different jobs, all unified by the "recent iterative / ongoing" idea.

Use 1: Repeated actions in the recent past

Something has happened several times over a recent window. Each individual event is complete, but the pattern is still open.

Tenho estudado todos os dias.

I have been studying every day (for the past while).

Ele tem ido à academia três vezes por semana.

He has been going to the gym three times a week.

Temos recebido muitas reclamações este mês.

We have been getting a lot of complaints this month.

Tenho comido fora muitas vezes ultimamente.

I have been eating out a lot lately.

Each of these describes a repetition over a window (days, weeks, this month, lately) that still reaches to now.

Use 2: Ongoing situation or state

Something has been the case continuously for a recent stretch of time. The state started at some past point and persists.

A casa tem estado vazia.

The house has been empty (for some time, still is).

Tenho andado cansado.

I have been feeling tired.

O tempo tem estado péssimo nos últimos dias.

The weather has been terrible over the last few days.

This is the use that feels closest to English "has been + adjective." Tenho andado cansado maps directly onto "I have been tired" — a continuous state over a recent period.

Use 3: Process underway

An activity that is in progress, not necessarily at this exact second, but as part of a broader ongoing effort.

Tenho pensado em mudar de emprego.

I have been thinking about changing jobs (and still am).

A equipa tem trabalhado num novo projeto.

The team has been working on a new project.

Tenho lido sobre a história de Portugal.

I have been reading about the history of Portugal.

These sentences describe a background process. The speaker is not claiming to be reading right now — they are claiming that reading about Portuguese history is an ongoing thing in their recent life.

Time expressions that trigger the composto

Certain adverbials occur with the composto so reliably that their presence is practically a grammatical cue. They share a common property: they describe a recent period that is still open.

PortugueseEnglishExample
ultimamentelatelyTenho dormido mal ultimamente.
recentementerecentlyTenho-o visto pouco recentemente.
nos últimos dias / meses / anosin the last few days/months/yearsTens trabalhado demais nos últimos meses.
esta semanathis weekEsta semana tem estado um frio horrível.
este mêsthis monthTem chovido muito este mês.
este anothis year (when open-ended)Este ano tem sido complicado.
nestes últimos temposlately / in these last timesNestes últimos tempos tenho feito muito ginásio.

Notice what is missing. None of these adverbials is a closed past time window. You will not see ontem ("yesterday"), na semana passada ("last week"), em 2019 ("in 2019"), or quando eu era criança ("when I was a child") triggering the composto. Those pin the event to a completed past period, and for that Portuguese uses the simple preterite.

Tenho estudado muito esta semana.

I have been studying a lot this week. (ongoing)

Estudei muito a semana passada.

I studied a lot last week. (closed past — simple preterite)

Tem chovido muito nos últimos dias.

It has been raining a lot over the last few days.

Choveu muito ontem.

It rained a lot yesterday. (one day, done — simple preterite)

What the composto is NOT for

This is where learners routinely slip. Below are the four most common misuses, each showing the wrong form and the right form.

1. A single completed event, even a recent one

❌ Já tenho ido ao dentista.

Incorrect — a single visit does not take the composto.

✅ Já fui ao dentista.

I've already been to the dentist.

❌ Tenho acabado o trabalho.

Incorrect — 'I have finished' (single event) takes the simple preterite.

✅ Acabei o trabalho. / Já acabei o trabalho.

I've finished the work.

2. A life experience

❌ Tenho estado em Paris.

Incorrect — a life experience uses já + simple preterite.

✅ Já estive em Paris.

I have been to Paris.

❌ Nunca tenho comido sushi.

Incorrect — 'I have never eaten sushi' is a life experience; use the simple preterite.

✅ Nunca comi sushi.

I have never eaten sushi.

3. An event pinned to a specific past moment

❌ Tenho falado com ele ontem.

Incorrect — ontem pins the event to a specific past moment.

✅ Falei com ele ontem.

I spoke with him yesterday.

❌ Tenho ido ao cinema na sexta.

Incorrect — 'on Friday' (a specific day) requires the simple preterite.

✅ Fui ao cinema na sexta.

I went to the cinema on Friday.

4. A state that started in the past and continues (this is the há / desde trap)

❌ Tenho vivido em Lisboa desde 2015.

Incorrect — continuous residence uses the present indicative with desde.

✅ Vivo em Lisboa desde 2015.

I have lived in Lisbon since 2015.

❌ Tenho estudado português há três anos.

Incorrect — for a continuous duration use present tense + há.

✅ Estudo português há três anos.

I have been studying Portuguese for three years.

The last pair is particularly tricky because the English and the composto have overlapping flavors. In English, "I have been studying Portuguese for three years" uses the progressive perfect — a pattern that looks like the composto. But in Portuguese, duration from a past point up to now is handled by the present indicative plus (or desde). The composto does not do "for X time up to now." It does "repeatedly / continuously in a recent window," which is a different thing.

💡
Test: can you replace "for X time" with "at intervals over a recent period"? If yes, composto might work. If the English genuinely means "continuously since a specific start point," use the present indicative with or desde. Tenho estudado = "I have been studying (in bursts, lately)"; estudo há três anos = "I have been studying (continuously, for three years now)."

Spanish interference: the biggest trap

If Spanish is your first language (or your strongest Romance language), this tense will try to betray you. Spanish he hecho is a much broader tool than Portuguese tenho feito. The Spanish present perfect covers single recent events (he comido = "I've eaten"), life experiences (he visitado = "I have visited"), close-past completions (hoy he ido = "today I've gone"), and ongoing iteratives (he trabajado mucho últimamente = "I've been working a lot lately"). Portuguese uses tenho feito for only the last of those four.

EnglishSpanishPortuguese
I've already eaten.Ya he comido.Já comi.
I have been eating badly lately.He comido muy mal últimamente.Tenho comido muito mal ultimamente.
I have visited Paris.He visitado París.Já fui a Paris. / Já visitei Paris.
I have lived in Lisbon since 2010.He vivido en Lisboa desde 2010.Vivo em Lisboa desde 2010.
Today I've been to the bank.Hoy he ido al banco.Hoje fui ao banco.
I have never seen snow.Nunca he visto la nieve.Nunca vi neve.

If you are a Spanish speaker, the composto is a rare tense. Most of the time your Spanish instinct to use he hablado maps, in Portuguese, onto the simple preterite (falei). See the vs Spanish present perfect page for the full contrastive treatment.

English interference: the second-biggest trap

English speakers carry a different but related problem. English "have + past participle" is the default translation of tenho feito in dictionaries, so the instinct is to use the composto wherever English uses the perfect. But English uses the perfect for life experiences ("I have visited Paris"), recent completions ("I have finished"), and many other things that Portuguese handles with the simple preterite.

English (with have + pp)PortugueseWhy
I've finished my homework.Já acabei os trabalhos.Single completion — simple preterite
Have you ever been to Paris?Alguma vez foste a Paris?Life experience — simple preterite
I've been waiting for an hour.Espero há uma hora.Duration up to now — present + há
I've been reading a lot lately.Tenho lido muito ultimamente.Iterative / ongoing — composto ✓

The rule of thumb: reach for the composto only when the English natural translation includes "has been -ing" rather than "has done." If the English is "has done," your safer default is the simple preterite.

💡
Native-English speakers overuse the composto less than Spanish speakers do, but they still overuse it. The simple preterite does almost all the past-tense work in EP. If you find yourself reaching for tenho feito often, double-check that the iterative or ongoing meaning is genuinely there.

Subtle cases worth knowing

Two contexts where the composto can feel surprising.

"This year" / "this month" — open or closed?

When the current year or month is framed as still open (still going), the composto fits. When it is framed as a completed unit of time, the simple preterite is better. The distinction is often a judgement call.

Este ano tem sido difícil.

This year has been difficult. (still unfolding — composto)

Este ano fui a três conferências.

This year I went to three conferences. (summing up the year — simple preterite)

"Have you seen X yet?"

A deceptive case. In English, "Have you seen the new Netflix series?" uses the perfect. In Portuguese, it is a single event — you either have or have not seen it — so the simple preterite is correct.

❌ Já tens visto a série nova da Netflix?

Incorrect — single completed experience takes the simple preterite.

✅ Já viste a série nova da Netflix?

Have you seen the new Netflix series?

The composto would only work if you meant "have you been watching it" — implying you are in the middle of it.

Tens visto a série nova da Netflix?

Have you been watching the new Netflix series? (i.e., are you in the middle of it)

Subtle distinction. Context carries a lot of the work.

Register

The composto is fully neutral — used across every register from casual speech to formal writing. It is neither elevated nor marked as informal. The only register question is the old ter / haver split: tenho falado is modern; hei falado is literary/archaic and should be recognized but not produced. See ter vs haver.

Common Mistakes

❌ Ontem tenho comido peixe.

Incorrect — ontem is a closed past moment.

✅ Ontem comi peixe.

Yesterday I ate fish.

❌ Já tenho visto esse filme três vezes.

Incorrect — a finite number of experiences requires the simple preterite.

✅ Já vi esse filme três vezes.

I've seen that film three times.

❌ Tenho morado aqui desde janeiro.

Incorrect — continuous state from a past point uses the present tense with desde.

✅ Moro aqui desde janeiro.

I've lived here since January.

❌ Hoje tenho tido muito trabalho.

Incorrect — hoje bounds the period to today; use simple preterite.

✅ Hoje tive muito trabalho.

I had a lot of work today.

❌ Tenho feito a sopa há duas horas.

Incorrect — 'for two hours' is a duration from a past point; use the present or simple preterite.

✅ Fiz a sopa há duas horas. / Estou a fazer a sopa há duas horas.

I made the soup two hours ago. / I've been making the soup for two hours.

Key Takeaways

  • Form: present of ter
    • past participle
    . Tenho, tens, tem, temos, têm (with circumflex on plural) + falado / comido / feito etc.
  • Meaning: repeated or continuous action over a recent window still open to the present. Iterative, not punctual. Ongoing, not completed.
  • Not for single events, life experiences, closed past moments, or continuous duration ("for three years now"). Those are handled by the simple preterite or the present indicative with há / desde.
  • Trigger adverbials: ultimamente, recentemente, este mês, esta semana, nos últimos dias.
  • Spanish instinct and English instinct both overgeneralize this tense. Use it only when the English natural translation is "has been -ing."
  • Modern EP uses ter, not haver. Hei falado is literary.

For the formal, contrastive approach to how this tense differs from Spanish he hablado, see Portuguese vs Spanish Present Perfect. For more on the iterative meaning, see Repeated or Ongoing Actions Up to Now.

Related Topics