I still don't understand what you wrote. I re-read it many times, but it still doesn't make sense to me. I'm not much of an accountant, and we're not using those words the same way.
Here's how I would approach this problem should I have to do the same thing myself. Please note that I am not an accountant and that whatever you do, this is not legal advice in any way, and you should consult a professional to look at setting up your company's finances (DISCLAIMER: I'M NOT A PRO. Don't trust anything I say, we're just talking about ideas here). You can cut-and-paste the following to run queries against it. ;; First, I'd ask, "what aggregates do I want to keep track of?" ;; ;; - The amount of borrowed money I owe to each donator: ;; ;; Liabilities:Donator:<DonatorName> 2016-01-01 open Liabilities:Donator:Donald USD 2016-01-01 open Liabilities:Donator:Mike USD 2016-01-01 open Liabilities:Donator:Rex USD ;; - The amount of pending payments I owe to each project: ;; ;; Liabilities:Project:<ProjectName> ;; 2016-01-01 open Liabilities:Project:Linux USD 2016-01-01 open Liabilities:Project:Apache USD 2016-01-01 open Liabilities:Project:MySQL USD 2016-01-01 open Liabilities:Project:Firefox USD ;; These are the "client accounts" for which you could generate a journal and ;; send statements to donators or projects about. ;; To keep the company's money separated from the escrow money I'd open two ;; real, separate corporate bank accounts (you might have to actually do this I ;; think, if there's banking regulation affecting the holding of other people's ;; money). ;; ;; - The amount of money in our escrow account ;; ;; Assets:US:BigBank:Escrow ;; 2015-06-01 open Assets:US:BigBank:Escrow USD ;; - The amount of money in our company account ;; ;; Assets:US:BigBank:Checking ;; 2015-06-01 open Assets:US:BigBank:Checking USD ;; Then there's the rest of the regular company operating accounts: ;; ;; - The amount of income we took (I'll assume it's fees as a % of ;; contributions, but it doesn't matter): ;; ;; Income:US:Fees ;; 2015-06-01 open Income:US:Fees USD ;; - Company expenses ;; ;; Expenses:<...> ;; 2015-06-01 open Expenses:OfficeSupplies 2015-06-01 open Expenses:Salaries:Chad USD ;; I would want to disconnect the notion of payments actually made to ;; contributions made to projects. So we're going to do accrual accounting with ;; the accounts above: ;; ;; - When a donator makes a payment, I'll assume they pay sums seldomly and ;; ahead of time, even if the donations accrue monthly. For the example I'll ;; assume that they're one-time donations intended to be spread out over many ;; months to projects. ;; ;; - I'll further assume that while donations to projects accrue monthly, ;; payments to them are made every three months, just to make things a bit ;; more hairy. This is a realistic need too: in reality payments might bounce ;; or be delayed for various reasons. ;; Let's look at some transactions now. ;; ;; When a donator makes a payment, you receive the money in the escrow account ;; and add to the amount you owe them: 2016-01-10 * "Received money from Donald" Liabilities:Donator:Donald -10000.00 USD Assets:US:BigBank:Escrow 2016-01-11 * "Received money from Mike" Liabilities:Donator:Mike -2000.00 USD Assets:US:BigBank:Escrow 2016-01-12 * "Received money from Rex" Liabilities:Donator:Rex -4500.00 USD Assets:US:BigBank:Escrow ;; When it's time to accrue donator payments to particular projects, you create ;; a transaction for that. I'll assume this occurs at the end of a month: 2016-01-31 * "Monthly donation for Donald" Liabilities:Donator:Donald 500.00 USD Liabilities:Project:Linux -300.00 USD Liabilities:Project:Apache -120.00 USD Liabilities:Project:Firefox -80.00 USD 2016-01-31 * "Monthly donation for Mike" Liabilities:Donator:Mike 210.00 USD Liabilities:Project:Linux -90.00 USD Liabilities:Project:MySQL -120.00 USD ;; When you accept a fee for processing this, you could do that in a separate ;; transaction, while at the same time tranferring money to the company's ;; account: 2016-01-31 * "Collecting fees for processing" Liabilities:Donator:Donald 20.00 USD Liabilities:Donator:Mike 20.00 USD Liabilities:Donator:Rex 20.00 USD Income:US:Fees -60.00 USD Assets:US:BigBank:Escrow -60.00 USD Assets:US:BigBank:Checking 60.00 USD ;; Finally, when you get to making a payment to a project, you take it out of ;; the escrow account: 2016-02-25 * "Apache Foundation" "February payment" Liabilities:Project:Apache 120.00 USD Assets:US:BigBank:Escrow 2016-02-25 * "Mozilla Foundation" "February payment" Liabilities:Project:Firefox 80.00 USD Assets:US:BigBank:Escrow 2016-02-25 * "Linus Torvalds" "February payment" Liabilities:Project:Linux 390.00 USD Assets:US:BigBank:Escrow 2016-02-25 * "Oracle" "February payment" Liabilities:Project:MySQL 120.00 USD Assets:US:BigBank:Escrow ;; After the payments, the balances should be zero. If you like, you could ;; assert this: 2016-02-26 balance Liabilities:Project:Linux 0.00 USD 2016-02-26 balance Liabilities:Project:Apache 0.00 USD 2016-02-26 balance Liabilities:Project:Firefox 0.00 USD 2016-02-26 balance Liabilities:Project:MySQL 0.00 USD ;; All the other company expenses entered as per usual: 2017-03-12 * "Envelopes" Expenses:OfficeSupplies 7.99 USD Assets:US:BigBank:Checking I'd organize these in sections, in whichever way makes it easiest to update. I would write scripts to automatically generate the accrual of payments with appropriate percentages and fees and whatever. Then I'd also write scripts to generate per-client statements of accounts to be mailed or rendered on the company's site. Hope this helps, On Sat, Jan 14, 2017 at 6:52 AM, Chad Whitacre <[email protected]> wrote: > If you tell us what you're trying to achieve we might be able to come up > with something > > We want to: > > 1. keep operations (our money) and escrow (your money) separate, > 2. have operations hit Equity:Earnings:Current on the balance sheet > (as usual), > 3. have escrow hit Liabilities:Escrow on the balance sheet, > 4. balance Assets:Escrow and Liabilities:Escrow, and > 5. have operations and escrow both show up on the income statement. > > My proposal is: > > 2012-06-01 * > Assets:Escrow 10.00 USD > Income:Escrow -10.00 USD > 2012-06-01 * > Equity:Earnings:Current 10.00 USD > Liabilities:Escrow -10.00 USD > > I understand that you need to differentiate between income to Gratipay and > funds held on account, but this is exactly what Income: vs Liabilities: are > for. > > This seems to suggest that we simply do: > > 2012-06-01 * > Assets:Escrow 10.00 USD > Liabilities:Escrow -10.00 USD > > That would address (1) through (4), but not (5): without running through > Income, escrow doesn't show up on the income statement. > > you can easily write Python scripts and plugins on top of it, to automated > some of your work (this might help keep the input simpler if needed) > > Not a bad idea. Presumably we'd then do: > > 2012-06-01 * > Assets:Escrow 10.00 USD > Income:Escrow -10.00 USD > > and automate the additional transaction to clear from > Equity:Earnings:Current to Liabilities:Escrow. > > — > You are receiving this because you were mentioned. > Reply to this email directly, view it on GitHub > <https://github.com/gratipay/finances/pull/35#issuecomment-272619435>, or mute > the thread > <https://github.com/notifications/unsubscribe-auth/AAUgk7sTpvK32O2M4S8-pZL8IaRsiwYuks5rSLbzgaJpZM4LTY9X> > . > -- You received this message because you are subscribed to the Google Groups "Beancount" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/CAK21%2BhMp2J3v2cgbubcKhPUAstZ2Z81oDzMEyVwkobef95HdQg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
