Take FinSight AI for a spin
This guide walks you through every meaningful screen in the app, gives you a one-click "load realistic data" path if you're a platform admin, and provides hand-pasteable demo data if you'd rather build the picture yourself. Aim: under 15 minutes from sign-in to seeing every feature light up.
1 · Before you start
FinSight AI is a multitenant personal finance dashboard. Each user belongs to one or more "workspaces" (think of a workspace as a household or a freelance practice). All your data — accounts, transactions, budgets, bills, goals, debts — is scoped to whichever workspace you're currently viewing.
What you'll need
- A modern browser (Chrome, Edge, Firefox, Safari — last two major versions)
- 5 minutes for the fast path, or 15 if you want to enter data manually
- (Optional) A second email address if you want to test the family-invite flow
2 · Getting an account
Create your own account to follow this walkthrough. It takes under a minute and nothing you enter is shared.
| URL | https://finsightai.gg/login (or http://localhost:3000/login) |
| Account | Click Create one and register with your own email |
The registration form asks for an email, a password, a workspace name, and your full name. After submitting you land directly on the dashboard.
Note: a freshly registered account does not have platform-admin privileges, so the
one-click "Try with sample data" tile and the /admin pages will not be visible. If you need to
test those, ask the FinSight team for a tester account.
3 · The 30-second tour (platform admin only)
If you signed in with a platform-admin tester account, every empty section of the dashboard shows a Try with sample data card. Click it once and the app fills with a realistic month of activity.
-
Sign in with the tester account you were given.
You land on that account's workspace dashboard.
-
Click "Load sample data" on the empty-state card.
The importer creates 3 accounts, ~35 transactions across the last 30 days, 5 bills, 2 savings goals, 2 debts, and 1 active monthly budget — all tagged with the
Sample ·prefix. -
Watch the dashboard light up.
Cash flow chart, top spending categories, recent transactions, upcoming bills, savings progress, debt overview, and financial health score all populate from the seeded data.
-
Click around.
Try the sidebar entries: Accounts, Transactions, Budgets, Spending, Bills, Savings, Debt, Health Score, AI Insights. Every chart and list now has real data behind it.
-
Run an AI agent.
From AI Insights, click Run agent on any of the six agents (Budget, Spending Pattern, Bill Reminder, Savings Goal, Debt Reduction, Financial Health Score). Without an AI provider key (OpenAI or Anthropic) they still run: the calculations are deterministic and grounded in your real numbers; only the written summary is skipped.
-
Wipe it.
The amber banner at the top of the dashboard has a Remove sample data button. One click deletes every record tagged with the sample batch — your own manually-entered data (if any) is untouched.
4 · Manual walkthrough (any user)
For users without the sample-data button, build the picture by hand. The sections below give you copy-pasteable demo data; this section is just the order to enter it.
-
Onboarding.
Right after registration the app walks you through workspace setup, a short tour, a first account, an initial budget, and a first savings goal. You can Skip any step — they're populated later via the regular UI. Default categories are created for you.
-
Add accounts.
Sidebar → Accounts → New account. Use the table in section 5 to enter four realistic accounts (checking, savings, credit, investment).
-
Add transactions.
Sidebar → Transactions → New transaction. Or use the Import CSV button with a file shaped like the one in section 6. Categories must already exist (the default set is seeded at register time).
-
Set up a budget.
Sidebar → Budgets → Create budget. Add category targets from the table in section 8. Save and the dashboard's "Budget performance" tile starts comparing planned vs actual.
-
Add bills.
Sidebar → Bills. Add the recurring bills from section 7. Each bill spawns occurrences for the next twelve months; due-today and overdue items appear in the dashboard.
-
Add savings goals.
Sidebar → Savings → New goal. Try the two goals in section 9. Each goal shows progress, ETA, and a recommended monthly contribution.
-
Add debts.
Sidebar → Debt → Add debt. Use section 10. After saving, the Payoff projection section compares snowball and avalanche as you change the strategy and the extra monthly payment; Save this plan keeps the one you want.
-
Open the AI Coach.
Floating bubble in the bottom-right of every authed page. Ask anything about your data: "How does my month look so far?", "Which debts should I attack first?", "How am I doing on my savings goals?". It only reasons over the snapshot we ship in the system prompt — it never invents numbers.
-
Run weekly agents.
Sidebar → AI Insights → Run agent on any card. The weekly agents also run on a schedule. The Notifications bell in the top bar lights up when an agent finishes.
-
Invite a family member.
Sidebar → Settings → Members → Invite (owners and admins). Paste a second email you control. Open the invitation email, click the link, sign up with the same email, and accept. The new member appears in the member list with the role you picked.
5 · Demo data · Accounts
Four accounts that together represent a typical household.
| Name | Type | Institution | Opening balance | Notes |
|---|---|---|---|---|
| Everyday Checking | checking | Sunrise Bank | $4,250.00 | Primary spending account |
| High-Yield Savings | savings | Sunrise Bank | $12,800.00 | Emergency fund + buffer |
| Sapphire Credit Card | credit_card | Sunrise Bank | −$847.50 | Current statement balance (debt) |
| 401(k) | investment | Vanguard | $42,300.00 | Long-horizon retirement |
6 · Demo data · Transactions
A representative 4-week slice. Dates are written as "Day X" — replace with actual ISO dates ending today
(e.g. 2026-05-11 = Day 0).
Income
| Date | Account | Description | Category | Amount | Type |
|---|---|---|---|---|---|
| Day −1 | Checking | Acme Corp payroll | Salary | $3,250.00 | income |
| Day −14 | Checking | Acme Corp payroll | Salary | $3,250.00 | income |
| Day −7 | Checking | Freelance project — Bright Studios | Side income | $650.00 | income |
Recurring expenses
| Date | Account | Description | Category | Amount | Type |
|---|---|---|---|---|---|
| Day −22 | Checking | Rent — May | Housing | −$1,400.00 | expense |
| Day −18 | Checking | Electric utility | Utilities | −$84.30 | expense |
| Day −16 | Checking | Internet | Utilities | −$59.00 | expense |
| Day −12 | Checking | Phone (Mint Mobile) | Utilities | −$45.00 | expense |
| Day −10 | Checking | Netflix | Subscriptions | −$15.49 | expense |
| Day −9 | Checking | Spotify Family | Subscriptions | −$17.99 | expense |
| Day −8 | Checking | Gym | Health | −$39.00 | expense |
Variable expenses
| Date | Account | Description | Category | Amount | Type |
|---|---|---|---|---|---|
| Day −25 | Credit Card | Trader Joe's | Groceries | −$72.40 | expense |
| Day −20 | Credit Card | Whole Foods | Groceries | −$118.65 | expense |
| Day −13 | Credit Card | Costco | Groceries | −$96.20 | expense |
| Day −6 | Credit Card | Local Market | Groceries | −$58.10 | expense |
| Day −23 | Credit Card | Shell gas | Transportation | −$47.30 | expense |
| Day −11 | Credit Card | Shell gas | Transportation | −$52.80 | expense |
| Day −19 | Credit Card | Sushi place | Dining | −$64.20 | expense |
| Day −14 | Checking | Coffee shop | Dining | −$5.75 | expense |
| Day −8 | Checking | Lunch with team | Dining | −$28.90 | expense |
| Day −4 | Credit Card | Bistro dinner | Dining | −$112.30 | expense |
| Day −17 | Credit Card | Amazon — paper towels, soap | Household | −$34.65 | expense |
| Day −5 | Credit Card | Amazon — book | Entertainment | −$22.00 | expense |
| Day −3 | Checking | Movie tickets | Entertainment | −$38.50 | expense |
| Day −2 | Checking | Lyft | Transportation | −$14.20 | expense |
Transfer
| Date | Account | Description | Category | Amount | Type |
|---|---|---|---|---|---|
| Day −15 | Checking → Savings | Monthly auto-save | Savings | $400.00 | transfer |
CSV format for bulk import
From Transactions click Import CSV. The importer accepts a header row with any of these
column names (case-insensitive): date, description, amount,
category, type. Example:
date,description,amount,category,type 2026-05-10,Acme Corp payroll,3250.00,Salary,income 2026-04-26,Acme Corp payroll,3250.00,Salary,income 2026-04-19,Rent — May,-1400.00,Housing,expense 2026-04-23,Electric utility,-84.30,Utilities,expense 2026-04-25,Internet,-59.00,Utilities,expense 2026-04-29,Phone,-45.00,Utilities,expense 2026-05-01,Netflix,-15.49,Subscriptions,expense 2026-05-02,Spotify Family,-17.99,Subscriptions,expense 2026-04-16,Trader Joe's,-72.40,Groceries,expense 2026-04-21,Whole Foods,-118.65,Groceries,expense 2026-04-28,Costco,-96.20,Groceries,expense 2026-05-05,Local Market,-58.10,Groceries,expense
7 · Demo data · Bills
Five recurring monthly bills. Set each as recurring=monthly and the day-of-month shown.
| Name | Category | Amount | Recurrence | Day | Reminder |
|---|---|---|---|---|---|
| Rent | Housing | $1,400.00 | monthly | 1st | 3 days before |
| Internet | Utilities | $59.00 | monthly | 5th | 1 day before |
| Phone | Utilities | $45.00 | monthly | 12th | 1 day before |
| Electric | Utilities | $84.00 | monthly | 15th | 2 days before |
| Netflix | Subscriptions | $15.49 | monthly | 20th | 1 day before |
What this triggers: the Bills page shows a 30-day-out calendar, the dashboard surfaces anything due within 7 days, and the Bill Reminder agent emails members on the configured "days before" cadence.
8 · Demo data · Monthly budget
An active monthly budget with eight category lines. Expected income ≈ $6,500.
| Category | Planned | % of income | Notes |
|---|---|---|---|
| Housing | $1,400.00 | 21.5% | Fixed rent |
| Utilities | $250.00 | 3.9% | Internet + phone + electric |
| Groceries | $500.00 | 7.7% | 4 grocery runs/mo |
| Dining | $200.00 | 3.1% | Modest restaurant budget |
| Transportation | $250.00 | 3.9% | Gas + rideshares |
| Subscriptions | $75.00 | 1.2% | Streaming + gym |
| Entertainment | $100.00 | 1.5% | Movies + books |
| Savings (transfer) | $400.00 | 6.2% | Auto-save target |
| Total planned | $3,175.00 | 48.8% | Leaves ~$3,325 for goals/debt |
9 · Demo data · Savings goals
| Goal | Target | Saved | Target date | Monthly contribution |
|---|---|---|---|---|
| Emergency Fund (6 months) | $10,000.00 | $4,500.00 | 2026-12-31 | ~$786/mo to hit target |
| Hawaii Vacation | $3,500.00 | $850.00 | 2026-07-20 | ~$1,325/mo (or push date) |
The Savings Goal agent inspects your real surplus (income − expenses − bills − debt minimums) and either confirms the monthly contributions above are realistic, or proposes a later target date if surplus is tight.
10 · Demo data · Debts
| Debt | Balance | APR | Min payment | Strategy preview |
|---|---|---|---|---|
| Sapphire Credit Card | $847.50 | 19.99% | $25.00 | Snowball will attack this first (smallest balance) |
| Student Loan | $14,300.00 | 5.50% | $185.00 | Avalanche keeps minimums here while focus stays on the higher-APR card |
After saving both debts, the Payoff projection section of the Debt planner runs the snowball and avalanche methods against the supplied balances and APRs and shows months-to-debt-free + total interest paid for the strategy you pick; change the strategy or the extra payment to compare them.
11 · AI features
Six skill-based agents plus a floating chat coach. All ground their answers in your real records.
The six agents
Recomputes the score and surfaces three concrete actions ranked by impact.
Drafts a realistic monthly budget from your actual income, fixed bills, and recent spending patterns.
Tracks upcoming bills, overdue items, and cash-flow pressure on payment days.
Turns goals into achievable contribution plans with milestones.
Compares snowball vs avalanche against your real debts and recommends the next best payment.
Spots category trends, lifestyle creep, and recurring subscription drift.
The Coach (floating chat bubble)
The bubble sits in the bottom-right of every authed page. The model gets a compact JSON snapshot of your real state — balances, this-month vs last-month cash flow, top categories, recent transactions, active budget, goals, debts, upcoming bills, latest health score — and is instructed to never invent numbers. Try:
- "How does my month look so far?"
- "Which category am I overspending in?"
- "If I add $200/month to the credit card, when is it paid off?"
- "Am I on track for my Hawaii goal?"
Without an AI provider key configured (OPENAI_API_KEY or
ANTHROPIC_API_KEY), the agents and coach still run — they just use a deterministic stub that
performs the same calculations on your real data without LLM prose. You'll see "model: stub" in the chat
response.
12 · AppSumo / code redemption walkthrough AppSumo
Three flows: redeem as an existing user, redeem during signup, or mint codes as a seller (admin only).
I have a code — let me in
-
Go to /redeem
From the landing page, click the "I have a code — redeem it" button in the Lifetime Deal section, or visit
/redeemdirectly. -
Paste your code.
Format is 5 groups of 5 alphanumeric characters:
ABCDE-FGHIJ-KLMNO-PQRST-UVWXY. The form normalizes to upper-case automatically. -
If you're signed out → register
The page routes you through
/register?next=/redeem?code=…. After registration the code is reapplied automatically. -
The billing page applies the code.
You're redirected to
/app/<workspace>/billing?redeem=…. The redeem mutation fires once on mount, the toast says "Code redeemed", and your plan badge in the topbar flips to Pro.
I want to test the failure cases
- Already-redeemed code: backend returns 422 with "Code already redeemed".
- Revoked code: backend returns 422 with "This code is no longer valid. Contact support."
- Unknown code: backend returns 404 with "Code not recognized".
I'm a seller — mint codes (platform admin)
13 · Admin console Platform admin
Visible only to users with is_platform_admin=true. Freshly-registered users do not qualify.
What you'll find at /admin
Counts of users, active workspaces, active subscriptions, and total AI runs.
Every workspace, plan key, workspace type, and creation date.
Email, name, email-verified flag, platform-admin flag, created date.
Stripe vs code-based, status, code source + batch, redeemed-at, period end (or "Never" for lifetime).
Mint, import, list, batch view, revoke, restore — full AppSumo seller console.
Runs grouped by skill and by status (completed / needs_review / failed).
Every sensitive admin mutation: redemption mint, revoke, restore, compliance actions.
Simple status endpoint plus version + scheduler state.
Mint AppSumo codes from a CSV
- Sidebar → Redemption codes → "Mint a new batch".
-
Pick the plan (Pro recommended for AppSumo lifetime deals).
Set Source to
appsumo, Batch label to something dated like2026-Q2-launch, tick Lifetime, and click the Upload CSV tab. -
Drop the CSV AppSumo gave you.
Format: a single
codecolumn, one code per row. Up to 5,000 per batch. Codes that already exist in the DB are silently skipped, so re-importing is safe. -
Verify the batch.
The "Batches" section shows total / redeemed / revoked / available counts that update live.
-
Revoke on a chargeback.
Click Revoke next to a specific code, supply a reason (optional, kept in the audit log). Subsequent redemption attempts of that code return 422.
Audit trail: mint, import, revoke, and restore all write an AuditLog row
(action keys: redemption.mint, redemption.import_csv, redemption.revoke,
redemption.restore) with the actor's user id, IP, and full metadata payload.
14 · 2FA, theme, sign-out
Two-factor authentication
- Topbar → email pill → Account settings.
- Click Enable two-factor auth. A QR code appears.
- Scan with any TOTP app (1Password, Authy, Google Authenticator). Enter the 6-digit code to confirm.
-
Sign out and back in. The login form now asks for the 6-digit code after a correct
password. The challenge response carries an error code
two_factor_requiredwhich the frontend detects to show the 2FA input.
Theme switcher
The sun/moon button in the topbar toggles between light and dark themes. The preference is saved in
localStorage under fs.theme and applied via a boot script in the layout
before paint to avoid a flash of the wrong theme.
Signing out
Click the Sign out button in the topbar. Three things happen, in order:
- Local state (auth store, query cache) is cleared immediately.
- A fire-and-forget
POST /auth/logoutruns; the backend revokes the refresh token server-side and clears thefs_refreshhttpOnly cookie. - A hard navigation to
/loginunmounts every authed component.
15 · Route map (where to find what)
/ Marketing landing page (Hero, Pricing, AppSumo deal, FAQ)
/features Detailed feature explanations
/pricing Plan comparison + annual/monthly toggle
/families Audience-specific landing
/freelancers Audience-specific landing
/young-adults Audience-specific landing
/about Founders + mission
/security Security & privacy posture
/contact Contact form
/blog Articles index
/legal/{terms,privacy,cookies,disclaimer}Legal pages
/login Sign in (with Google + 2FA)
/register Create account
/forgot-password Send reset link
/reset-password Apply a reset token
/verify-email Confirm email-verification token
/redeem Public entry point for AppSumo/marketplace codes
/onboarding/* First-run flow: workspace → profile → accounts → budget → goals
/app/<workspace>/dashboard Main dashboard
/app/<workspace>/accounts Accounts list + add
/app/<workspace>/transactions Transactions list, filters, CSV import, CSV export
/app/<workspace>/budgets Budgets list + create/edit + period adjustments
/app/<workspace>/bills Bills + reminders + calendar
/app/<workspace>/goals Savings goals + contribution plans
/app/<workspace>/debts Debts + payoff simulator (snowball vs avalanche)
/app/<workspace>/reports Spending overview, category breakdown
/app/<workspace>/ai-insights Run any of the six agents, view recommendations
/app/<workspace>/notificationsFull notification history
/app/<workspace>/billing Plan, Stripe checkout, customer portal, redeem code
/app/<workspace>/family Members + invitations
/app/<workspace>/settings Profile, 2FA, preferences
/admin Platform admin overview admin
/admin/tenants All workspaces admin
/admin/users All users admin
/admin/subscriptions All subscriptions w/ code metadata admin
/admin/redemption-codes AppSumo seller console admin
/admin/ai-usage AI runs by skill + status admin
/admin/audit-logs All sensitive actions admin
/admin/system-health Liveness + version admin
16 · Troubleshooting
The "Sign in with Google" button is missing or says "not configured"
The frontend env var NEXT_PUBLIC_GOOGLE_CLIENT_ID is unset for this build, so the GIS script
has nothing to talk to. The email/password sign-in still works.
I clicked "Try with sample data" but nothing happened
The tile is gated on me.user.is_platform_admin === true. If you registered fresh, you don't see
the tile at all. Use the seeded admin account, or promote your user via the Render shell:
python -c "
from app.db.session import SessionLocal
from app.models.identity import User
db = SessionLocal()
u = db.query(User).filter(User.email == 'you@example.com').first()
u.is_platform_admin = True
db.commit()
print('promoted', u.email)
"
The dashboard is empty after I added data
Make sure the transaction dates fall inside the current calendar month. Cash-flow and category breakdown widgets use month-to-date by default. Bills only show in the next-30-days range.
Charts say "No data"
Each chart needs at least 2–3 data points to render. Add a few more transactions across different categories and the chart re-renders on the next data refresh (TanStack Query refetches on focus).
"Code redeemed" toast didn't appear after AppSumo redirect
Check the URL — the redirect should include ?redeem=ABCDE-FGHIJ-…. The billing page fires the
redeem mutation exactly once per page load (guarded by a ref), so a hot reload or back/forward navigation
won't retrigger. If the toast was missed, paste the code into the manual redeem input and click Redeem.
The Coach replied with "model: stub" instead of a Claude response
The backend's ANTHROPIC_API_KEY is empty. The stub still computes correct answers from your
data but skips the prose generation step. Set the key on the Render backend and redeploy.
I get rate-limited (429) while testing
The auth endpoints have aggressive per-IP limits (10–30/min depending on the route). If you're scripting
test calls, slow them down or set APP_ENV=test on the backend (which disables the limiter —
use only on a dev/test instance).
How do I correlate a frontend error to backend logs?
Every backend response carries an x-request-id header. Copy that id and grep your Render logs
(finsight-backend → Logs → search). Production logs are JSON with request_id on every
line emitted during that request, including user_id and tenant_id once those
resolve.
FinSight AI · finsightai.gg · Terms · Privacy