Data AI

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

1

Drop in the export, or a year of them at once

2

Ask what you would ask someone who had read every row

3

Get totals, groups, and the rows behind them

Frequently asked questions

Most of them are not. A plain text chat log, a TSV, a spreadsheet an app produced instead of a CSV: upload it as it came. A multi-sheet workbook with formulas running through it is a different job, and it wants asking about its sheets rather than flattening into rows.

For a proper CSV, counting and totalling are computed across every row, so the row count is rarely the thing that bites. A chat log read as text is the exception, since it goes through about two thousand lines at a pass. Either way, asking for hundreds of matching rows back belongs in a file rather than a message, so ask for those as a CSV.

Here is the whole picture. Other users cannot reach it. Outside model providers do process it, because that is what produces the answer, and our team can see a conversation in limited cases like a bug or a support request you raised. Archiving the conversation hides it rather than deletes it, and the upload goes when you close the account, thirty days after. Uploads from August 2, 2026 onward train our systems unless you opt out through [email protected]. Deleting the account number column in a text editor first costs a minute and changes no answer.

It finds the lines that recur on an interval, totals them, and points out the ones that changed price or stopped. What it cannot do is know that a merchant string you do not recognise is the gym: that part is yours.

Yes, and it arrives as a rendered graphic rather than as something built into a spreadsheet. Worth knowing that a statement usually answers better as a ranked list than as a picture: twelve merchants with totals next to them is a chart nobody needed.

No. Ask in the words you would use out loud. If you want to see how a number was arrived at, ask for the working and you get it.

Keep reading

Related tools

Your next video is one conversation away.

Free account with credits included. No credit card, no learning curve.