Financial Compass
Know where you stand. Know your options. Plan your next move.
Financial Compass is a privacy-first, local-first CLI that answers one question calmly and factually:
If my income stops tomorrow, how long can I survive, what are my options, and what should my plan be?
It never predicts when you'll find a job, never gives personalized investment/tax/legal advice, and never classifies your investments as halal/haram. It just does the arithmetic, clearly, on your own machine.
Why
Most "financial planning" tools are either sales funnels for investment products or vague budgeting apps that don't answer the actual question people have during a layoff or income scare: how long do I have, and what are my real options? Financial Compass is a calculator, not an advisor — it separates facts (your transactions, balances, debts) from assumptions (job search length, spending cuts) and scenarios (what-if projections), so you always know which is which.
Principles
- Local-first. Your financial data never leaves your machine. No bank credentials, ever.
- No mandatory cloud or AI APIs. Everything runs offline.
- Facts vs. assumptions vs. scenarios, always labeled. Nothing is presented as certain that isn't.
- No job-search-duration predictions. You choose the horizon; the tool just does the math.
- No personalized investment, tax, or legal advice. And no automatic halal/haram classification of your holdings.
- Calm, factual, scenario-based — never fear-driven.
Install
pip install financial-compass
Requires Python 3.11+.
Try it in one command
pip install financial-compass
financial-compass demo
This runs the entire workflow against bundled, made-up synthetic data — no setup, no real financial data touched — and opens the generated HTML report.
Quick start (with your own data)
# 1. Create a local workspace and fill in your assets/liabilities/income facts
financial-compass init
$EDITOR .financial-compass/facts.yaml
# 2. Import a bank statement (CSV or XLSX exported from your bank)
financial-compass import statement.csv
# 3. See categorized spending and burn rates
financial-compass analyze
# 4. Simulate income stopping tomorrow
financial-compass simulate --months 12
# 5. See the salary thresholds that matter
financial-compass salary
# 6. Get a calm, month-by-month action plan
financial-compass plan
# 7. Generate a full offline HTML dashboard
financial-compass report --html
Try it immediately with the bundled synthetic example data:
financial-compass init --workspace demo-workspace --force
cp examples/facts.yaml demo-workspace/facts.yaml
financial-compass import examples/sample_statement.csv --workspace demo-workspace
financial-compass report --html --workspace demo-workspace --output demo-report.html
What it does
- Bank statement analysis — imports CSV/XLSX, categorizes transactions with local keyword rules, detects recurring income/expenses, and calculates actual / essential / reduced / survival monthly burn.
- Assets — cash, FDs, mutual funds, Indian/US stocks, RSUs (vested/unvested), EPF, PPF, NPS, gold, property — classified as immediate / accessible / long-term liquidity.
- Liabilities — home/car/personal/education loans, credit cards, and their EMIs.
- Layoff simulation — assumes income stops tomorrow, includes notice pay, severance, leave encashment, and pending bonus, and projects month-by-month asset drawdown for 3/6/9/12/18/24-month horizons.
- Job planning — simulates a new job starting after N months at a chosen salary, and computes four thresholds: survival, minimum sustainable, recovery, and target salary.
- Action plan — a calm, practical month-by-month plan (Month 0, 1-3, 3-6, 6-9, 9-12, 12+) with concrete options to extend runway at each stage.
- What-if scenarios — lower spending, temporary income, different job-search durations, different new-job salaries, all compared side by side.
- HTML report — a single self-contained offline dashboard covering net worth, liquid assets, spending, runway, scenarios, salary thresholds, the action plan, and every assumption used to produce them.
Python API
from financial_compass import storage
from financial_compass.core.spending import calculate_burn_rates
from financial_compass.core.simulation import simulate_layoff
profile = storage.load_profile()
transactions = storage.load_transactions()
burn = calculate_burn_rates(transactions)
result = simulate_layoff(profile, burn.survival, months=12)
print(result.runway_months)
Data & privacy
- All data lives in a local workspace directory (
.financial-compass/by default) as plain YAML/JSON files you can read, edit, back up, or delete yourself. - No bank credentials are ever requested — you export a statement file from your bank and point the tool at it.
- No network calls are made by any core command.
Development
git clone https://github.com/rameezrz25/financial-compass
cd financial-compass
python3.11 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pre-commit install
ruff check .
mypy .
pytest
See CONTRIBUTING.md for more.
License
MIT — see LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file financial_compass-0.1.0.tar.gz.
File metadata
- Download URL: financial_compass-0.1.0.tar.gz
- Upload date:
- Size: 35.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94a4726eff77528703ed74968ba1d406011d66ef9ec6daf8f9a1e7e065e6ded6
|
|
| MD5 |
afdd6597e41f0056db073fd52aa99f7a
|
|
| BLAKE2b-256 |
a4d947dce492134a89e62e3d18f528caf69951261e2ce5077b27210b5477eda1
|
Provenance
The following attestation bundles were made for financial_compass-0.1.0.tar.gz:
Publisher:
release.yml on rameezrz25/financial-compass
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
financial_compass-0.1.0.tar.gz -
Subject digest:
94a4726eff77528703ed74968ba1d406011d66ef9ec6daf8f9a1e7e065e6ded6 - Sigstore transparency entry: 2396559264
- Sigstore integration time:
-
Permalink:
rameezrz25/financial-compass@18249eb1cf47eecb62e0481b37a26da69799b9ff -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/rameezrz25
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@18249eb1cf47eecb62e0481b37a26da69799b9ff -
Trigger Event:
release
-
Statement type:
File details
Details for the file financial_compass-0.1.0-py3-none-any.whl.
File metadata
- Download URL: financial_compass-0.1.0-py3-none-any.whl
- Upload date:
- Size: 33.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9cb7c562b09d59ee2c05eeaac820bd908e78910cc5839baa005f17a475d493cd
|
|
| MD5 |
f8f052daa5c61a2f16101a491ae3c06b
|
|
| BLAKE2b-256 |
0f2251f0400ac386d148c50d86d48345b793737498a864d742d6d765956adfd3
|
Provenance
The following attestation bundles were made for financial_compass-0.1.0-py3-none-any.whl:
Publisher:
release.yml on rameezrz25/financial-compass
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
financial_compass-0.1.0-py3-none-any.whl -
Subject digest:
9cb7c562b09d59ee2c05eeaac820bd908e78910cc5839baa005f17a475d493cd - Sigstore transparency entry: 2396559524
- Sigstore integration time:
-
Permalink:
rameezrz25/financial-compass@18249eb1cf47eecb62e0481b37a26da69799b9ff -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/rameezrz25
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@18249eb1cf47eecb62e0481b37a26da69799b9ff -
Trigger Event:
release
-
Statement type: