I do something like this to run my sinking funds and have documented it
here:

https://www.petekeen.net/program-your-finances-envelope-budgeting

Basically you can use automated transactions to get close to what you want,
although I'm not sure how you use the value of a tag like that to cook an
automated transaction. Others here may be able to help on that front.

On Sat, Jan 14, 2017 at 12:26 PM, APL <alan.parker....@gmail.com> wrote:

> I'd like to use Ledger to track the finances of a two-person household,
> recording transactions to both aggregate household accounts and individual
> ownership stakes.
>
> Two questions:
>
>    - Is there a preferred way to do this?
>    - Supposing I do this using tags to identify "shadow accounts," how
>    would you recommend processing shadow account tags?
>
> By "shadow account," I mean a pair of non-real accounts that is
> established for each real account, corresponding to the ownership stakes of
> the two people in the household. The shadow accounts have the property that
> the sum of the postings to each pair of shadow accounts equals the total
> posting to the corresponding real account.
>
> To illustrate, suppose a household that consists of two people: APL and
> NPL.
>
>    - APL works at the local metropolitan transportation authority
>    - NPL works at a glass factory
>    - APL and NPL share an apartment, a checking account, and a credit card
>
> We want to track APL & NPL's total household earnings and expenses as well
> as their individual ownership stakes in their assets and liabilities. We
> can do this with shadow accounts implemented with virtual postings. Here's
> an example journal file for APL & NPL:
>
> 2017-01-06 (#1) MTA
>     Assets:Cash:Checking                    $1000.00
>     Income:Salary
>     [APL:Assets:Cash:Checking]              $1000.00
>     [APL:Income:Salary]                    $-1000.00
>     [NPL:Assets:Cash:Checking]                 $0.00
>     [NPL:Income:Salary]                        $0.00
>
> 2017-01-10 (#2) Landlord
>     Expenses:Rent                            $960.00
>     Assets:Cash:Checking
>     [APL:Expenses:Rent]                      $480.00
>     [APL:Assets:Cash:Checking]              $-480.00
>     [NPL:Expenses:Rent]                      $480.00
>     [NPL:Assets:Cash:Checking]              $-480.00
>
> 2017-01-13 (#3) Glass Factory
>     Assets:Cash:Checking                    $1200.00
>     Income:Salary
>     [APL:Assets:Cash:Checking]                 $0.00
>     [APL:Income:Salary]                        $0.00
>     [NPL:Assets:Cash:Checking]              $1200.00
>     [NPL:Income:Salary]                    $-1200.00
>
> 2017-01-15 (#4) Pacific Gas & Electric
>     Expenses:Utilities                        $85.00
>     Liabilities:Credit:Visa
>     [APL:Expenses:Utilities]                  $42.50
>     [APL:Liabilities:Credit:Visa]            $-42.50
>     [NPL:Expenses:Utilities]                  $42.50
>     [NPL:Liabilities:Credit:Visa]            $-42.50
>
>
> To clarify each transaction:
>
>    1. APL earns $1,000 from the MTA and deposits his earnings to the
>    couple's checking account
>    2. APL & NPL contribute equally to their rent payment of $960
>    3. NPL earns $1,200 from the glass factory and deposits her earnings
>    to the couple's checking account
>    4. APL & NPL pay their gas bill of $85 with their credit card, each
>    recording equal contributions
>
> The journal gives us APL & NPL's household balance sheet:
>
> $ ledger bal --real
>
>             $1240.00  Assets:Cash:Checking
>
>             $1045.00  Expenses
>
>              $960.00    Rent
>
>               $85.00    Utilities
>
>            $-2200.00  Income:Salary
>
>              $-85.00  Liabilities:Credit:Visa
>
> --------------------
>
>                    0
>
> Using shadow accounts allows us to view APL's and NPL's individual
> ownership stakes in each of their accounts.
>
> $ ledger bal ^APL
>
>                    0  APL
>
>              $520.00    Assets:Cash:Checking
>
>              $522.50    Expenses
>
>              $480.00      Rent
>
>               $42.50      Utilities
>
>            $-1000.00    Income:Salary
>
>              $-42.50    Liabilities:Credit:Visa
>
> --------------------
>
>                    0
>
> $ ledger bal NPL
>
>                    0  NPL
>
>              $720.00    Assets:Cash:Checking
>
>              $522.50    Expenses
>
>              $480.00      Rent
>
>               $42.50      Utilities
>
>            $-1200.00    Income:Salary
>
>              $-42.50    Liabilities:Credit:Visa
>
> --------------------
>
>                    0
>
> Note that adding APL and NPL's balance sheets yields the household balance
> sheet.
>
> The reason for the second of my original two questions (i.e., how do you
> process shadow account tags?) is that recording shadow accounts with
> virtual postings in every transaction is a tedious process, and I'd like
> instead to use tag-value pairs to record shadow account information.
> Instead of recording the journal entries listed above, I'd like to record
> the following, where the value of the *Shadow* tag holds the ownership
> weights necessary to derive the shadow account postings:
>
> 2017-01-06 (#1) MTA
>     ; Shadow: APL 100/NPL 0
>     Assets:Cash:Checking                    $1000.00
>     Income:Salary
>
> 2017-01-10 (#2) Landlord
>     ; Shadow: APL 50/NPL 50
>     Expenses:Rent                           $960.00
>     Assets:Cash:Checking
>
> 2017-01-13 (#3) Glass Factory
>     ; Shadow: APL 0/NPL 100
>     Assets:Cash:Checking                    $1200.00
>     Income:Salary
>
> 2017-01-15 (#4) Pacific Gas & Electric
>     ; Shadow: APL 50/NPL 50
>     Expenses:Utilities                        $85.00
>     Liabilities:Credit:Visa
>
>
> The result is an informationally equivalent journal file with two postings
> per transaction instead of six.
>
> Elaborating on my original questions:
>
>    - Is there a better (and more widely accepted) way to do this?
>    - If not, how would you recommend processing the Shadow tags?
>
> Being new to Ledger, my first thought to processing Shadow tags is to
> write a Python script that generates a "cooked" journal file that includes
> the shadow account virtual postings based on the Shadow tag-value pairs;
> Ledger could then read the cooked journal instead. Alternatively, maybe
> there's some facility in Ledger itself that could achieve this.
>
> APL
>
>
> --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "Ledger" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to ledger-cli+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"Ledger" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ledger-cli+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to