Make Sense of a CSV Export
You hit export because the app's own screens would not answer the question. Now you have the file, and it is four thousand rows of date, description, amount, which answers nothing either.
Try asking
Finding the charges that repeat
Upload the export and ask the thing you exported it to answer. "Which of these repeat every month?" "What did I spend at anything that looks like a coffee shop?" "Is there anything here I am paying for twice?"
Repeats are worth doing first, because a monthly statement hides them by design. A nine-a-month charge disappears into a page of transactions. The same line is a hundred and eight a year, and that is the number that decides whether you keep it. What comes back is the merchant line as your bank wrote it, how often it lands, the amount, and the total across however many months you handed over.
The ceiling on all of this is the file. It knows what the row says and nothing else, because nothing is connected to your bank: a line reading SQ *TST 4471 groups perfectly with the other eleven of itself and still cannot tell you which shop that was. If it labels something as groceries, that is a reading of the description text rather than a fact. Some card exports carry a category column of their own, and that one is the bank's opinion, which is a different thing and worth asking it to use instead.
Your WhatsApp export is not a table
Message apps do not hand you a spreadsheet. What comes out is a plain text file with one timestamped line per message, and you can upload it exactly as it arrives, .txt and all. It gets read as text rather than as rows and columns, which changes what you ask for rather than whether you can ask.
There is no column called sender to group by, so say what you want counted: messages each way, messages per month, who opens more conversations, the longest silence, how the split shifted after March. One trap sits in the format itself. A long message wraps onto extra lines that carry no timestamp, so lines and messages are different numbers, and only one of them is the one you meant. Say messages.
Twelve exports, one message
Statements come one month at a time, which is why the interesting questions get dropped: nobody wants to run the same lookup twelve times and add up the answers by hand. Attach the whole year to one message instead and ask the question once, over the set. Ask for them to be read in date order and say they are consecutive months, and "when did this start" gets an actual date instead of a shrug.
A total over a proper table is arrived at by adding the column up rather than by reading part of the file and estimating, so with a real CSV the row count is rarely what limits you. A chat log is the exception, because it goes in as text, and text is worked through about two thousand lines at a pass. A year of messages runs well past that, so say what you want counted and the counting happens across the passes rather than off the top of the file. Asking for rows back has a ceiling either way. A filter matching two thousand transactions is a file, not a chat message, so ask for that one as a CSV and open it where you normally would.
Who sees the export
It goes to your account and stays in the conversation you attached it to, where other people using the product cannot reach it. Two things do reach past that, and both are worth knowing before a bank statement goes up. Your file and your question go out to the model providers that produce the answer, passed along by the service that routes between them. And our own systems, plus in limited cases a person here, may look at a conversation to chase a bug, keep the service safe, or answer a support request you raised, with the findings kept as counts and categories rather than copies of anything you sent.
Archiving is not deleting, either. Clearing a conversation out of your list leaves the upload where it is: the file goes when you close the account, which removes everything thirty days later. The working copies made while the numbers are crunched are swept after seven days.
Then the training question. Content sent from August 2, 2026 onward is used to train our systems unless you say otherwise. Writing to [email protected] starts the opt-out and they will tell you what it involves. There is also a way around all of it that costs a minute: the columns that identify you are rarely the columns you are asking about, so open the export in a text editor and delete the account number before you upload. None of the answers you came for change.
How it works
Drop in the export, or a year of them at once
Ask what you would ask someone who had read every row
Get totals, groups, and the rows behind them