In a previous financial payments related database I'd worked on, it just had one large transactions table. We would insert scheduled transactions for the future, and when that time came, we'd execute them, and update that row to status completed.
I've kept wondering why they didn't have a separate 'completed transactions' table? Is that bad practice?