Metadata-Version: 2.4
Name: ynabing
Version: 0.1.0
Summary: Reconcile YNAB with bank and credit-card records, screenshots, statements, and receipts.
Project-URL: Homepage, https://github.com/suhailece/ynabing
Project-URL: Repository, https://github.com/suhailece/ynabing
Project-URL: Issues, https://github.com/suhailece/ynabing/issues
Author-email: Suhail Suhail <suhailece@gmail.com>
License: MIT
License-File: LICENSE
Keywords: apple-card,ocr,personal-finance,reconciliation,ynab
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Office/Business :: Financial
Requires-Python: >=3.11
Requires-Dist: pyobjc-framework-quartz>=10.3; sys_platform == 'darwin'
Requires-Dist: pyobjc-framework-vision>=10.3; sys_platform == 'darwin'
Requires-Dist: rapidfuzz>=3.9
Requires-Dist: typer>=0.12
Description-Content-Type: text/markdown

# 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

```text
.
├── 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

```bash
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:

```bash
uv run ynabing config init       --path "$PWD/ynabing.toml"       --data-root "$PWD/data"       --reports-root "$PWD/reports"
```

Or define a global data location:

```bash
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:

```text
data/iphone-screenshots/
```

Put the YNAB export in:

```text
data/ynab-export/
```

Then run:

```bash
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:

```text
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
