// TALK TO YOUR MONEY

UPLOAD STATEMENTS.
ASK IN PLAIN LANGUAGE.

The problem is not another budgeting personality. The problem is payday math and biller trends sitting in PDFs while a chatbot invents a calendar. FinAdvisor is Melvin’s personal finance desk: ingest PNC and Cash App statements, W-2s, hourly stubs, and printed bills (BGE, Xfinity, Washington Gas, WSSC) — upload only. No biller APIs. No bank OAuth. The pay calculator learns rate and deduction patterns from stubs and uses stored pay-cycle settings (9th/24th with weekend rollback; deposit the night before official payday). Q&A is rule-based and grounded in ingested rows — not a generic chatbot, not an LLM in this blueprint. Demo data is a separate namespace (is_demo) and never mixed with live finances. Proof: live transaction / bill / stub counts on this page come from landing_stats; the rows themselves stay behind login. Upload remains the contract even when a PDF parse is ugly: you still own the file; the app does not hold a bank session. That is the proof line — paper in, rows out, questions only the rows can answer.

Premier Upload only No bank login Rule-based Q&A
Launch App How it works
0
Live transactions
0
Recurring bills
0
Pay stubs ingested
Upload
No bank login
// HOW IT WORKS

From PDF to payday answer in five steps

Phase 1 is upload + calculator + dashboard + ask. Advisor recommendations are a stub hook. Voice/chat via OGB is a later path. Do not set FINADVISOR_DEMO=1 on the systemd unit — production default is live; demo is a session/UI choice. PDF text extract is heuristic; photos need biller + period fields. Use the service period printed on the statement, not the day you uploaded it. Cash App is treated as paycheck plus savings when the rows say so — not as a second checking product we invented. Recurring bills CSV is the structured path; printed statements are the messy path; both write history you can trend if the period dates are real.

01
Upload the paper
/finadvisor/app/upload is the primary path. Pick type or Auto-detect: pnc, cashapp, w2, paystub, bills, bill_statement. CSV/TXT, PDF, or photo (JPG/PNG). First live upload clears demo preview for your account so sample numbers cannot sit beside real ones.
02
Parse into your tables
Rows land in transactions, bills, stubs, W-2s. PNC checking CSV (Date, Description, Withdrawals, Deposits, Balance). Cash App activity CSV. Stub text: hours, rate, taxes, net — rate is read from the file. W-2 boxes 1–6, 16–17. Recurring bills CSV (name, amount, due_day, frequency, category).
03
See spend and dues
Dashboard: categories, income vs expenses, bill dues, Cash App as paycheck + savings. Charts from ingested data only. Bills page holds recurring rows plus period history. Backdated periods are required for “is BGE going up?” on day one.
04
Run the pay calculator
Hours you actually worked × stub rate. Weekends, listed holidays, and days marked not-worked are unpaid. Two dates always shown: official payday and deposit-the-night-before. Cycle and holidays live on /app/settings.
05
Ask the desk
“When do I get paid?” “Is power going up?” Answers from the active dataset (live or demo), never a generic model dump. Q&A sorts bill trends by those period dates — not upload timestamps.
Go to Upload Dashboard
// DASHBOARD

Command center for the month you actually lived

CSS mock of /finadvisor/app. Aggregate counts on this public page come from landing_stats. The rest of the app stays behind login. Household billers on Upload and Bills: BGE (power/gas), Xfinity (internet/cable), Washington Gas, WSSC (water). No consumer API for those four in Phase 1.

meltuc.tech/finadvisor/app — CSS mock
Income
vs expenses
Cats
Spend mix
Due
Bills this cycle
Cash App
Pay + savings
BGE electricrecurring
Xfinityrecurring
Washington Gashistory
WSSC waterhistory
// PAY CALCULATOR

Hours in. Official payday and deposit out.

Hourly rate and deduction percentages come from the latest stub (or the pay profile those stubs update). Enter hours you actually worked. This mock is CSS chrome of /finadvisor/app/calculator — not a bank app.

meltuc.tech/finadvisor/app/calculator — CSS mock
HOURS
40.00
RATE FROM STUB
read from file
OFFICIAL PAYDAY
24th · weekend rollback
DEPOSIT
night before official
// ASK

Payday math, then a question the rows can answer

Ask is natural language over the active dataset. Demo banner: DEMO DATA — not your finances. Clear demo deletes WHERE is_demo = true only. First real upload writes is_demo=false, deletes that user’s demo rows, and switches the session to live.

meltuc.tech/finadvisor/app/ask — CSS mock
When do I get paid?
Next official payday is the 24th (weekend rollback if needed). Deposit posts the night before, from stored cycle settings and the latest stub rate — not a guessed chatbot calendar.
// DEMO ISOLATION

Demo never unions with live

Every table has is_demo BOOLEAN NOT NULL DEFAULT false. Reads use exactly one side. Load demo preview seeds is_demo=true and switches the session. UI banner is mandatory: DEMO DATA — not your finances. Optional file copies live in FINADVISOR_DATA_DIR outside both git trees.

// PUBLIC VS APP

Counts on the landing. Rows behind login.

This page may show aggregate landing_stats. Upload, calculator, bills, ask, and settings are @login_required. Health endpoints stay public and must not touch the database. Shared landing is not a statement viewer.

// WHAT FINADVISOR REFUSES

No bank OAuth. No LLM. No biller APIs.

Phase 1 will not log into PNC, Cash App, BGE, Xfinity, Washington Gas, or WSSC for you. Email-forward and portal aggregators are Phase 2 ideas, not required to start. Advisor recommendations are a stub hook, not a scored feed. There is no LLM in this blueprint. If an answer is not in ingested rows, the desk should fail honestly rather than invent a payday.

// FEATURES

What you can do today (Phase 1)

Supported parsers are heuristic. Photos still need biller + period. That limitation is the product, not a footnote.

📤
Ingest
PNC, Cash App, W-2, hourly stubs, recurring bills, printed utility statements including backdated periods.
🧮
Pay engine
Hours × stub rate; 9th/24th cycle with weekend rollback; deposit the night before official payday.
📊
Dashboard
Spend categories, income vs expenses, bill dues, Cash App as paycheck + savings.
💬
Ask
Payday, bills, trends — grounded in ingested rows only. Not a generic chatbot.
📑
Bills history
Recurring plus period history. BGE, Xfinity, Washington Gas, WSSC catalog. Trends use printed periods.
🧪
Demo isolation
Load demo preview seeds is_demo=true. First real upload switches to live and drops demo rows for that user.
⚙️
Pay-cycle settings
Stored cycle, workweek, holidays. Calculator does not invent unpaid days you already marked off.
📷
PDF / photo bills
Heuristic PDF text. Photos require biller + period + amount. No portal scrape in Phase 1.
🚫
No OAuth
No bank username/password. No biller APIs. Upload is the contract.
// WHO THIS IS FOR

Household paper, not a bank login

FinAdvisor is for the operator who already has PNC CSVs, Cash App exports, hourly stubs, a W-2, and four utility PDFs on the counter — BGE, Xfinity, Washington Gas, WSSC — and who needs payday and “is power going up?” answered from those files. It is not for connecting a bank password to meltuc.tech. It is not for a consumer biller API that those four companies do not offer in any practical form. It is not for an LLM that invents a 9th/24th cycle you did not store. Heuristic PDF extract will miss columns; photos will demand period start/end and amount; that is annoying and honest. Backdated periods exist because uploading a January statement in March must not timestamp the trend as March. Demo preview exists so the UI can be shown without mixing sample dollars into live tables — first real upload is the ceremony that kills demo for that user. Settings exist because holidays and not-worked days are unpaid, and the calculator should not pretend otherwise. If you need Mint, Plaid, or a chatbot CFO, this is the wrong desk. If you need the stub rate × hours and the night-before deposit date, upload the stub and open the calculator.

How you verify: public /finadvisor/ and health; login for upload, calculator, bills, ask, settings. First live upload clears demo. Q&A about BGE uses printed service periods. Calculator shows both official payday and deposit-the-night-before. If an answer is not in rows, it should not sound like a confident CFO. Stub hook recommendations must not be marketed as a live advisor feed on this page.

// GET STARTED

Upload the stub. Ask the desk.

Requires a MelTuc account. Demo preview is optional and isolated.

Open FinAdvisor
// SAID SLOWLY

What stays true over time

Personal financial advisor dashboard — upload statements and get organized views. Health stays cheap. If this page disagrees with the signed-in app, trust the app — the product contract and tests enforce that rule.