graph TD Start((Start Script)) -->|Pull Transactions and Balances| PullData["Pull Transactions and Balances"] PullData --> CheckCadence["Check Refresh Cadence"] CheckCadence -->|Budget Reset Date Reached| CreateBatch["Create New Budget Batch"] CheckCadence -->|No Action Required| AutoAssociate["Automatically Associate Transactions"] CreateBatch -->|Insert New Batch into DB| UpdateDB["Update Database with New Batch"] UpdateDB -->|Associate Transactions with Batches| AutoAssociate AutoAssociate --> End((End Script)) AutoAssociate -->|Optional User Review| UserIntervention["Allow User to Review Associations"] UserIntervention -->|Set Verified Status| VerifyTransaction["User Sets Verified Status"] VerifyTransaction --> End((End Script)) %% Descriptions Start((Start Script)) PullData["Fetch transaction and balance data"] CheckCadence["Evaluate if today is the reset date for budget batch"] CreateBatch["If condition met, create a new budget batch"] UpdateDB["Insert the newly created batch into the database"] AutoAssociate["Automatically associate transactions with budget batches using predefined rules"] UserIntervention["Provide the user with the ability to review and modify associations optionally after automation"] VerifyTransaction["User must set the 'verified' status of each transaction"] End((End Script))