{"id":29603410,"url":"https://github.com/isosphere/expense-sharing-for-ynab","last_synced_at":"2025-08-17T21:41:06.440Z","repository":{"id":208096782,"uuid":"720809241","full_name":"isosphere/expense-sharing-for-ynab","owner":"isosphere","description":"A tool for sharing expenses with one other person in YNAB","archived":false,"fork":false,"pushed_at":"2024-01-13T17:15:57.000Z","size":67,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-17T00:50:30.497Z","etag":null,"topics":["budgeting","expenses","ynab"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/isosphere.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-11-19T17:05:52.000Z","updated_at":"2024-01-18T15:31:25.000Z","dependencies_parsed_at":"2023-11-19T18:26:37.882Z","dependency_job_id":"f396a17c-012d-4adc-b27c-64b6c0ba1a86","html_url":"https://github.com/isosphere/expense-sharing-for-ynab","commit_stats":null,"previous_names":["isosphere/ynab-expense-sharing"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/isosphere/expense-sharing-for-ynab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isosphere%2Fexpense-sharing-for-ynab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isosphere%2Fexpense-sharing-for-ynab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isosphere%2Fexpense-sharing-for-ynab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isosphere%2Fexpense-sharing-for-ynab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/isosphere","download_url":"https://codeload.github.com/isosphere/expense-sharing-for-ynab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isosphere%2Fexpense-sharing-for-ynab/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270912554,"owners_count":24666748,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["budgeting","expenses","ynab"],"created_at":"2025-07-20T14:07:04.998Z","updated_at":"2025-08-17T21:41:06.411Z","avatar_url":"https://github.com/isosphere.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# (Opinionated) Expense Sharing for YNAB\n\n**TL;DR**: tooling to make separate but equitable finances simple. Granular per-transaction visibility for all shared transactions with arbitrary expense splitting for end-of-period reconciliation. \n\nDoes not require a shared credit card or chequing account; separate but equitable finances made easy. \n\nSet your `YNAB_API_ACCESS_TOKEN` in `.env`. This is a personal access token generated in the [Developer Settings](https://app.ynab.com/settings/developer) page in YNAB. It grants full access to your account; don't use this software in a situation where random people on the Internet can interact with it. \n\n----\n\nThis software enables expense sharing for two users. For simplicity, we'll call the two users the expense payer[^1] and the expense receiver[^2].\n\nIt is assumed that both users are using \"YNAB Together\" with separate budgets, and one of them knows a bit about using software. This simplifies API authentication; this code would have to support an OAuth workflow to make it a non-technical user friendly application for multiple YNAB accounts. \n\n[^1]: the user that paid an expense that is to be shared\n[^2]:  both users will be in both roles over time, assuming they both pay for shared expenses. \n\nIt is required that both users share common shared budget categories - i.e.: \"Shared Groceries\".\n\n# Process\nThis software uses the YNAB API to find transactions that are flagged as shared in the expense payer's account. It replicates them under a fictional tracking account for the expense receiver. This gives the expense receiver visibility into what has been spent as a group. \n\nAt a time of either user's choosing, these tracking account balances can be reconciled: either via an even split, or a percentage share. This generates a reconciliation transaction that is split across each shared budget category. The tracking account balance will drift from zero over time depending on the reconciliation split chosen. \n\nThis enables both users to budget separately, while also having granular visibility about shared budget amounts without having to do a lot of extra book keeping. ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisosphere%2Fexpense-sharing-for-ynab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fisosphere%2Fexpense-sharing-for-ynab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisosphere%2Fexpense-sharing-for-ynab/lists"}