The German Perfekt looks exactly like the English present perfect — haben/sein + participle mirrors "have" + participle — so English speakers reach for it whenever they would say "I have done." That instinct is wrong about half the time, and it produces a different half of errors when they avoid it. The core fact: German and English split the past along completely different lines. English splits by meaning (completed-and-done vs relevant-to-now); German splits by register (spoken vs written). This page untangles the mismatch.
German splits by register, English by meaning
English distinguishes the simple past ("I ate") from the present perfect ("I have eaten") by whether the action is sealed off in the past or still relevant now. German makes no such distinction. Instead, the German Perfekt is simply the normal past tense of everyday speech, while the Präteritum (simple past) belongs to writing and narrative.
So in conversation, a single German Perfekt sentence covers both English translations:
Ich habe schon gegessen.
I have already eaten. / I already ate.
Hast du den Film gesehen?
Have you seen the film? / Did you see the film? (informal)
Which English version is "right" depends only on the English context, not on anything in the German. The German speaker is not choosing between "ate" and "have eaten" — that choice does not exist for them in speech. They are choosing the spoken past, which is the Perfekt.
The "yesterday" test: where the two languages clash hardest
This is the sharpest illustration of the mismatch. English forbids the present perfect with a finished-time adverb: "I have seen him yesterday" is ungrammatical; you must say "I saw him yesterday." English reasons: yesterday is over, so the action cannot be "still relevant," so no present perfect.
German has no such restriction. In speech, the Perfekt is used with explicit past-time adverbs all the time:
Ich habe ihn gestern gesehen.
I saw him yesterday.
Wir haben letztes Jahr in Italien Urlaub gemacht.
We went on holiday in Italy last year.
Sie hat mich vorhin angerufen.
She called me a little while ago.
Notice the German keeps the Perfekt next to gestern, letztes Jahr, vorhin — adverbs that would block the English present perfect entirely. There is no contradiction in German because the Perfekt was never about "ongoing relevance." It is just the spoken past. (Note the lowercase adverbs: gestern, letztes Jahr — adverbs and adjectives are never capitalized, unlike nouns.)
The "since" trap: German uses the PRESENT, not the Perfekt
Now the mismatch flips the other way. For a situation that started in the past and continues up to now — exactly the case where English requires the present perfect ("I have lived here for three years") — German uses the present tense with seit.
The logic: if you still live there, the living is happening now. German treats it as a present-tense fact with a starting point, marked by seit ("since/for") plus the dative.
Ich wohne seit drei Jahren hier.
I have lived here for three years.
Wir kennen uns seit der Schulzeit.
We have known each other since our school days.
Sie lernt seit zwei Monaten Deutsch.
She has been learning German for two months.
In every case the German verb is present tense (wohne, kennen, lernt), while the natural English is the present perfect ("have lived," "have known," "have been learning"). This is a systematic mismatch, not an exception: any "have done X since/for [duration], and still doing it" maps to German present + seit + dative.
Quick decision guide
| Situation | English | German |
|---|---|---|
| Talking about a past event (conversation) | simple past or present perfect | Perfekt |
| Past event with "yesterday / last year" | simple past only | Perfekt (in speech) |
| Ongoing-up-to-now ("for / since") | present perfect | present tense + seit |
| Written narrative, news, literature | simple past | Präteritum |
English contrast, summed up
English asks: Is this action sealed in the past (→ simple past) or still echoing into now (→ present perfect)? German never asks this. German asks two completely different questions: Am I speaking or writing? (→ Perfekt vs Präteritum) and Is the action still going on right now? (→ present + seit). Because the two languages cut the pie along different axes, word-for-word translation of "have done" fails constantly. Learn the German axes and translate by situation, not by matching the English auxiliary.
Common mistakes
❌ Ich sah ihn gestern.
Not wrong grammatically, but unnatural in speech — the Präteritum of sehen sounds bookish here. (in casual conversation)
✅ Ich habe ihn gestern gesehen.
Correct — the Perfekt is the normal spoken past, even with 'yesterday.'
❌ Ich habe seit drei Jahren hier gewohnt.
Incorrect — Perfekt used for an ongoing situation that is still true.
✅ Ich wohne seit drei Jahren hier.
Correct — present tense + seit for something still going on.
❌ Sie lernt seit zwei Monate Deutsch.
Incorrect — seit requires the dative (Monaten), not the accusative.
✅ Sie lernt seit zwei Monaten Deutsch.
Correct — seit + dative.
❌ Hast du gestern Brot?
Incorrect — no participle; the Perfekt needs the participle gekauft. (intended meaning: 'did you buy bread')
✅ Hast du gestern Brot gekauft?
Correct — full Perfekt for the spoken past. (informal)
❌ Ich habe Deutsch für drei Jahre gelernt.
Incorrect — English-style 'for + duration' with Perfekt for an ongoing action. (and still learning)
✅ Ich lerne seit drei Jahren Deutsch.
Correct — present + seit signals the action is still ongoing.
Key takeaways
- The German Perfekt is the everyday spoken past; it translates as both English "I did" and "I have done" depending on the English context.
- German uses the Perfekt freely with finished-time adverbs (gestern, letztes Jahr) where English bans the present perfect.
- For an action still going on, German uses the present tense + seit + dative, where English uses the present perfect.
- Translate by situation, not by matching "have." The English auxiliary is an unreliable guide to the German tense.
Now practice German
Reading grammar gets you part of the way. The exercises are where it sticks — free, no signup needed.
Start learning German→Related Topics
- The Perfekt: Germany's Everyday Past TenseA2 — How the Perfekt is formed (haben/sein + past participle) and why it — not the Präteritum — is the normal spoken past in German.
- Perfekt vs PräteritumB1 — Why German chooses between Perfekt and Präteritum by register (spoken vs written), not by time or completion as English does — plus the sein/haben/modal exceptions.
- Using the Present Tense (No Progressive in German)A2 — The full range of the German present tense — habitual, ongoing, general, and future — and why German has no -ing progressive.
- Time ExpressionsA2 — When to drop the preposition (jeden Tag, accusative), when to use one (am Montag, im Januar), plus übermorgen, ab und zu, and the seit + present rule.
- The Präteritum: The Written and Narrative PastA2 — The simple past tense of German: the one-word past of writing and storytelling, plus the everyday spoken past of sein, haben, and the modals.