Skip to main content

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:

  1. CLI options
  2. YNABING_DATA_ROOT and YNABING_CONFIG_FILE
  3. ./ynabing.toml
  4. ~/.config/ynabing/config.toml
  5. ./data and ./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.csv
  • ynab_transactions.csv
  • ordered_comparison.csv
  • screenshot_counts.csv
  • top_anchor_candidates.csv
  • summary.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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ynabing-0.1.0.tar.gz (6.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ynabing-0.1.0-py3-none-any.whl (15.3 kB view details)

Uploaded Python 3

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

Hashes for ynabing-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e34655cba6bbde5672b499c2fdd411914d9b0588875086154779bd5b3be57e17
MD5 75f757c5669dde52d732ad3080c138d5
BLAKE2b-256 d6b2273316459d0be7c8342782cd9ecf4f180a339b38d4bd74322e493bbcf001

See more details on using hashes here.

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

Hashes for ynabing-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a8c095590a61fcf5064dd891f5b17b63b8354ce556978470c246332f98e10b81
MD5 297743971710c4635249ed39270120bb
BLAKE2b-256 838198cd966c2cf70605dd2f897304e2b2f6bd2faf536c743122b645a8058b94

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page