Getting Started with Aina
Aina is an offline-first personal finance tracker. Everything runs in your browser — there's no server, no account, and no data ever leaves your device. Your data is only stored in your browser.
When you open Aina for the first time you'll see the onboarding screen with three options:
Upload Existing Database
Drag and drop or browse for your .sqlite or encrypted .aina file to restore a previous backup.
Restore from Google Drive
Connect your Google account and pick from existing Drive backups.
Start Fresh
Creates a new empty database pre-loaded with default categories. Good for first-time users.
Avoid private or incognito mode
Browsers wipe IndexedDB storage when a private window is closed, which will permanently erase all your data. Always use a regular browser window.
Importing Statements
Aina can ingest credit card and bank statements — PDFs or CSVs — and automatically categorize each transaction. There are two categorization engines to choose from.
Claude AI Mode
Uses Anthropic's Claude model to read and categorize transactions with high accuracy. Understands merchant names, abbreviations, and uses your existing category taxonomy.
- Supports PDF & CSV files
- Requires a Claude API key
- Requires internet connection
Local AI
A classifier that runs entirely in the browser. Trains on your own transaction history and improves over time.
- CSV files only
- 100% offline, no API key
- Improves with more data
- Does not require an internet connection
Best for first-time imports or whenever you want maximum accuracy. Claude reads the raw statement text and maps each line to your category taxonomy.
Add your Claude API key
Go to Settings → Claude AI and paste your API key (starts with sk-ant-). You only need to do this once — the key is saved on your device.
Open the Import modal
Navigate to Power Ledger and click the Import button in the top-right. The import panel will slide in from the right.
Select Claude mode
At the top of the import panel, choose Claude. If your API key is configured, the status indicator will show green.
Enter card details
Fill in your card or account name (e.g. Chase Sapphire) and optionally the last 4 digits. These are saved with each transaction so you can filter by card later.
Upload your statement
Drag and drop a .pdf or .csv file onto the upload area, or click to browse. Max file size is 20 MB. Claude mode accepts both PDF and CSV.
Click Extract & Categorize
Aina sends the statement text to Claude. You'll see a progress indicator while each transaction is categorized. For a 50-transaction statement this typically takes 10–20 seconds.
Review and confirm
A table appears showing all extracted transactions with predicted categories. Check for any errors, edit inline if needed (see Reviewing & Editing), then click Import X transactions.
A classifier that trains on your own transaction history. No API key needed, no internet connection required. Accuracy improves each time you retrain after correcting categorizations.
Open the Import modal
Navigate to Power Ledger and click Import.
Select Local mode
Choose Local at the top of the import panel. If the model has never been trained, the status badge will show Not trained.
Train the model (first time only)
Click Retrain. The classifier reads all your existing categorized transactions and builds a model in the browser. This takes a few seconds and only needs to be done once (or after significant new data).
Upload a CSV statement
Drag and drop a .csv file. Local mode supports CSV only (no PDFs). Aina auto-detects column names from common bank/card export formats (Chase, Amex, BofA, Citi).
Review and import
The model predicts a category for each transaction. Review the results, fix any wrong predictions, then click Import X transactions.
After extraction you'll see a review table. You can edit any row before confirming the import.
| Action | How |
|---|---|
| Edit a cell | Click directly on the merchant, category, subcategory, or description cell and type your change. |
| Change transaction type | Use the Type dropdown on each row (Expense / Refund / Payment / Deposit). |
| Exclude a row | Uncheck the checkbox on the left of the row. Unchecked rows are skipped during import. |
| Bulk edit | Use the Bulk Edit toolbar above the table to set Merchant, Category, Subcategory, or Type on all selected rows at once. |
| Filter the review table | Type in the filter box to narrow down rows by merchant or description while reviewing. |
Adding an Asset
The Asset Manager tracks your investment accounts, retirement funds, property, and other holdings. Each asset has a running valuation history so you can see your net worth over time.
Open the Assets page
Click Assets in the sidebar.
Click "Add Asset"
The button is in the top-right of the page. A form panel will appear.
Fill in the asset details
See the field reference below for what each field means.
Click Save
The asset card appears on the Assets page. You can now add valuations to it.
| Field | Description |
|---|---|
| Name required | Human-readable name, e.g. "Fidelity 401k" or "Primary Residence". |
| Institution optional | The financial institution or brokerage holding the asset. |
| Asset Class required | Equity, Bond, Cash, Real Estate, or Other. Used for allocation charts. |
| Tax Category required | Taxable, Traditional IRA, 401k, Roth, HSA, or Other. Determines tax treatment in reporting. |
| Is Liquid | Toggle on if this asset can be quickly converted to cash (e.g. savings, money market). Off for property, RSUs with vesting cliffs, etc. |
| Primary Beneficiary optional | Name of the primary beneficiary on file for this account. |
| Secondary Beneficiary optional | Name of the secondary beneficiary. |
Valuations are point-in-time snapshots of an asset's worth. Each valuation you log adds a data point to the asset's trend chart. You can you update valuations of multiple assets at once
Find the asset card
On the Assets page, locate the asset you want to update.
Click "Log Valuation"
The button appears on the asset card. A valuation form panel will open.
Enter the valuation data
At minimum, enter the Date and Total Vested Value. For equity grants, you can also fill in unit price and vested/unvested unit counts.
Save
The asset card updates immediately with the new value. The trend chart gains a new data point.
| Field | Description |
|---|---|
| Valuation Date required | The date this value applies to. Usually today or the statement close date. |
| Total Vested Value required | The current market value of all vested holdings. For cash accounts, just the account balance. |
| Unit Price optional | Price per share/unit. For stock grants, RSUs, or ETFs. |
| Vested Units optional | Number of vested shares or units held. |
| Unvested Units optional | Number of units not yet vested (stock options, RSUs still in cliff). |
| Unvested Value optional | Market value of the unvested portion (unvested units × unit price). |
| Notes optional | Any context for this snapshot, e.g. "Q1 grant vest" or "rebalanced portfolio". |
Budgets
Set spending limits for any category or subcategory. The Budgets page shows a progress bar for the current period and flags over-budget categories.
Go to Budgets
Click Budgets in the sidebar.
Click "Add Budget"
A form panel opens.
Choose the category
Select the Category (required). Optionally pick a Subcategory for a more granular budget — for example a Food & Dining / Restaurants budget separate from Food & Dining / Groceries.
Set the amount and period
Enter the budget amount. Choose a period: Monthly, Weekly, Yearly, or Custom (which unlocks start/end date pickers).
Save
The budget card appears on the Budgets page with a real-time progress bar comparing your actual spending to the limit.
Categories & Subcategories
Categories are the labels attached to every transaction. They drive the Dashboard charts, budgets, and the classifier's predictions. Aina ships with a default set; you can add, rename, or deactivate any of them.
Go to Categories
Click Categories in the sidebar.
Choose the tab
The page has two tabs: Categories (top-level) and Subcategories (nested labels). Use the tab toggle at the top to switch.
Add a new category
Click the + Add button in the top-right. A new row appears in the table — type the name and optionally set a Reporting Group, then press Enter or click away to save.
Inline-edit an existing category
Click on any name or reporting group cell to edit it in place. Changes are saved instantly.
Toggle active / inactive
Use the toggle switch on each row to mark a category inactive. Inactive categories are hidden from import dropdowns and the Dashboard but their historical transactions are preserved.
Liabilities
Track loans, mortgages, credit card balances, and any other debts. The Liabilities page shows your total outstanding debt, estimated payoff timelines, and total interest projections.
Go to Liabilities
Click Liabilities in the sidebar.
Click "Add Liability"
A form panel opens.
Fill in the liability details
See the field reference below.
Save
The liability card appears with a payoff progress bar and amortization summary.
Log payments over time
Click Log Payment on the card to record a payment. Enter the date, total payment amount, and optionally the principal/interest split. The outstanding balance updates automatically.
| Field | Description |
|---|---|
| Name required | E.g. "Home Mortgage", "Tesla Loan", "Chase Freedom Balance". |
| Type required | Mortgage, Car Loan, Student Loan, Credit Card, Personal Loan, or Other. |
| Outstanding Balance required | Current remaining balance on the debt. |
| Interest Rate optional | Annual interest rate as a percentage (e.g. 6.5 for 6.5%). Used for payoff projections. |
| Minimum Payment optional | The minimum monthly payment. Used to project payoff timeline. |
| Maturity Date optional | The expected payoff or maturity date of the loan. |
| Institution optional | Lender name, e.g. "Wells Fargo", "Navient". |
Backup & Restore
Your entire database is a single file. Back it up regularly — it contains every transaction, asset, and budget you've added.
Go to Settings → Data Management → Backup Database and click Export. This downloads a timestamped .sqlite file you can store anywhere.
Toggle Encrypt export before clicking Export to download an AES-256-encrypted .aina file protected by a passphrase of your choice.
To restore, go to the onboarding screen (reset the app, or open in a new browser profile) and drag your .sqlite or .aina file onto the upload area. For encrypted .aina files, you'll be prompted for your passphrase.
.aina encrypted backup, the data cannot be recovered. There is no password reset.Aina can automatically back up your encrypted database to a Google Drive folder called Aina Backups. Backups are AES-256-GCM encrypted before upload — Google never sees your raw data.
Go to Settings → Google Drive
Click Connect Google Drive and sign in with your Google account.
Click "Backup Now"
You'll be prompted for a passphrase to encrypt the backup. The file is uploaded to Drive as aina-backup-[timestamp].aina.
Restoring from Drive
On the onboarding screen, click Connect under Google Drive Sync, sign in, and choose a backup from the list. Enter your passphrase when prompted.