I'm trying to move away from YNAB due to its dependency on Adobe AIR, and the fact that running it on Linux just gets harder over time. However, I'm really fond of YNAB's budgeting model, which I like to call the "bucket model". Essentially, every time you acquire some money, you register the income, and then pour this money into "budget buckets". Each bucket corresponds to an expense category. Every time you spend money in that category, you "take" money from the corresponding bucket.
I was thinking that I could just subdivide my accounts like "Assets:Checking:Food", and then query "Assets:Checking" for an overall balance, along with the balance of each "bucket". The issue I'm facing is tracking the cash I carry around, which would not be in "Assets:Checking", but in "Assets:Cash" instead. For petty expenses, I can just assign it to "Expenses:Cash", and treat it as spent, but I often withdraw money to pay for non-trivial things, such as dining at a place that doesn't accept cards. YNAB "solves" this by keeping the buckets and accounts separate, but I'm not sure if I can do the same with Ledger. I was thinking virtual transactions and accounts might help me solve it, but I'm having trouble visualizing a solution.
Unfortunately, the built-in budget model using periodical expenses doesn't suit me, since my income and expenses vary wildly month to month.