How to migrate your financial history from Mint to Karchu
A step by step guide to exporting your Mint transaction history, cleaning the CSV, and importing years of financial history into Karchu without auto-sync.
Mint shut its doors and left a lot of people holding years of categorized transactions with nowhere obvious to put them. This guide walks through the whole migration: getting your history out of Mint (or out of the Credit Karma export that replaced it), cleaning the file so the columns line up, importing it into Karchu, and rebuilding your categories so the numbers still mean what they used to mean.
The important difference up front: Karchu does not connect to your bank. You upload statements or CSV files and Karchu parses and categorizes them. That is a deliberate trade. You give up automatic nightly sync and you get a workflow where no third party holds your banking credentials, nothing breaks when a bank changes its login flow, and your data stays in one account you control.
Step 1: export your history out of Mint
If you still have access to an export, take the transactions CSV rather than the trends or budget reports. The transactions file is the only one that carries per-row detail, and per-row detail is what any new tool can actually rebuild from. A typical Mint export has these columns: Date, Description, Original Description, Amount, Transaction Type, Category, Account Name, Labels, Notes.
If your export came through Credit Karma instead, the column names differ slightly but the shape is the same. What matters is that you have a date, a description, an amount, and ideally the old category. Everything else is optional.
Export everything, not just the last year. Storage is cheap and a multi-year history is what makes year-over-year comparison possible later. If the export tool caps a date range, run it once per year and keep the files separate; you can upload them one at a time.
Step 2: understand the amount column before you import
This is where most migrations go wrong. Mint splits direction into a separate Transaction Type column (debit or credit) and keeps the Amount column positive. Most other tools, Karchu included, expect a signed amount where money out is negative and money in is positive.
You have two options. Either convert the column yourself in a spreadsheet (multiply the amount by -1 wherever Transaction Type is debit) or upload as is and use the direction mapping during import. Doing it in the spreadsheet is a one-off five minute job and it makes every later import easier to reason about, so that is what we usually recommend.
Check a handful of rows after converting. Your largest expense should be a large negative number and your paycheck should be positive. If they are the wrong way round, you flipped the wrong side of the condition.
Step 3: split by account
A Mint export mixes every account into one file. That is fine for a spreadsheet and confusing for a ledger, because a transfer from checking to savings appears twice: once as money out and once as money in. If you import that file as a single stream, your total spending will be inflated by every internal transfer you have ever made.
Sort by Account Name and save one file per account. It takes a few minutes and it means your per-account balances, your transfer detection, and your category totals all behave. Karchu treats each uploaded file as belonging to one account, and internal transfers between two accounts you have both uploaded can then be matched and excluded from spending.
Step 4: import into Karchu
Create an account, open the upload screen, and drop in the first CSV. Karchu reads the header row, guesses which column is the date, the description, and the amount, and shows you a preview before anything is saved. Correct any column that guessed wrong. Date format is the other common snag: if your export uses a day-first format, set it explicitly rather than letting a heuristic decide, or the 3rd of April will quietly become the 4th of March.
Import one file, check the preview, then continue with the rest. Once the mapping is right for the first file from a given bank, later files from that same bank use the same layout, so subsequent imports are a drag and drop.
Step 5: rebuild your categories as rules
If your export kept the Category column, you already have a labeled history: years of you telling Mint what each merchant is. That is genuinely valuable. Rather than accepting those labels as one-off values, turn the recurring ones into rules. A rule says "any description containing WHOLEFDS is Groceries", and it applies to the imported history and to every future statement automatically.
The practical approach is to sort your imported transactions by merchant frequency and write rules for the top 30 or so. In most personal accounts that covers well over half of all rows. Karchu also suggests categories for merchants it recognizes, so a lot of the long tail is handled without you writing anything. The difference from an AI-only tool is that every assignment traces back to a rule you can read, edit, and rerun, so your categories stay consistent month after month instead of drifting with a model version.
Do not try to recreate Mint's full category tree. Most people used maybe fifteen categories in earnest and left the rest empty. Start with the ones you actually looked at in a report and add more only when a report leaves you asking a question you cannot answer.
Step 6: check the totals against something you trust
Pick one closed month, ideally a boring one, and compare three numbers to your bank statement for that month: total money in, total money out, and closing balance. If all three match, your mapping and your signs are right and you can trust the rest of the import. If money out is too high, you almost certainly still have internal transfers counted as spending. If it is too low, a file did not import fully or a date range was clipped.
This reconciliation step takes ten minutes and it is the difference between a migration you trust and a dashboard you quietly stop opening.
What changes day to day without auto-sync
With Mint, data arrived on its own and you reviewed it whenever you remembered. With Karchu, you download a statement (most banks offer CSV, Excel, or PDF) and upload it. In practice that is one five minute session per account per month, usually right after your statement closes.
A few things get better in exchange. Nothing breaks when your bank changes its authentication, which was the single most common reason Mint connections went stale. No aggregator holds credentials to your bank. Statement data is the bank's own record rather than a screen-scraped approximation, so the balances always reconcile. And a monthly review with your own eyes on it tends to catch things a passive feed never does.
If you want the cadence tighter, most banks let you export mid-cycle activity too. Weekly uploads work fine and duplicate rows across overlapping ranges are detected rather than double counted.
What Karchu does that Mint did not
PDF statements parse directly, so accounts that only offer PDF are not a dead end. Receipts can be attached to transactions with OCR pulling the total and merchant. Categorized data exports to QBO, OFX, QIF, CSV, and Excel, so a bookkeeper or accountant can take it straight into their tool. And it is built for business use as much as personal, so if you have a side business the same account handles both without you juggling two products.
Common migration problems
Dates all landing in the same month usually means a day-first file was read as month-first. Re-import that file with the date format set explicitly. Duplicated rows usually mean two exports with overlapping date ranges; delete the second import rather than trying to prune rows by hand. Categories that look scrambled after a rule change usually mean two rules match the same merchant, so tighten the more general one. And a balance that is off by exactly one transaction is nearly always a pending item that settled on a different date.
A realistic timeline
For a personal setup with three or four accounts and a few years of history: about an hour for the export and cleanup, twenty minutes for the imports, an hour to write your first batch of rules, and ten minutes to reconcile one month. After that the ongoing cost is a few minutes a month. Most of the value shows up in the second month, when you have two comparable periods and the categories start telling you something.