* Entities ** payment schedule (name occurence amount) ** payment (payment-schedule date ) ** transaction (amount date) * Use cases ** Set income dates Store dates for periods calculations ** Add payment Set name, schedule (due date), amount. System calculates required per-period payments to get the amount till due date. ** Transfer money to Update balance, top up all pending payments based on their calculated per-period payments ** When payment is soon Alert user about the payment, decrease balance (transfer money from) and start saving for next payment instance based on schedule. ** List payments Show pending payments with up-to-date savings and total balance. ** Delete pending payment Show saved amount for this payment to remove from saving account. Income period requirements descreased. * Example Now it's 17th of April. I set up salary schedule on 5th and 20th of each month. Then add new recurring payment on 16th of April each year for 9000rub. This means we have 24 periods to save 9000rub, meaning that we have to save 375rub per salary.