★ Tester walkthrough

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.

16 sections ~12 minutes No real money required

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
Heads-up: nothing in this app moves real money. There's no bank linking; everything you type stays in your workspace. Sample data is tagged so you can wipe it in one click.

2 · Getting an account

Create your own account to follow this walkthrough. It takes under a minute and nothing you enter is shared.

URLhttps://finsightai.gg/login (or http://localhost:3000/login)
AccountClick 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.

  1. Sign in with the tester account you were given.

    You land on that account's workspace dashboard.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  1. 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.

  2. Add accounts.

    Sidebar → Accounts → New account. Use the table in section 5 to enter four realistic accounts (checking, savings, credit, investment).

  3. 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).

  4. 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.

  5. 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.

  6. Add savings goals.

    Sidebar → Savings → New goal. Try the two goals in section 9. Each goal shows progress, ETA, and a recommended monthly contribution.

  7. 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.

  8. 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.

  9. 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.

  10. 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 CheckingcheckingSunrise Bank $4,250.00Primary spending account
High-Yield SavingssavingsSunrise Bank $12,800.00Emergency fund + buffer
Sapphire Credit Cardcredit_cardSunrise Bank −$847.50Current statement balance (debt)
401(k)investmentVanguard $42,300.00Long-horizon retirement
Tip: the credit-card balance should be entered as a negative opening balance — that's how the app distinguishes "money I have" from "money I owe."

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

DateAccountDescriptionCategory AmountType
Day −1CheckingAcme Corp payrollSalary$3,250.00income
Day −14CheckingAcme Corp payrollSalary$3,250.00income
Day −7CheckingFreelance project — Bright StudiosSide income$650.00income

Recurring expenses

DateAccountDescriptionCategory AmountType
Day −22CheckingRent — MayHousing−$1,400.00expense
Day −18CheckingElectric utilityUtilities−$84.30expense
Day −16CheckingInternetUtilities−$59.00expense
Day −12CheckingPhone (Mint Mobile)Utilities−$45.00expense
Day −10CheckingNetflixSubscriptions−$15.49expense
Day −9CheckingSpotify FamilySubscriptions−$17.99expense
Day −8CheckingGymHealth−$39.00expense

Variable expenses

DateAccountDescriptionCategory AmountType
Day −25Credit CardTrader Joe'sGroceries−$72.40expense
Day −20Credit CardWhole FoodsGroceries−$118.65expense
Day −13Credit CardCostcoGroceries−$96.20expense
Day −6Credit CardLocal MarketGroceries−$58.10expense
Day −23Credit CardShell gasTransportation−$47.30expense
Day −11Credit CardShell gasTransportation−$52.80expense
Day −19Credit CardSushi placeDining−$64.20expense
Day −14CheckingCoffee shopDining−$5.75expense
Day −8CheckingLunch with teamDining−$28.90expense
Day −4Credit CardBistro dinnerDining−$112.30expense
Day −17Credit CardAmazon — paper towels, soapHousehold−$34.65expense
Day −5Credit CardAmazon — bookEntertainment−$22.00expense
Day −3CheckingMovie ticketsEntertainment−$38.50expense
Day −2CheckingLyftTransportation−$14.20expense

Transfer

DateAccountDescriptionCategory AmountType
Day −15Checking → SavingsMonthly auto-saveSavings$400.00transfer

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.

NameCategoryAmount RecurrenceDayReminder
RentHousing$1,400.00monthly1st3 days before
InternetUtilities$59.00monthly5th1 day before
PhoneUtilities$45.00monthly12th1 day before
ElectricUtilities$84.00monthly15th2 days before
NetflixSubscriptions$15.49monthly20th1 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.

CategoryPlanned% of incomeNotes
Housing$1,400.0021.5%Fixed rent
Utilities$250.003.9%Internet + phone + electric
Groceries$500.007.7%4 grocery runs/mo
Dining$200.003.1%Modest restaurant budget
Transportation$250.003.9%Gas + rideshares
Subscriptions$75.001.2%Streaming + gym
Entertainment$100.001.5%Movies + books
Savings (transfer)$400.006.2%Auto-save target
Total planned$3,175.0048.8%Leaves ~$3,325 for goals/debt
Tip: after entering the budget, drop into the Transactions page and watch "Category performance" on the dashboard fill in. The Budget Agent uses both planned and actual to draft a revised budget that matches your real behavior.

9 · Demo data · Savings goals

GoalTargetSaved Target dateMonthly 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

DebtBalanceAPR Min paymentStrategy 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

financial-health-coach

Recomputes the score and surfaces three concrete actions ranked by impact.

budget-analyst

Drafts a realistic monthly budget from your actual income, fixed bills, and recent spending patterns.

bills-watchdog

Tracks upcoming bills, overdue items, and cash-flow pressure on payment days.

savings-strategist

Turns goals into achievable contribution plans with milestones.

debt-strategist

Compares snowball vs avalanche against your real debts and recommends the next best payment.

spending-insights

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

  1. Go to /redeem

    From the landing page, click the "I have a code — redeem it" button in the Lifetime Deal section, or visit /redeem directly.

  2. Paste your code.

    Format is 5 groups of 5 alphanumeric characters: ABCDE-FGHIJ-KLMNO-PQRST-UVWXY. The form normalizes to upper-case automatically.

  3. If you're signed out → register

    The page routes you through /register?next=/redeem?code=…. After registration the code is reapplied automatically.

  4. 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)

See section 13 · Admin console.

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

Overview

Counts of users, active workspaces, active subscriptions, and total AI runs.

Tenants

Every workspace, plan key, workspace type, and creation date.

Users

Email, name, email-verified flag, platform-admin flag, created date.

Subscriptions

Stripe vs code-based, status, code source + batch, redeemed-at, period end (or "Never" for lifetime).

Redemption codes

Mint, import, list, batch view, revoke, restore — full AppSumo seller console.

AI usage

Runs grouped by skill and by status (completed / needs_review / failed).

Audit logs

Every sensitive admin mutation: redemption mint, revoke, restore, compliance actions.

System health

Simple status endpoint plus version + scheduler state.

Mint AppSumo codes from a CSV

  1. Sidebar → Redemption codes → "Mint a new batch".
  2. Pick the plan (Pro recommended for AppSumo lifetime deals).

    Set Source to appsumo, Batch label to something dated like 2026-Q2-launch, tick Lifetime, and click the Upload CSV tab.

  3. Drop the CSV AppSumo gave you.

    Format: a single code column, 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.

  4. Verify the batch.

    The "Batches" section shows total / redeemed / revoked / available counts that update live.

  5. 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

  1. Topbar → email pill → Account settings.
  2. Click Enable two-factor auth. A QR code appears.
  3. Scan with any TOTP app (1Password, Authy, Google Authenticator). Enter the 6-digit code to confirm.
  4. 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_required which 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:

  1. Local state (auth store, query cache) is cleared immediately.
  2. A fire-and-forget POST /auth/logout runs; the backend revokes the refresh token server-side and clears the fs_refresh httpOnly cookie.
  3. A hard navigation to /login unmounts 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