📖 Tenses · Intermediate · Lesson 01

Present Perfect vs Simple Past

यही गलती आपके बोलने और लिखने दोनों में पकड़ी जाती है
10min read
Intermediate
6 practice questions

1 The Mistake “I have done it yesterday” — one word too many, one tense too wrong Present perfect vs simple past — इन दोनों tenses के बीच फर्क समझना English learners के लिए सबसे common confusion में से एक है। You finish a task and update your manager: “I have completed the report yesterday.” […]

▶ Watch the Video Lesson Free

“I have done it yesterday” — one word too many, one tense too wrong

Present perfect vs simple past — इन दोनों tenses के बीच फर्क समझना English learners के लिए सबसे common confusion में से एक है। You finish a task and update your manager:

“I have completed the report yesterday.”

It sounds fine in your head. It sounds odd to a British or American colleague — not because the grammar is complicated, but because you’ve combined two things English refuses to combine: present perfect and a specific time word.

Hindi का “है / चुका है” pattern — जैसे “मैंने रिपोर्ट कल पूरी कर ली है” — दोनों situations में एक जैसा काम करता है: कोई specific समय बताना हो, या ना बताना हो। English में यही फ़र्क सबसे ज़्यादा confusion पैदा करता है।

The fix isn’t memorising “have + done.” It’s a single yes/no test you can run in half a second, and this entire lesson is built around that one test.

What you say
“I have completed the report yesterday.”
“Yesterday” names a specific, finished point in time. Present perfect and a specific time word never appear in the same sentence in English.
“है” के साथ specific time जोड़ दिया — यही मुख्य गलती है
What you should say
“I completed the report yesterday.”
Simple past pairs with specific time words. Drop “have,” keep the time word — the sentence becomes correct instantly.
Specific time hai, isliye simple past — “have” hata do

Hindi doesn’t ask the question English is always asking

This isn’t carelessness. Your brain is running perfectly correct Hindi logic — it just doesn’t map onto English.

🧠
Hindi Brain Mapping

मैंने खाना खाया है। (कब खाया — बताया नहीं)

मैंने खाना कल खाया है। (कब खाया — कल, फिर भी “है”)

In Hindi, है / चुका है stays exactly the same whether you mention a specific time (“कल”) or not. English forces a choice the moment a specific time appears — and that choice is the entire grammar point of this lesson.

Every time you build a sentence about the past, English silently asks one question:

The One Question That Decides Everything

“Am I naming exactly WHEN this happened?”

Yes, there’s a specific time (yesterday, in 2019, last week, when I was 10, three years ago) → Simple Past. The moment is finished and named — English wants a finished-and-named tense.

No specific time — just the fact, the experience, or the result (already, just, ever, never, yet, so far) → Present Perfect. The action connects to right now, so English wants a connects-to-now tense.

One fork in the road — not two separate grammar rules

Forget memorising forms for a moment. There is exactly one decision to make, and it looks like this:

The Specific-Time Test: does the sentence name exactly when?
Is a SPECIFIC time named? yesterday · in 2019 · last week · ago YES NO SIMPLE PAST verb (V2) + time word “I called her yesterday.” PRESENT PERFECT have/has + verb (V3) “I have called her already.” finished. named. done with. result still matters now. Specific time word present → tense must be Simple Past No specific time (or already/just/ever/never/yet) → Present Perfect

One test, not two rules to memorise: does the sentence name exactly when it happened? Named time → Simple Past. No named time → Present Perfect. Every mistake in this lesson comes from skipping this test.

Now test yourself. Below are ten words and phrases English speakers use to signal one side or the other. Tap a word, then tap the box you think it belongs in.

👆 Tap a word below, then tap the correct box.
SIMPLE PAST Names a specific, finished time
PRESENT PERFECT No specific time — connects to now
Sorted: 0/10
🎉 All ten sorted correctly — you’ve got the test.

रोज़ की sentences — same test, हर बार

Run the specific-time test on each of these. Once you see it, the pattern repeats endlessly.

What you say What to say Why — same rule
“I have seen that movie last week.”
“I saw that movie last week.”
“Last week” is a specific time → Simple Past. Drop “have,” keep the time word.
“Did you ever visit the Taj Mahal?”
“Have you ever visited the Taj Mahal?”
“Ever” signals a life experience, no specific time → Present Perfect, not Simple Past.
“She has finished the project in March.”
“She finished the project in March.”
“In March” names a specific time → Simple Past, no “has” needed.
“I never went to Japan.”
“I have never been to Japan.”
“Never” with no specific time = life experience → Present Perfect. Note the past participle: “been,” not “gone,” when talking about visiting.
“I have wrote the email already.”
“I have written the email already.”
Rule is right — tense choice matches “already” perfectly — but the verb form is wrong. Present perfect always needs the past participle (V3): written, not wrote.
The half-second test

Before you speak, ask: “Am I naming exactly when this happened?”
Yes → Simple Past (verb changes form: go → went, see → saw)
No → Present Perfect (have/has + past participle: go → have gone, see → have seen)

एक ही sentence में कभी भी specific time और “have/has” दोनों नहीं आते — यही सबसे common गलती है, और यही सबसे आसान fix भी।

When this really matters — 3 everyday British moments

📋 Scenario — Giving a status update in a stand-up
“Where are we on the client deliverable?”
“I’ve already sent the first draft — the client replied this morning.” — No specific time named, result still matters right now. Present Perfect, exactly right.

“I have sent the first draft yesterday.” — “Yesterday” is a specific time. This should be “I sent the first draft yesterday.” Small slip, but it’s the single most common tense error British managers hear from non-native colleagues.
📋 Scenario — Talking about experience in an interview
“Have you ever led a team before?”
“Yes, I’ve led a team of six for the past two projects.” — Life experience, no specific date attached to the claim itself. Present Perfect is the natural, confident answer.

“Yes, I led a team of six in my last role, from 2022 to 2024.” — Also correct, once you attach specific dates. Naming the exact years switches you into Simple Past — and that’s fine, it’s a different (also correct) way to answer.
📋 Scenario — Writing a project retrospective email
Summarising what’s been done so far this quarter
“We have completed three of the five milestones so far.” — “So far” explicitly signals no specific end point yet — this is textbook Present Perfect.

“We have completed the first milestone on the 3rd of April.” — A specific date makes this Simple Past: “We completed the first milestone on the 3rd of April.” Written communication is where this mistake is most visible, because the reader can re-read it.
🧠 Memory Anchor
“A named date kills ‘have.'”
The moment a sentence names a specific date, day, or year, “have/has” has to disappear and the verb has to change form.

जब भी confuse हो — बस पूछो: “क्या मैंने exact time बताया है?” हाँ तो simple past, नहीं तो present perfect।
Test Yourself

Run the specific-time test on each one

Your score
0/6
Q1 — “I ___ this book last month.”
Q2 — “___ you ever tried Ethiopian food?”
Q3 — Which sentence is correct?
Q4 — “She ___ her homework yet.”
Q5 — Correct this sentence: “I have called him three days ago.”
Q6 — Translate naturally: “मैंने अभी अभी अपना काम खत्म किया है।” (no specific time — it just happened)

What to remember from this lesson

1
Run the specific-time test before every past-tense sentence: “Am I naming exactly when this happened?” Yes → Simple Past. No → Present Perfect.
2
A specific time word (yesterday, last week, in 2019, three years ago) and “have/has” never appear in the same sentence in English — even though Hindi’s “है/चुका है” pattern doesn’t make that distinction.
3
Words like already, just, ever, never, yet, so far are your signal for Present Perfect — they exist precisely because there’s no specific time to name.
4
Present Perfect always needs the past participle (V3), not the simple past form (V2): have gone (not have went), have seen (not have saw), have written (not have wrote).
5
Your Hindi instinct isn’t wrong — it’s just wider. Hindi’s “है” comfortably covers both situations English splits apart. That gap is the entire mistake, and the specific-time test is the entire fix.

Next: Present Perfect Continuous — “I Have Been Working”

Grammar · Intermediate · Live now

Back to Levels →

In this lesson

Watch the lesson