Open Net Worth
Open Net Worth is an open-source personal AI wealth assistant you run yourself: one ledger for your whole financial life, worked by an AI agent you control.
Free, anonymous calculator: pick a major, school, and loan; see the 10-year outcome under the 2026 federal repayment rules. 5,035 real schools, no sign-up.
FinancePython · HTMLGitHub @OneVVishOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Free, anonymous student-loan & major ROI calculator — worthmydegree.com
Translation pending
Loading the full README. The saved excerpt is shown below.
Student Loan Payoff & Major ROI Calculator
A Streamlit app that models the real financial outcome of a major/loan
choice: standard vs. income-driven repayment, take-home pay after real
2024 federal/state taxes, cost-of-living by city, and a 10-year ROI
comparison against a debt-free high school graduate. Built as a summer
portfolio project with a companion research paper on how this kind of tool
influences student decision-making — the app also logs anonymous usage
and collects an in-app survey toward that end.Read the full README ↗A Streamlit app that models the real financial outcome of a major/loan choice: standard vs. income-driven repayment, take-home pay after real 2024 federal/state taxes, cost-of-living by city, and a 10-year ROI comparison against a debt-free high school graduate. Built as a summer portfolio project with a companion research paper on how this kind of tool influences student decision-making — the app also logs anonymous usage and collects an in-app survey toward that end.
Salary data comes from real BLS OEWS occupation wage percentiles (not guesses), taxes use real 2024 IRS/state brackets, and cost of living uses BEA Regional Price Parities. Medicine, Law, and Athletic Training model the actual multi-year delay (med/law school, residency) before professional earnings begin, instead of pretending a 4-year degree leads straight into a doctor's or lawyer's salary. Full sourcing is in the app's "Methodology & Sources" section at the bottom of the page.
For how the whole system is put together — hosting topology, data pipelines, the financial model's flow, and the research telemetry — see ARCHITECTURE.md.
Requires Python 3.9+.
git clone https://github.com/OneVVish/StudentLoanROI.git
cd StudentLoanROI
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
streamlit run app.py
This opens the app at http://localhost:8501 in your browser.
The sidebar's "College Scorecard Lookup" pulls real tuition/debt figures
for the school you enter. It works out of the box with the public
DEMO_KEY (rate-limited). For regular use, get a free key at
api.data.gov/signup and paste it into the
sidebar field.
Usage/survey logging is backed by a Supabase Postgres database instead of local files, since Streamlit Community Cloud's filesystem is ephemeral — local CSVs would silently get wiped on every sleep/restart, which defeats the point of collecting this data for the companion research paper.
To run the app yourself, you need your own free Supabase project:
Sign up at supabase.com (GitHub login works) and create a new project (free tier).
In the project's SQL Editor, run the schema below. Five tables:
usage_logs (one row per pageview/event), survey_responses (one row
per feedback submission), pdf_downloads (one per PDF report),
scenario_shares (one per "Share Scenario" click), and
scenario_events (one per distinct major/school a visitor tries, so the
path through the app is recoverable and not just the destination). The
last four all store the same simulation-context columns — Scenario A's inputs and
results, Scenario B's when Compare Mode is on at save-time, and a
column per optional Advanced Analysis module — so a response can be
analyzed against the exact scenario that produced it.
Every table also carries a session_id: a random per-visit UUID shared
by every row one browser session writes, so events can be joined across
tables (e.g. "did this survey response come from someone who had just
downloaded a PDF?"). It's still anonymous — nothing is derived from the
visitor, and a refresh starts a new id.
This is the beginning of the README. Read the rest at the original. Read the full README ↗