If you have an Excel sheet (or CSV) with your spending history — the legacy of years of manual tracking — the only way to bring it into FamSpend is via AI Helper.
There's no classic import form in the app. No "upload file → map columns → confirm". The app doesn't have one — and you don't need it: the AI Helper does the work for you, without you having to tell it which column is what.
The flow, in three steps
- Open the Helper in ChatGPT (link in the button above)
- Attach the Excel/CSV file to the message (drag-and-drop or attach button) and write "Import these expenses" (or nothing — the Helper gets it from context)
- Confirm in a structured card
The Helper:
- Reads the file
- Figures out the column matches between your sheet and FamSpend fields (title, amount, due date, Cost Center, person)
- Shows a summary before saving ("found 187 expenses, grouping them — 12 in Home, 8 in Car, 167 unassigned. OK?")
- Saves only after you say OK
Why there's no manual importer
Three reasons:
- Column matching is the friction point. Half of imports fail or are painful because "Description" goes to Title, "Category" to Center, "Invoice date" to Due date — and every sheet is different. The AI Helper handles that on the fly.
- Expenses aren't bank transactions. A classic CSV import puts everything in a flat category. FamSpend has Cost Centers, to-be-determined amounts, recurring expenses, and requires decisions a mechanical parser can't make.
- The Helper is already here. Adding a second importer path would be duplicate complexity without benefit.
What works best in the sheet
The Helper accepts files with any structure, but a few hints help:
- One row = one expense. No merged cells, no partial subtotals in the middle
- Clear headers in the first row (e.g. "Description", "Amount", "Date", "Category"). The Helper recognizes them in EN and IT
- One currency only — if you mix €/£/$, split into separate sheets
- Dates in a consistent format (preferably
DD/MM/YYYYorYYYY-MM-DD). Mixed formats confuse it
Cost Centers: the Helper picks and you confirm
If your sheet has a "Category" column with values like "Home", "Car", "Groceries", the Helper:
- Maps to existing Centers — if you already have a "Home" Center, those rows go there
- Proposes creating new ones — if it finds "Vacation 2025" and you don't have a matching Center, it asks "shall I create a 'Vacation 2025' Center?"
You always have the final say before saving.
How big is the sheet?
The practical limit is how much ChatGPT can process in a conversation without saturating context. Roughly up to ~500 rows in a single upload works well. For larger files, split into multiple uploads (e.g. one per year, one per Center).
What happens after
Imported expenses enter FamSpend with:
- Status = pending (by default — not paid). You mark them as paid afterward from the list
- People = You (all, default). You reassign if shared
- Notes = skipped (unstructured free-form field)
For recurring / repeating expenses: see Recurring expenses. The Helper doesn't auto-convert 12 identical rows into a recurring series — it imports them as 12 separate expenses. The conversion is manual after.
Re-importing the same file = duplicates
Watch out: the Helper doesn't de-duplicate. Re-importing the same file creates duplicate expenses. Delete duplicates manually if it happens (see Modifying or deleting an expense).
Uploaded file privacy
The Excel/CSV file is read by ChatGPT (OpenAI server) to extract structured data. Once processed, the original file isn't stored in FamSpend — only the structured expenses remain in your workspace.
For full privacy details on the Helper flow: Importing a bill or bank statement via AI Helper