The pretérito perfeito composto is built exactly like the English present perfect — ter ("to have") plus a past participle, mirroring I have eaten — and that resemblance is a trap. It is the single most mistaught tense in English-language Brazilian Portuguese materials, because almost everyone assumes the cognate construction carries the cognate meaning. It does not. In Brazilian Portuguese, tenho comido does not mean I have eaten. It means something closer to I have been eating (repeatedly, lately). Getting this distinction straight now, while you are first meeting the tense, will save you from an error you would otherwise repeat for years.
What the form looks like
The tense pairs the present-tense forms of ter with a past participle (the -ado / -ido form of the verb). You will study the full conjugation on the next page; here is just enough to recognize it.
Tenho estudado muito ultimamente.
I've been studying a lot lately.
Ele tem trabalhado demais.
He's been working too much.
Nós temos saído bastante nos últimos meses.
We've been going out a lot in recent months.
Visually, tenho estudado lines up perfectly with English I have studied. Resist that mapping. The meaning is not "I have studied" but "I have been studying — and still am, around now."
The core meaning: repeated or continuous, up to now
The Brazilian composto describes an action that began at some point in the past and has been repeating or continuing, again and again, right up to the present moment. It carries a strong sense of an ongoing pattern in the recent past. The implied time frame is lately, these days, over the past while — and the pattern is understood to still be going on now.
Tem chovido todos os dias.
It's been raining every day.
Tenho falado com ela com frequência.
I've been talking to her frequently.
O preço da comida tem aumentado bastante.
The price of food has been rising a lot.
In each case there is repetition or continuation: it rains, and rains again, and is still raining these days; I talk to her, and talk again, regularly, and still do. The composto never points to a single, one-off, finished event. That is the crucial boundary.
The contrast that English speakers must internalize
Here is the heart of the problem. In English, I have eaten normally reports a single completed action — you ate, the eating is done, you are now full. That meaning, in Brazilian Portuguese, is the pretérito perfeito simples (the simple preterite), not the composto.
Já comi, obrigado.
I've already eaten, thanks.
Eu já vi esse filme.
I've seen that movie.
Ela já chegou.
She has arrived.
To say I have eaten (and so I'm not hungry), a Brazilian says comi or já comi — the simple preterite, very often with já ("already"). Saying tenho comido instead would change the meaning entirely, to I have been eating (repeatedly, lately) — which would sound bizarre as an answer to "are you hungry?"
✅ Já comi, não estou com fome. — I've already eaten, I'm not hungry.
The single completed action of eating: simple preterite.
≠ Tenho comido bem ultimamente. — I've been eating well lately.
A pattern of eating over recent time: composto. Different meaning entirely.
What makes this tense distinctive
It is worth pausing on how unusual the Brazilian composto is, even among closely related languages. In European Portuguese, in Spanish, and in Italian, the cognate "have + participle" construction routinely expresses exactly the completed-action meaning of English I have eaten. A Spaniard says he comido and a Brazilian says comi for the same situation. The Brazilian composto has drifted away from that use and specialized almost entirely into the iterative/durative meaning — repeated or continuous action up to now. This makes it one of the most distinctive features of Brazilian Portuguese: a tense that looks like everyone else's present perfect but does a different job.
This is also why you cannot transfer your knowledge from Spanish or from European Portuguese here. If you have studied either, you must actively unlearn the completed-action use of the composto for Brazilian Portuguese.
Tenho dormido mal.
I've been sleeping badly (these past nights).
A gente tem se falado bastante.
We've been talking to each other a lot.
Common Mistakes
❌ Tenho comido um sanduíche. (intending: I have eaten a sandwich / I just ate one)
Incorrect — this would mean 'I've been eating a sandwich repeatedly,' which makes no sense for a single eating.
✅ Comi um sanduíche. / Já comi um sanduíche.
I ate a sandwich. / I've already eaten a sandwich.
A single completed action takes the simple preterite, not the composto.
❌ Você tem terminado o relatório? (intending: Have you finished the report?)
Incorrect — sounds like 'have you been finishing the report over and over.'
✅ Você já terminou o relatório?
Have you finished the report?
A yes/no question about a single completed result uses the preterite, very often with já.
❌ Eu tenho visto o Rio. (intending: I have been to Rio / I've seen Rio)
Incorrect for a one-time visit.
✅ Eu já fui ao Rio. / Eu já estive no Rio.
I've been to Rio. (a completed experience)
Experiential "have you ever..." statements use the preterite with já, not the composto.
❌ Transferring Spanish 'he comido' or European 'tenho comido' as a completed action into Brazilian.
Incorrect — the Brazilian composto does not share that completed-action meaning.
✅ For a completed action in Brazilian Portuguese, use the simple preterite: comi, terminei, vi.
Reserve tenho comido for repeated/continuous action up to now.
Key Takeaways
The pretérito perfeito composto (ter + participle) looks like the English present perfect but does not share its main meaning. It expresses an action repeated or continued from a past point up to and including now, with an implied frame of lately / these days: tenho estudado muito ultimamente. The English completed-action present perfect (I have eaten) is rendered in Brazilian Portuguese by the simple preterite, usually with já: já comi. This specialization is distinctive to Brazilian Portuguese and differs from Spanish, Italian, and even European Portuguese, so any habits from those languages must be unlearned. The next pages cover how to build the tense and how to use its iterative meaning precisely.
Now practice Portuguese
Reading grammar gets you part of the way. The exercises are where it sticks — free, no signup needed.
Start learning Portuguese→Related Topics
- Forming the Pretérito Perfeito CompostoA2 — How to build the Brazilian present perfect: present-tense 'ter' plus an invariant past participle that never agrees with the subject.
- Iterative/Continuous Meaning: 'Tem feito'B1 — Drilling the one thing the Brazilian present perfect actually means: an action repeated or continued from a recent past point right up to now.
- Translating English Present Perfect into BRB1 — English 'have/has + done' maps onto THREE different Brazilian structures — present + há, the simple preterite (+ já), and the perfeito composto. Here's how to choose.
- Pretérito Perfeito for Completed ActionsA1 — The core use of the Brazilian pretérito perfeito for finished, time-bounded past actions — and why English 'I have done' almost always maps to it, not to 'tenho feito'.
- 'Há' / 'Faz' Constructions for Time DurationA2 — How Brazilian Portuguese expresses 'for X amount of time' using 'há' or 'faz' with the present tense — and why the verb is never the compound perfect.
- Preterite vs Composto vs English Present PerfectB1 — Why the Brazilian pretérito perfeito composto ('tenho feito') is a false friend of English 'I have done' — and how to map English present perfect to the right BR tense.