German Perfekt: When to Use haben and When to Use sein

The Perfekt is the tense you use for almost everything in the past when you speak German. Ich habe gegessen. Ich bin nach Hause gegangen. Wir haben Deutsch gelernt. It has two parts: a form of haben or sein in position 2, and a past participle at the very end. The only real question is which helper verb to use, and that has a clear answer for almost every verb.

How the Perfekt is built

helper verb (position 2) + … + past participle (end of clause)

  • Ich habe gestern Pizza gegessen. (I ate pizza yesterday.)
  • Wir sind nach Berlin gefahren. (We went to Berlin.)
  • Hast du das verstanden? (Did you understand that?)

Note that the participle sits at the end, and everything else (time, place, objects) fits between. It’s the same “sandwich” that you know from separable verbs and modals.

haben or sein? One rule with two parts

Use sein if the verb:

  1. describes a change of place (movement from A to B): gehen, fahren, fliegen, kommen, laufen, reisen, ankommen, abfahren
  2. describes a change of state (becoming something): aufwachen, einschlafen, aufstehen, werden, sterben, wachsen
  3. is one of three special verbs: sein, bleiben, passieren

Use haben for everything else. This includes all verbs with an accusative object (essen, kaufen, sehen, machen), all reflexive verbs (sich waschen), and all modal verbs.

VerbHelperExample
gehenseinIch bin ins Kino gegangen.
fahrenseinEr ist nach Wien gefahren.
kommenseinSie ist spät gekommen.
aufstehenseinWir sind um sechs aufgestanden.
bleibenseinIch bin zu Hause geblieben.
seinseinEs ist schön gewesen.
werdenseinEr ist Arzt geworden.
essenhabenIch habe Pizza gegessen.
machenhabenWas hast du gemacht?
kaufenhabenSie hat ein Auto gekauft.
sehenhabenWir haben den Film gesehen.
lernenhabenIch habe Deutsch gelernt.
arbeitenhabenEr hat lange gearbeitet.
schlafenhabenIch habe gut geschlafen.

A quick test: is there a movement to a new place or a change of state? If yes, sein. If not, haben.

Verbs that seem to break the rule

Verbs with both: schwimmen, fahren, fliegen can take either, depending on the meaning.

  • Ich bin über den Fluss geschwommen. (movement to a new place: sein)
  • Ich habe eine Stunde geschwommen. (an activity, no destination: haben)
  • Er ist nach Hause gefahren. / Er hat den Wagen gefahren. (with an accusative object den Wagen: haben)

Regional difference: in southern Germany, Austria and Switzerland, verbs of position (sitzen, stehen, liegen) often take sein: Ich bin gesessen, Ich bin gestanden. In northern and standard German it’s ich habe gesessen. Both are heard, and the northern one is safe everywhere, especially in exams.

How to form the participle

Regular verbs (weak): ge- + stem + -t

InfinitiveParticiple
machengemacht
lernengelernt
kaufengekauft
spielengespielt
arbeitengearbeitet (an extra e for pronunciation)

Irregular verbs (strong): ge- + stem (often changed) + -en

InfinitiveParticiple
essengegessen
trinkengetrunken
gehengegangen
sehengesehen
schreibengeschrieben
nehmengenommen
kommengekommen
sprechengesprochen

There’s no reliable rule for the vowel change, so learn the participle together with the verb. Dictionaries list it.

No ge- for three groups

  1. Inseparable prefixes (be-, ent-, er-, ver-, zer-): besuchen → besucht, verstehen → verstanden, bekommen → bekommen
  2. Verbs ending in -ieren: telefonieren → telefoniert, studieren → studiert
  3. Separable verbs put -ge- inside: aufstehen → aufgestanden, einkaufen → eingekauft

Practise your German out loud with SipLingo, free to try on iPhone and Android:

Download SipLingo on the App StoreGet SipLingo on Google Play

The 40 verbs to learn first

With haben:

InfinitiveParticiple
arbeitengearbeitet
bekommenbekommen
besuchenbesucht
bezahlenbezahlt
bringengebracht
essengegessen
findengefunden
gebengegeben
habengehabt
helfengeholfen
kaufengekauft
kochengekocht
lernengelernt
lesengelesen
machengemacht
nehmengenommen
sagengesagt
schlafengeschlafen
schreibengeschrieben
sehengesehen
sprechengesprochen
trinkengetrunken
verstehenverstanden
wartengewartet

With sein:

InfinitiveParticiple
ankommenangekommen
aufstehenaufgestanden
bleibengeblieben
fahrengefahren
fliegengeflogen
gehengegangen
kommengekommen
laufengelaufen
reisengereist
seingewesen
werdengeworden
einschlafeneingeschlafen
umziehenumgezogen
passierenpassiert
abfahrenabgefahren
aussteigenausgestiegen

Perfekt vs Präteritum: what to say in speech

German has a second past tense, the Präteritum (ich ging, ich aß). In everyday speech, use the Perfekt for nearly everything. The Präteritum is mainly for writing (stories, news), plus a few very common verbs that are used in speech too:

  • sein → war: Ich war gestern im Kino. (rather than ich bin gewesen)
  • haben → hatte: Ich hatte keine Zeit.
  • modal verbs → wollte, konnte, musste: Ich wollte anrufen, aber ich konnte nicht.

So a natural spoken past is a mix: Gestern war ich müde, also bin ich früh ins Bett gegangen.

Word order in the Perfekt

  • Main clause: the helper is in position 2, the participle at the end. Ich habe gestern lange geschlafen.
  • Question: Hast du gestern lange geschlafen?
  • Subordinate clause: both go to the end, with the helper last: …, weil ich gestern lange geschlafen habe.
  • With a modal verb, the Perfekt is rare in speech. Use the Präteritum: Ich musste arbeiten.

Mistakes that cost points

  1. Wrong helper: Ich habe nach Hause gegangen. Correct: Ich bin nach Hause gegangen.
  2. Regular ending on an irregular verb: Ich habe gegesst. Correct: gegessen.
  3. Forgetting the participle at the end: Ich habe gestern Pizza (missing gegessen)
  4. Adding ge- to inseparable or -ieren verbs: gebesucht, getelefoniert. Correct: besucht, telefoniert.
  5. Putting the participle in the wrong place in a weil clause.

These are the mistakes you make while speaking, not while writing. SipLingo catches them as you talk, explains them in your own language and gives you the correct sentence, so the right helper verb becomes automatic. Try it free →

Practice: describe yesterday

Say the following out loud, then replace the details with your own:

Gestern bin ich um sieben aufgestanden. Ich habe Kaffee getrunken und bin zur Arbeit gefahren. Um zwölf habe ich mit Kollegen gegessen. Nach der Arbeit habe ich eingekauft und Deutsch gelernt. Dann bin ich früh eingeschlafen.

That’s a mix of sein and haben verbs, three separable verbs and no Präteritum. If you can say it without stopping, you have the Perfekt.

Related guides: the 4 German cases explained · German word order rules

Official sources

For the official details and the latest updates, see:

Frequently asked questions

When do you use sein in the Perfekt?
With verbs of movement to a new place (gehen, fahren), verbs of change of state (aufwachen, werden) and sein, bleiben, passieren.

Is the Perfekt used in spoken German?
Yes, for nearly all past events. The Präteritum is mostly written, except for war, hatte and the modals.

How do you form the past participle?
Regular verbs: ge- + stem + -t (gemacht). Irregular verbs: ge- + changed stem + -en (gegessen). No ge- with inseparable prefixes and -ieren verbs.

Does the participle change for separable verbs?
Yes, -ge- goes between the prefix and the verb: aufgestanden, eingekauft.

Do I need the Perfekt for the B1 exam?
Yes. Speaking and writing tasks at A2 and B1 require the Perfekt, and mistakes with the helper verb are among the most frequent.


Turn the rule into a reflex. SipLingo corrects your German as you speak, in your own language. A1 to B2.

Start free →

Similar Posts