This is the page that fixes the single biggest false friend in the Brazilian Portuguese tense system. The compound perfect — tenho feito, tenho lido, tem chovido — looks exactly like the English present perfect (have done, have read) and English speakers reach for it constantly. But it does not mean the same thing. The Portuguese compound perfect has a narrow, specific meaning: a repeated or continuous action over a recent period that is still going on. For a single finished event — even one that happened five minutes ago — Brazilian Portuguese uses the simple preterite (eu fiz). This page gives you a clean test to choose between them.
The one-question test
Before you pick a tense, ask yourself:
Is this action still happening, or has it happened repeatedly over the recent period leading up to now?
- Yes → use the pretérito perfeito composto (tenho feito).
- No — it's a single, completed, bounded event → use the pretérito perfeito simples (eu fiz).
That is the whole decision. The composto is for ongoing or iterative recent activity; the simples is for completed, bounded events. Notice that "recent" alone does not trigger the composto — recency is not the deciding factor. I read a lot yesterday is recent but completed, so it is simples.
The composto: repeated or continuous, still going on
Use tenho + past participle when the action has been happening over and over across a recent stretch of time, or continuously up to now, and shows no sign of having stopped. Think of it as "I've been [doing] (lately, and still)."
Tenho lido muito ultimamente.
I've been reading a lot lately. (repeatedly, and it continues)
Tem chovido todos os dias.
It's been raining every day. (repeated pattern, still ongoing)
A gente tem trabalhado muito esse mês.
We've been working a lot this month. (continuing through now)
Você tem dormido bem?
Have you been sleeping well? (over the recent period)
Each of these carries the flavor "and it's still the case." If you said tenho lido muito ultimamente, the natural assumption is that you are still in a reading phase. The moment that phase is over, you would switch to the simples (li muito no mês passado — "I read a lot last month").
The simples: a single, finished, bounded event
Use the pretérito perfeito simples (eu fiz, eu li, choveu) for any action you view as a completed whole — done, over, with a boundary around it. This is the default past tense in Brazilian Portuguese, and it covers the vast majority of cases where English would use either the simple past or the present perfect.
Eu li muito ontem.
I read a lot yesterday. (one completed stretch)
Choveu ontem à noite.
It rained last night. (one event)
Já terminei o relatório.
I've already finished the report. (single completed action)
Você já comeu?
Have you eaten (already)?
Look hard at the last two. English uses the present perfect there ("have finished," "have eaten"), which is exactly what tempts you toward the composto — but each describes one completed event, so Brazilian Portuguese uses the simples. Já comi (I've eaten / I already ate) is right; tenho comido would mean "I've been eating (repeatedly lately)," a totally different idea.
Minimal pairs — drill these
The fastest way to internalize the split is to see the same verb both ways. Read each pair and feel the difference between one bounded event and a recent repeated/ongoing pattern.
| Simples (single, completed) | Composto (repeated/ongoing, still) |
|---|---|
| Eu li o jornal hoje de manhã. I read the paper this morning. | Tenho lido o jornal toda manhã. I've been reading the paper every morning. |
| Choveu ontem. It rained yesterday. | Tem chovido muito. It's been raining a lot. |
| Ele saiu cedo hoje. He left early today. | Ele tem saído cedo. He's been leaving early (lately). |
| Eu pensei nisso. I thought about it. | Tenho pensado muito nisso. I've been thinking about it a lot. |
| Estudei a noite toda. I studied all night. | Tenho estudado todos os dias. I've been studying every day. |
Tenho pensado muito em você.
I've been thinking about you a lot. (ongoing)
Pensei em você quando vi aquele filme.
I thought of you when I saw that movie. (one moment)
The right-hand column always carries "lately, repeatedly, and probably still"; the left-hand column always describes a closed, finished event.
Why English makes this so hard
English assigns two jobs to its present perfect that Portuguese splits between two different tenses:
- A single completed event with present relevance — "I have lost my keys." → Portuguese uses the simples: Perdi minhas chaves.
- A repeated/ongoing recent pattern — "I have been losing my keys a lot lately." → Portuguese uses the composto: Tenho perdido muito as minhas chaves ultimamente.
Because the English perfect handles both, English speakers map have + participle directly onto tenho + participle and use the composto far too often. The fix is to stop translating the form and translate the meaning: ask the one-question test. If the action is a single done deal, it is the simples — no matter how recent and no matter that English used "have."
This also connects to the duration constructions: Eu moro aqui há cinco anos uses the present, not the composto, for a continuous state since a point. The composto is specifically for repeated or iterative activity, not a single unbroken state — tenho morado would oddly suggest "I've been (in the habit of) living here," which is not what you mean.
Common Mistakes
❌ Eu tenho perdido as chaves.
Incorrect IF you mean a single event — this says 'I've been losing my keys repeatedly'.
✅ Eu perdi as chaves.
I lost / have lost my keys. (single event)
❌ Você tem comido?
Incorrect for 'Have you eaten?' — this asks 'Have you been eating (lately)?'
✅ Você já comeu?
Have you eaten (already)?
❌ Eu tenho terminado o trabalho.
Incorrect — a single completed task takes the simples.
✅ Eu terminei o trabalho.
I've finished / I finished the work.
❌ Ontem tenho lido muito.
Incorrect — 'ontem' (yesterday) bounds the event, so it must be the simples.
✅ Ontem eu li muito.
I read a lot yesterday.
❌ Tenho morado aqui há cinco anos.
Incorrect — a continuous state since a point uses the present, not the composto.
✅ Moro aqui há cinco anos.
I've lived here for five years.
Key Takeaways
- The composto (tenho feito) means repeated or continuous recent activity that is still going on — not the English present perfect.
- The simples (eu fiz) is the default for single, completed, bounded events, even very recent ones.
- The test: Still happening / happened repeatedly lately? → composto. One done event? → simples.
- Time-bounding adverbs like ontem, hoje de manhã, na semana passada force the simples.
- A continuous state since a point ("for five years") uses the present, not the composto.
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
- Pretérito Perfeito Composto: OverviewA2 — Why the Brazilian 'tenho falado' does NOT mean the English present perfect — it means an action repeated or continued from a past point up to now.
- 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.