From 99b13544df226bd106bc982fad2ccc48040be333 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Sun, 23 Oct 2016 14:06:43 -0700 Subject: [PATCH] extra: add a bunch of CSV rules examples --- extra/csv-rules/README | 3 ++ extra/csv-rules/amazon.csv.rules | 31 +++++++++++ .../bankofireland-checking.csv.rules | 29 +++++++++++ extra/csv-rules/eternity.csv.rules | 12 +++++ .../mint-wellsfargo-checking.csv.rules | 19 +++++++ extra/csv-rules/mint.csv.rules | 25 +++++++++ extra/csv-rules/paypal.csv.rules | 51 +++++++++++++++++++ extra/csv-rules/simple.csv.rules | 10 ++++ extra/csv-rules/wellsfargo-checking.csv.rules | 34 +++++++++++++ extra/csv-rules/wescom-checking.csv.rules | 13 +++++ extra/csv-rules/western-checking.csv.rules | 28 ++++++++++ .../ynab-personal-register.csv.rules | 13 +++++ 12 files changed, 268 insertions(+) create mode 100644 extra/csv-rules/README create mode 100644 extra/csv-rules/amazon.csv.rules create mode 100644 extra/csv-rules/bankofireland-checking.csv.rules create mode 100644 extra/csv-rules/eternity.csv.rules create mode 100755 extra/csv-rules/mint-wellsfargo-checking.csv.rules create mode 100644 extra/csv-rules/mint.csv.rules create mode 100644 extra/csv-rules/paypal.csv.rules create mode 100644 extra/csv-rules/simple.csv.rules create mode 100644 extra/csv-rules/wellsfargo-checking.csv.rules create mode 100644 extra/csv-rules/wescom-checking.csv.rules create mode 100644 extra/csv-rules/western-checking.csv.rules create mode 100644 extra/csv-rules/ynab-personal-register.csv.rules diff --git a/extra/csv-rules/README b/extra/csv-rules/README new file mode 100644 index 000000000..d29f7bbf7 --- /dev/null +++ b/extra/csv-rules/README @@ -0,0 +1,3 @@ +Some examples of recent and older CSV rules files, working and +otherwise, which should give some ideas. +http://hledger.org/manual.html#csv-format describes the format. \ No newline at end of file diff --git a/extra/csv-rules/amazon.csv.rules b/extra/csv-rules/amazon.csv.rules new file mode 100644 index 000000000..e9991f1e7 --- /dev/null +++ b/extra/csv-rules/amazon.csv.rules @@ -0,0 +1,31 @@ +# sample of CSV being converted +# "Date","Type","To/From","Name","Status","Amount","Fees","Transaction ID" +# "Oct 28, 2012","Payment","To","Adapteva, Inc.","Completed","$25.00","$0.00","17AL58JSK6RPD4HDGLNJPQI1PB98NDKPVHL" +# 1 2 3 4 5 6 7 8 + +# skip the header line +skip: 1 + +# name the csv fields, and assign some of them as entry fields +fields: date, type, toorfrom, name, status_, payment, fees, code + +# parse the date +date-format: %b %-d, %Y + +# combine these fields as the description +description: %toorfrom %name + +# save these fields as tags +comment: status:%status_, fees:%fees + +# flip the sign on the payment amount +amount: -%payment + +# set the base account for all txns +account1: assets:personal:online:amazon + +# set a more specific account2 for txns matching these patterns: + +#if INTEREST PAYMENT +# account2: revenues:personal:interest + diff --git a/extra/csv-rules/bankofireland-checking.csv.rules b/extra/csv-rules/bankofireland-checking.csv.rules new file mode 100644 index 000000000..81ce531f3 --- /dev/null +++ b/extra/csv-rules/bankofireland-checking.csv.rules @@ -0,0 +1,29 @@ +# hledger csv conversion rules for bank of ireland + +# sample of CSV being converted +# Date,Details,Debit,Credit,Balance +# 07/12/2012,LODGMENT 529898,,10.0,131.21 +# 07/12/2012,PAYMENT,5,,126 +# 1 2 3 4 5 + +# skip the header line +skip + +# name the csv fields, and assign some of them as journal entry fields +fields date, description, amount-out, amount-in, balance + +# date is in UK/Ireland format +date-format %d/%m/%Y + +# set the currency +currency EUR + +# set the base account for all txns +account1 assets:personal:bank:bank of ireland:checking + +# alternative way of handling two amount fields: +# use one field by default, if it's empty override with the other +# amount -%3 +# if ~ +# ^[^,]*,[^,]*,, +# amount %4 diff --git a/extra/csv-rules/eternity.csv.rules b/extra/csv-rules/eternity.csv.rules new file mode 100644 index 000000000..2fe3704e3 --- /dev/null +++ b/extra/csv-rules/eternity.csv.rules @@ -0,0 +1,12 @@ +# hledger CSV conversion rules for the Eternity iphone app's emailed time log report +# cf http://hledger.org/MANUAL.html#convert + +base-account assets:personal:time +date-field 0 +date-format %-m/%-d/%y +amount-field 3 +account2-field 5 +description-field %(4)%(5) - %(6) + +.* +expenses:personal:time diff --git a/extra/csv-rules/mint-wellsfargo-checking.csv.rules b/extra/csv-rules/mint-wellsfargo-checking.csv.rules new file mode 100755 index 000000000..a139d1b81 --- /dev/null +++ b/extra/csv-rules/mint-wellsfargo-checking.csv.rules @@ -0,0 +1,19 @@ +# hledger csv conversion rules v2 +# mint.com + +account1 assets:personal:bank:wells fargo:checking + +# 0 1 2 3 4 5 6 7 8 +#"Date","Description","Original Description","Amount","Transaction Type","Category","Account Name","Labels","Notes" +fields date, shortdesc, origdesc, amount, txntype, category, account, labels, notes +date-format %-m/%-d/%Y +skip 1 +currency $ + +description: %shortdesc - %origdesc %category %account - %txntype + +account2: expenses:personal:%category + +if Home Improvement + account2: expenses:personal:home:home care + diff --git a/extra/csv-rules/mint.csv.rules b/extra/csv-rules/mint.csv.rules new file mode 100644 index 000000000..2587dcf17 --- /dev/null +++ b/extra/csv-rules/mint.csv.rules @@ -0,0 +1,25 @@ +# csv conversion rules file generated by hledger 0.12.98+40 +# Add rules to this file for more accurate conversion, see +# http://hledger.org/MANUAL.html#convert + +#mint.com: "Date","Description","Original Description","Amount","Transaction Type","Category","Account Name","Labels","Notes" +#fields "Date","Description","Original Description","Amount","Transaction Type","Category","Account Name","Labels","Notes" +#account assets:personal:bank:checking + +date-field 0 +description-field 1 +amount-field 3 +base-account assets:personal:bank:checking +currency $ +# +# account-assigning rules +# +# SPECTRUM +# expenses:personal:health:gym +# +# ITUNES +# BLKBSTR=BLOCKBUSTER +# expenses:personal:entertainment +# +# (TO|FROM) SAVINGS +# assets:personal:bank:savings diff --git a/extra/csv-rules/paypal.csv.rules b/extra/csv-rules/paypal.csv.rules new file mode 100644 index 000000000..314f3c44f --- /dev/null +++ b/extra/csv-rules/paypal.csv.rules @@ -0,0 +1,51 @@ +# sample of CSV being converted +#Date, Time, Time Zone, Name, Type, Status, Currency, Amount, Receipt ID, Balance, +#"7/20/2009","17:09:22","PDT","Skype","Preapproved Payment Sent","Completed","USD","-10.00","","0.00", + +# skip the header line +skip 1 + +# name the csv fields, and assign some of them as entry fields +fields date, time, timezone, description, type, status_, currency, grossamount, feeamount, netamount, fromemail, toemail, code, counterpartystatus, etc + +amount %netamount + +#if In Progress +# skip + +# date is in US format +date-format %-m/%-d/%Y + +# save some other fields as tags +comment type:%5, status:%6 + +# set the base account for all txns +account1 assets:personal:online:paypal + +# conditional blocks + +# "Update" txns are duplicates, mark them for manual cleanup +if +Update to + account2 IGNORE + description (DELETE) %4 + amount 0 + +# replace USD currency symbol with $ +# matches against the whole record, good enough +if +,USD, + currency $ + +# set a more specific account2 for txns matching these patterns: + +if +INTEREST PAYMENT + account2 revenues:personal:interest + +if +AVAAZ FOUNDATION + account2 expenses:personal:gifts:charity + +include .common.rules + diff --git a/extra/csv-rules/simple.csv.rules b/extra/csv-rules/simple.csv.rules new file mode 100644 index 000000000..621f8c99f --- /dev/null +++ b/extra/csv-rules/simple.csv.rules @@ -0,0 +1,10 @@ +# Date,Recorded at,Scheduled for,Amount,Activity,Pending,Raw description,Description,Category folder,Category,Street address,City,State,Zip,Latitude,Longitude,Memo +# 2013/07/24,2013-07-24 08:17:56 AM -0700,,100.00,ACH,false,FUNDS TRANSFER,Funds Transfer,Financial,Money Transfer,,,,,,, + +account1 assets:personal:bank:simple +skip 1 +fields date,recorded_at,scheduled,amount,activity,pending,raw_description,description,category1,category2,,,,,,,comment +#date-format %Y-%-m-%-d %T %p %z +currency $ +include .common.rules +status * diff --git a/extra/csv-rules/wellsfargo-checking.csv.rules b/extra/csv-rules/wellsfargo-checking.csv.rules new file mode 100644 index 000000000..a7777ac3e --- /dev/null +++ b/extra/csv-rules/wellsfargo-checking.csv.rules @@ -0,0 +1,34 @@ +# sample: +#"12/04/2009","-12.07","*","","CHECK CRD PURCHASE 12/02 EUPHORIALOVESRAWVOL ..." +#"12/04/2009","-789.00","*","2392","CHECK # 2392" +# +# MCC codes (http://www.irs.gov/irb/2004-31_IRB/ar17.html) are good to match on, eg \?MCC.5812 + +account1 assets:personal:bank:wf:checking:available +skip 0 +fields date,amount,_status,code,description +date-format %-m/%-d/%Y +currency $ + +include .common.rules + +#"03/01/2016","-150.00","*","","RECURRING TRANSFER TO ... SAVINGS" +if +TRANSFER TO.*SAVINGS + account1 assets:personal:bank:wf:checking:month:autosave + account2 assets:personal:bank:wf:savings:prudent reserve + +if +MONTHLY SERVICE FEE +ATM TRANSACTION FEE +FOREIGN CURR CONV +OVERDRAFT TRANSFER FEE +BANKING THRU SOFTWARE:FEE +INTERNATIONAL PURCHASE TRANSACTION FEE +WIRE TRANS SVC CHARGE +FEE FOR TRANSFER +VISA ISA FEE +QUICKEN BANKING +NON-WF.*FEE +FINANCE CHARGE + account1 assets:personal:bank:wf:checking:available diff --git a/extra/csv-rules/wescom-checking.csv.rules b/extra/csv-rules/wescom-checking.csv.rules new file mode 100644 index 000000000..ff18f1093 --- /dev/null +++ b/extra/csv-rules/wescom-checking.csv.rules @@ -0,0 +1,13 @@ +# csv conversion rules file generated by hledger 0.9.1+21 +# Add rules to this file for more accurate conversion, see +# http://hledger.org/MANUAL.html#convert + +base-account assets:personal:bank:wescom:checking +date-field 0 +description-field 1 +amount-field 2 +#currency $ + +Share 00 +REGULAR SAVINGS +assets:personal:bank:wescom:savings + diff --git a/extra/csv-rules/western-checking.csv.rules b/extra/csv-rules/western-checking.csv.rules new file mode 100644 index 000000000..6696f73f4 --- /dev/null +++ b/extra/csv-rules/western-checking.csv.rules @@ -0,0 +1,28 @@ +# western federal credit union checking +# 1 2 3 4 5 6 7 8 +# account,date,amount,balance,category,description,memo,notes +# 000XXXXXXX-S0002,11/16/2012,($19.47),$75.24,Household,AMAZON MKTPLACE PMAMZN.CO AMZN.COM/BILL WA,Date 11/15/12 XXXXXXXX XXXX|Card Withdrawal Debit Card, +# memo can be "Date %M/%D/%y %M%D%h%m ...." or some other informative info (Amazon) + +# ACCOUNT,DATE,AMOUNT,balance,category,DESCRIPTION,memo,notes +# account,date,amount,,,description,, + +skip 1 +fields account,date,amount,balance,category,description,memo,notes +date-format %-m/%-d/%Y +status * +account1 assets:bank:western federal:checking +include .common.rules + +# account-field 0 +# 0003351165-S0001 = assets:bank:western federal:savings +# 0003351165-S0002 = assets:bank:western federal:checking +# 0003351165-S0051 = assets:bank:western federal:clubsavings + +if ~ +(To|From) Share 0001 + account2 assets:bank:western federal:savings + +if ~ +(To|From) Share 0051 + account2 assets:bank:western federal:clubsavings diff --git a/extra/csv-rules/ynab-personal-register.csv.rules b/extra/csv-rules/ynab-personal-register.csv.rules new file mode 100644 index 000000000..ff0387ec9 --- /dev/null +++ b/extra/csv-rules/ynab-personal-register.csv.rules @@ -0,0 +1,13 @@ +# hledger CSV conversion rules for YNAB 4's register export format + +account1 assets:personal:ynab + +# "Account","Flag","Check Number","Date","Payee","Category","Master Category","Sub Category","Memo","Outflow","Inflow","Cleared","Running Balance" +fields account,flag,code,date,payee,category,mastercategory,subcategory,memo,outflow,inflow,cleared,balance + +date-format %d/%m/%Y +description %payee +comment %memo +account2 expenses:personal:%category +amount-out %10 +amount-in %11