I suspect your design is really correct.
When you think about data in the real world, it makes no sense to have βpossibleβ transactions (IE, transactions that have not yet occurred and which may not occur, possibly because the client has exceeded his credit limit), mixed with committed and actual transactions.
Combining data into one table can also make reporting difficult, as you need to apply special filtering criteria and store additional metadata, such as TransactionCompleted and TransactionIsFutureCharge.
If I made a proposal, he would rename StandardCharges to something closer to the data he has, like CompletedTransactions , and RecurringTransactions is something like PendingTransactions .
source share