Took me longer than I'd like to admit to get this right. For years I basically watched the account, and a good month always felt great until the tax bill or a boiler showed up.
What fixed it for me was simple. One separate bank account per property, and every month I move a set amount out of rent into a reserve before I count anything as profit. I use roughly 10% for repairs and another 5 to 10% for capex depending on how old the roof and mechanicals are. Taxes and insurance get counted monthly even if they're paid twice a year.
So on a house renting for 2,500, if the mortgage, taxes and insurance are 1,800, it looks like 700 a month. After 250 for repairs and 200 for capex, the real number is closer to 250. That's what I write down as what it made, and when the big repair comes the money's already sitting there instead of coming out of my pocket.
William, the balance lies in predictable ways when you run rentals.
At 236 doors, heavy Section 8, one house can show a healthy deposit that is actually two payers — the housing authority portion and the tenant portion — plus a partial payment mid-month. The balance looks fine while that house is quietly six weeks behind on its tenant portion.
So we run a per-property ledger and reconcile the day money lands: date, amount, method, and the running balance owed on that house. No waiting for month-end.
The number that matters is collected rent against scheduled rent, with vacancy days counted separately. The bank balance is a snapshot. The ledger is the truth.