Your CSV and your PDF disagree by 500 rupees
transcript
Same account, same month. The CSV says 30,850 rupees. The PDF says 30,350. Where did the 500 go?
The CSV function skips the hotel hold, because it hasn't settled yet. Someone added that filter last month. The PDF function has its own copy of the fetch. It was written before the filter existed. So it includes the hold.
The fix is Template Method. A base class owns the order: fetch, format, send. Fetching is written once, so every format gets the same rows. Each format only writes its header, its rows and its footer.
Four settled rows, the same four in every file. A total of 30,850 in every file, because fetching is written once. And a third format, Markdown, is four small methods. All four languages print the same.
Copy the steps, and sooner or later one copy gets missed. Write the order once, and the files always agree.
Full breakdown in the lecture.