Period close
How the P&L resets to zero while the balance sheet carries on.
By Solomon Ajayi · Free to read, no signup
It is December 31. Your year had ₦100,000 of revenue and ₦40,000 of expenses, leaving ₦60,000 of profit. To start the new year clean, you 'close the books': revenue and expense accounts (the P&L) get zeroed out, and the net (profit) rolls into Retained Earnings (equity). Balance sheet accounts (cash, wallets, etc.) carry forward untouched. This is the rhythm of accounting that engineers building reporting systems must understand.
There are two kinds of accounts, and they behave differently at year end. Revenue and expense accounts are temporary: they measure activity within a single period, and that measurement has to start fresh each year so you can say what you earned this year, not since the beginning of time. Balance sheet accounts like cash, wallets, and equity are permanent: they describe what you have right now, and that does not reset just because the calendar flipped.
Closing the books is the entry that resets the temporary accounts. You debit Revenue down to zero, credit Expenses down to zero, and the net difference, your profit, lands in Retained Earnings as equity. The cash never moves; it already moved during the year. What this entry does is take a year of accumulated profit out of the P&L and fold it permanently into the owners' stake.
This is why the current Revenue account is the wrong place to read lifetime revenue from. After every close it is zero, so lifetime figures have to be summed across closed periods, not queried from a live balance. If your reporting code treats the Revenue account as a forever-growing total, it tells the truth right up until the first fiscal close, then quietly starts reporting only the current period.
Worked example, step by step
Set the stage: a year's activity (consolidated)
Over the year: ₦100,000 of revenue collected in cash, ₦40,000 of expenses paid out. Net cash change is ₦60,000.
| Account | Debit | Credit |
|---|---|---|
| Cash (1100) | ₦60,000.00 | |
| Expenses (5000) | ₦40,000.00 | |
| Revenue (4000) | ₦100,000.00 |
Cash DOWN by expenses and UP by revenue: net +₦60,000. Revenue accumulated ₦100,000 (credit). Expenses accumulated ₦40,000 (debit). This single entry stands in for a year of activity.
Closing entry: roll P&L into Retained Earnings
Close the books. Revenue (₦100,000 credit) and Expenses (₦40,000 debit) both reset to zero. Their net (₦60,000 profit) lands in Retained Earnings.
| Account | Debit | Credit |
|---|---|---|
| Revenue (4000) | ₦100,000.00 | |
| Expenses (5000) | ₦40,000.00 | |
| Retained Earnings (3500) | ₦60,000.00 |
To zero out Revenue (currently credit ₦100,000), we DEBIT it ₦100,000. To zero out Expenses (currently debit ₦40,000), we CREDIT them ₦40,000. The remaining ₦60,000 goes to CREDIT Retained Earnings (equity). After this: Revenue = ₦0, Expenses = ₦0, Retained Earnings = ₦60,000, Cash unchanged. New year starts with a clean P&L.
Takeaway
At period end, P&L accounts (revenue, expenses) reset to zero and their net (profit or loss) rolls into Retained Earnings. Balance sheet accounts carry forward. This is why 'lifetime revenue' requires summing across closed periods, not querying the current Revenue account. Engineers building financial reports who skip this distinction ship dashboards that lie after every fiscal close.
Practice this on a real ledger
Reading is half of it. Open this lesson in the lab to post the entries yourself against a real Postgres-backed double-entry ledger, with the validation on. Free, your sandbox is yours.