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.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Finds GST input tax credit (ITC) a business is losing by matching its purchase bills against GSTR-2B, the government's record of what suppliers reported.
A buyer can only claim credit for invoices that appear in GSTR-2B. When a supplier files late, files the wrong amount, or doesn't file at all, the credit silently disappears. This tool finds each of those bills, puts a rupee value on it, and writes the message to send the supplier.
GST CREDIT CHECK GSTR-2B 09-2026, 10-2026
====================================================
Credit at risk: ₹39,741.00
Credit confirmed: ₹69,444.50
Matched 21
Missing in GSTR-2B 4 (₹29,001.50 at risk)
Amount mismatch 1 (₹250.00 at risk)
IGST vs CGST/SGST mismatch 1 (₹8,037.00 at risk)
Credit not available 1 (₹1,672.50 at risk)
Invalid GSTIN on bill 1 (₹780.00 at risk)
Probable match (check) 1
Duplicate bill 1
In GSTR-2B, no bill 2
URGENT: 1 item(s) within 60 days of the claim deadline
Sharma Traders: ST-0982 (₹7,650.00) deadline 30-11-2026, 38 days left
(Example output from the test data. All businesses and GSTINs in it are fictional.)
cd C:\GSTCreditFinder
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements-dev.txt
python run_web.py
Open http://localhost:8080:
Each check is saved to the business. The next month's check shows the credit recovered: bills that were at risk before and are now in GSTR-2B. If a business has a GSTIN, uploads of GSTR-2B for a different GSTIN are refused, so a CA can't file one client's data under another.
What is stored: uploaded files are processed in memory and never written to disk. Check results and Excel reports are saved in a SQLite database (data/gst_credit_finder.db, git-ignored). Passwords are stored as scrypt hashes. Users can delete a check, a business, or their whole account from the site.
| Setting | Default | |
|---|---|---|
HOST | 127.0.0.1 | 0.0.0.0 to open it from other devices |
PORT | 8080 | |
GST_DB | data/gst_credit_finder.db | Database file |
COOKIE_SECURE | 0 | Set to 1 when served over HTTPS |
RELOAD | 1 | Set to 0 in production |
APP_URL | Public address, used as the link in reminder messages | |
DAILY_JOBS | 1 | Daily backup + monthly reminders inside the website; 0 if cron runs them |
BACKUP_DIR | data/backups | |
BACKUP_KEEP | 14 | Number of daily backups kept |
A login that's an email gets email, and a mobile number gets SMS. With no provider set up, messages are printed in the server window, so you can try password reset locally: the 6-digit code appears in the terminal.
| Email (SMTP) | SMS (MSG91) |
|---|---|
SMTP_HOST, SMTP_PORT (587), SMTP_USER, SMTP_PASSWORD, MAIL_FROM | MSG91_AUTH_KEY, MSG91_OTP_TEMPLATE, MSG91_NUDGE_TEMPLATE |
Indian SMS needs DLT-registered templates. Register an OTP template with the variable otp, and a reminder template with month, count and link, then put their MSG91 template IDs in the settings above. Check the request format against MSG91's current Flow API docs before going live.
Monthly reminders: GSTR-2B for a month is ready on the 14th of the next month. From then on, anyone with a business not yet checked for that month gets one message. Users can switch this off in Account settings. To send by hand: python -m gst_credit_finder.nudges.
The website copies the database to BACKUP_DIR once a day and keeps the newest BACKUP_KEEP copies. To back up by hand: python -m gst_credit_finder.backup. A backup on the same disk won't survive that disk failing, so also copy BACKUP_DIR off the server regularly (for example to cloud storage).
On the results page, enter the ITC claimed in GSTR-3B Table 4A(5). The app compares it per tax head with the credit available in GSTR-2B for that month. Reverse-charge records and records marked "ITC not available" are excluded, and credit notes, imports and ISD aren't counted yet.
/privacy and /terms are templates. Replace every [bracketed] item with your business details and have a lawyer review them before launch.
On Vercel the disk doesn't persist, so the app stores everything in Postgres whenever DATABASE_URL is set. Locally it keeps using the SQLite file.
This is the beginning of the README. Read the rest at the original. Read the full README ↗