Reconcile YNAB with bank and credit-card records, screenshots, statements, and receipts.
Project description
ynabing
ynabing is a local-first CLI for reconciling YNAB with banks, credit cards,
screenshots, statements, and eventually receipts.
The first workflow extracts Apple Card transactions from iPhone screenshots using macOS Vision OCR, normalizes a YNAB CSV export, and produces an ordered comparison report.
Layout
.
├── data/
│ ├── iphone-screenshots/
│ └── ynab-export/
├── reports/
├── src/ynabing/
├── tests/
├── pyproject.toml
└── ynabing.toml.example
The repository does not track financial data, screenshots, exports, or generated reports.
Install for development
cd "$MATRIX/packages/ynabing"
export UV_PROJECT_ENVIRONMENT="$APOGEE_UV_VENV_ROOT/ynabing"
uv sync --all-groups
uv run ynabing --help
Configure paths
Local repository configuration:
uv run ynabing config init --path "$PWD/ynabing.toml" --data-root "$PWD/data" --reports-root "$PWD/reports"
Or define a global data location:
export YNABING_DATA_ROOT="/path/to/ynabing-data"
Resolution order:
- CLI options
YNABING_DATA_ROOTandYNABING_CONFIG_FILE./ynabing.toml~/.config/ynabing/config.toml./dataand./reports
Apple Card reconciliation
Put screenshots in:
data/iphone-screenshots/
Put the YNAB export in:
data/ynab-export/
Then run:
uv run ynabing apple-card reconcile --as-of 2026-06-23 --exclude-top 0.12
When --ynab is omitted, the newest CSV in data/ynab-export/ is selected.
Reports are written to:
reports/apple-card/YYYY-MM-DD/
Generated files include:
apple_transactions.csvynab_transactions.csvordered_comparison.csvscreenshot_counts.csvtop_anchor_candidates.csvsummary.txt
Roadmap
- Generic account and institution adapters
- Statement reconciliation
- Pending authorization tracking
- Cross-month authorization/posting detection
- Receipt indexing and attachment paths
- Duplicate and amount-change detection
- Persistent local database
- Optional YNAB API integration
Privacy
Transaction exports, screenshots, receipts, and reports remain local. Do not commit them to Git.
License
MIT
Project details
Release history Release notifications | RSS feed
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 ynabing-0.1.0.tar.gz.
File metadata
- Download URL: ynabing-0.1.0.tar.gz
- Upload date:
- Size: 6.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e34655cba6bbde5672b499c2fdd411914d9b0588875086154779bd5b3be57e17
|
|
| MD5 |
75f757c5669dde52d732ad3080c138d5
|
|
| BLAKE2b-256 |
d6b2273316459d0be7c8342782cd9ecf4f180a339b38d4bd74322e493bbcf001
|
File details
Details for the file ynabing-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ynabing-0.1.0-py3-none-any.whl
- Upload date:
- Size: 15.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8c095590a61fcf5064dd891f5b17b63b8354ce556978470c246332f98e10b81
|
|
| MD5 |
297743971710c4635249ed39270120bb
|
|
| BLAKE2b-256 |
838198cd966c2cf70605dd2f897304e2b2f6bd2faf536c743122b645a8058b94
|