metadata fields crowdsourcing

158 views
Skip to first unread message

martin.andr...@gmail.com

unread,
Dec 31, 2016, 9:32:08 PM12/31/16
to Beancount
I'm currently re-starting using beancount for 2017, and I'm trying my damnedest to do it the 'beancount way' this time - write beancount.ingest importers, etc.
To facilitate the scripting i might be doing soon, i've been seeding my accounts with some metadata. I'd love to see other examples of metadata, and perhaps
be a bit inspired :)

currently I have:

- account_id: the institution's account number
- customer_id: my identification at the institution
- pbs_id: the auto-bill-pay ID 
- provider: A friendly name for a service provider
  * an electricity company
  * a phone company
  * a bank
- interest: a decimal (between 0 and 1) representation of
  an account's interest per year
- min_payment (loans only): my minimum required payment

I am envisioning a plugin plugging the last two bits of data
into a loan amortization calculator, for example.

## Metadata for forecasting

I've also been tentatively adding metadata for forecasting
and budgeting purposes.

- budget (for variable expenses): If an expense is variable
  in amount, I use this field to keep an eye on my projections
- rate (for fixed expenses): If a bill is always the same size,
  no fuss, no muss.
- schedule: monthly, quarterly, biannual, annual.

A plugin could conceivably parse these and convert to fava budget syntax.

Martin Blais

unread,
Jan 1, 2017, 1:49:53 PM1/1/17
to Beancount
Hi Martin,

First question: Are you already doing the basic stuff with it? 
That is, are you setup to import and update your credit card, banking and investment accounts, and have you taken the habit of updating these transactions regularly?
I would start there, that's the most important thing. 
I'd do that first, before adding lots of sophistication and custom things.

As for the meta-data, you don't need it to get started.
Meta-data only exists for you to use in custom scripts you write; Beancount ignores your meta-data.
But in any case, I'll comment below.


On Sat, Dec 31, 2016 at 9:32 PM, <martin.andr...@gmail.com> wrote:
I'm currently re-starting using beancount for 2017, and I'm trying my damnedest to do it the 'beancount way' this time - write beancount.ingest importers, etc.
To facilitate the scripting i might be doing soon, i've been seeding my accounts with some metadata. I'd love to see other examples of metadata, and perhaps
be a bit inspired :)

currently I have:

- account_id: the institution's account number
- customer_id: my identification at the institution

These I would attach to the corresponding account's Open directive.

 
- pbs_id: the auto-bill-pay ID 

I would import those as a ^link on each imported transaction
 

- provider: A friendly name for a service provider
  * an electricity company
  * a phone company
  * a bank

Also attached to the Open directive.
It won't get used anywhere though, again, meta-data is only there for you, if you want to build something custom, Beancount parses it but ignores it.

 
- interest: a decimal (between 0 and 1) representation of
  an account's interest per year
- min_payment (loans only): my minimum required payment

Also attach to the Open directive


I am envisioning a plugin plugging the last two bits of data
into a loan amortization calculator, for example.

That's a cool idea.





## Metadata for forecasting

I've also been tentatively adding metadata for forecasting
and budgeting purposes.

- budget (for variable expenses): If an expense is variable
  in amount, I use this field to keep an eye on my projections
- rate (for fixed expenses): If a bill is always the same size,
  no fuss, no muss.
- schedule: monthly, quarterly, biannual, annual.

A plugin could conceivably parse these and convert to fava budget syntax.

--
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 beancount+unsubscribe@googlegroups.com.
To post to this group, send email to bean...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/ddbe4583-c622-4739-92df-7f38912d148a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

martin.andr...@gmail.com

unread,
Jan 1, 2017, 4:12:03 PM1/1/17
to Beancount


On Sunday, January 1, 2017 at 7:49:53 PM UTC+1, Martin Blais wrote:
Hi Martin,

First question: Are you already doing the basic stuff with it? 
That is, are you setup to import and update your credit card, banking and investment accounts, and have you taken the habit of updating these transactions regularly?
I would start there, that's the most important thing. 
I'd do that first, before adding lots of sophistication and custom things.
I *am* setting up to do it. Gonna re-task the time i spent first half of 2016 manually inputting *everything* (well, some copy-and-paste, but mostly data-entry gruntwork) into grokking the beancount importer and plugin infrastructure, so i can automate more things.

As for the meta-data, you don't need it to get started.
Meta-data only exists for you to use in custom scripts you write; Beancount ignores your meta-data.
But in any case, I'll comment below.
oh, yes, I know. this is exactly my point in adding the metadata. I was possibly a bit unclear: I understand the purpose of metadata, and how Beancount treats it, and where to put it. I was hoping to kickstart some discussion around a semi-generalized metadata vocabulary, so as to facilitate sharing of scripts etc 
 


On Sat, Dec 31, 2016 at 9:32 PM, <martin.andr...@gmail.com> wrote:
I'm currently re-starting using beancount for 2017, and I'm trying my damnedest to do it the 'beancount way' this time - write beancount.ingest importers, etc.
To facilitate the scripting i might be doing soon, i've been seeding my accounts with some metadata. I'd love to see other examples of metadata, and perhaps
be a bit inspired :)

currently I have:

- account_id: the institution's account number
- customer_id: my identification at the institution

These I would attach to the corresponding account's Open directive.

 
- pbs_id: the auto-bill-pay ID 

I would import those as a ^link on each imported transaction
no, this belongs on the account. Each auto-paid bill has an associated contract number, which all bills from that spcific contract can be identified by. from my design spec rambling of my intended importer:

>- find `open` directives in a Beancount file
>- extract the pbs_id metadata (as well as other
>  relevant metadata - a friendly name for the payee
>  string for instance.)
>- compare this to a PBS input file. If the pbs_id matches,
>  extract the amount, and convert to Beancount format (remove
>  `.` thousands separator, convert `,` decimal separator to `.`)
>- construct a Beancount transaction using
>  * the account defined with metadata as the *credit* account
>  * how is a *debit* account defined?
>    - in metadata (`pay_from_account` metadata field)?
>    - hardcoded in script?
>  * the amount extracted from the PBS transaction list. 
 

- provider: A friendly name for a service provider
  * an electricity company
  * a phone company
  * a bank

Also attached to the Open directive.

 
- interest: a decimal (between 0 and 1) representation of
  an account's interest per year
- min_payment (loans only): my minimum required payment

Also attach to the Open directive


I am envisioning a plugin plugging the last two bits of data
into a loan amortization calculator, for example.

That's a cool idea.





## Metadata for forecasting

I've also been tentatively adding metadata for forecasting
and budgeting purposes.

- budget (for variable expenses): If an expense is variable
  in amount, I use this field to keep an eye on my projections
- rate (for fixed expenses): If a bill is always the same size,
  no fuss, no muss.
- schedule: monthly, quarterly, biannual, annual.

A plugin could conceivably parse these and convert to fava budget syntax.

--
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 beancount+...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages