Index: app/main.py
===================================================================
--- app/main.py	(revision 7fcd9348d9a097b860548d7a041ef6838ace3c75)
+++ app/main.py	(revision fbcfd47b6e47720eaf0fef24e90522741637cc6f)
@@ -975,3 +975,65 @@
     ]
 
-
+@app.get("/reports/exceeding-total-balances", response_model=List[dict])
+def get_exceeding_total_balances(
+    user: User = Depends(get_current_user),
+    db: Session = Depends(get_db)
+):
+    """
+    Retrieve a chronological list of transactions that exceed the calculated total balances for all accounts.
+    - Admins can view for all users.
+    - Regular users can view for their own accounts.
+    """
+    # Subquery to calculate the running balance using a window function
+    subquery = (
+        db.query(
+            User.user_id.label("user_id"),
+            User.user_name.label("user_name"),
+            Transaction.transaction_id.label("transaction_id"),
+            Transaction.transaction_name.label("transaction_name"),
+            Transaction.date.label("transaction_date"),
+            TransactionBreakdown.spent_amount.label("transaction_amount"),
+            func.sum(TransactionBreakdown.earned_amount - TransactionBreakdown.spent_amount)
+            .over(partition_by=User.user_id, order_by=Transaction.date)
+            .label("calculated_total_balance")
+        )
+        .join(TransactionAccount, TransactionAccount.user_id == User.user_id)
+        .join(TransactionBreakdown, TransactionBreakdown.transaction_account_id == TransactionAccount.transaction_account_id)
+        .join(Transaction, Transaction.transaction_id == TransactionBreakdown.transaction_id)
+        .filter(TransactionBreakdown.spent_amount > 0)  # Only positive transactions
+        .subquery()
+    )
+
+    # Outer query to filter transactions exceeding the calculated balance
+    query = db.query(
+        subquery.c.user_id,
+        subquery.c.user_name,
+        subquery.c.transaction_id,
+        subquery.c.transaction_name,
+        subquery.c.transaction_date,
+        subquery.c.transaction_amount,
+        subquery.c.calculated_total_balance
+    ).filter(
+        subquery.c.transaction_amount > subquery.c.calculated_total_balance  # Exceeds the total balance
+    )
+
+    # Apply user-specific filtering for non-admin users
+    if not is_admin(user.email):
+        query = query.filter(subquery.c.user_id == user.user_id)
+
+    # Execute the query and return results
+    results = query.order_by(subquery.c.user_id, subquery.c.transaction_date.desc()).all()
+
+    return [
+        {
+            "user_id": row.user_id,
+            "user_name": row.user_name,
+            "transaction_id": row.transaction_id,
+            "transaction_name": row.transaction_name,
+            "transaction_date": row.transaction_date,
+            "transaction_amount": float(row.transaction_amount),
+            "calculated_total_balance": float(row.calculated_total_balance),
+        }
+        for row in results
+    ]
+
Index: cli/cli_app.py
===================================================================
--- cli/cli_app.py	(revision 7fcd9348d9a097b860548d7a041ef6838ace3c75)
+++ cli/cli_app.py	(revision fbcfd47b6e47720eaf0fef24e90522741637cc6f)
@@ -415,4 +415,5 @@
         print("4. View Transactions Exceeding Account Balance")
         print("5. View Transactions Exceeding Account Balance Currently")
+        print("6. View Chronological List of Transactions Exceeding Total Account Balances")
         choice = input("Choose a report option: ")
 
@@ -427,4 +428,6 @@
         elif choice == "5":
             get_exceeding_current_balance()
+        elif choice == "6":
+            get_exceeding_total_balances()
         elif choice == "0":
             break
@@ -572,4 +575,33 @@
         print(f"Request failed: {e}")
 
+def get_exceeding_total_balances():
+    headers = {"Authorization": f"Bearer {access_token}"}
+
+    print("\nChronological List of Transactions Exceeding Total Account Balances")
+    try:
+        response = requests.get(f"{BASE_URL}/reports/exceeding-total-balances", headers=headers)
+
+        if response.status_code == 200:
+            records = response.json()
+            if not records:
+                print("No transactions exceeding total balances found.")
+            else:
+                print("\nTransactions Exceeding Total Balances:")
+                for record in records:
+                    print("-" * 50)
+                    print(f"User ID: {record['user_id']}")
+                    print(f"User Name: {record['user_name']}")
+                    print(f"Transaction ID: {record['transaction_id']}")
+                    print(f"Transaction Name: {record['transaction_name']}")
+                    print(f"Transaction Amount: {record['transaction_amount']:,.2f}")
+                    print(f"Transaction Date: {record['transaction_date']}")
+                    print(f"Calculated Total Balance: {record['calculated_total_balance']:,.2f}")
+                    print("-" * 50)
+        else:
+            print("Failed to fetch the report.")
+            error_message = response.json().get("detail", "Unknown error")
+            print(f"Error: {error_message}")
+    except requests.exceptions.RequestException as e:
+        print(f"Request failed: {e}")
 
 if __name__ == "__main__":
