When you upload a credit card statement, refunds and credits are pulled into a separate Credits & Refunds tab — they're never added as new expenses. A credit is money the merchant put back on your card (a refund, return, chargeback, or billing correction), and ExpenseBot detects these automatically.
For each genuine merchant refund (e.g. "DELTA AIR LINES refund $312") you can record the credit or dismiss it. When ExpenseBot can verify that the same refund is already represented by an exact offset row, it keeps that row's receipt identity with the decision instead of adding another credit. It does not use a similar merchant name by itself as proof that two rows are related. Internal card payments — autopay and statement payments — are filtered out automatically and never shown.
Duplicates are handled too: if the same charge appears in two monthly statements (a Dec 31 charge that posts in both December and January), ExpenseBot matches on merchant name + amount + date within ±1 day and suppresses the duplicate, so it isn't counted twice.
The Credits & Refunds history is retained for a limited period. Your main Expenses sheet remains the durable record: recorded credits are negative expense rows and are never treated as Income.
Reports calculate net spend from those signed rows. A full or partial credit reduces the matching category, tag, and report total when both the purchase and credit are in the report's scope. In Review expenses, Link to purchase adds the explanation and supporting report reference; it does not change either amount.
