reckon 0.6.0 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +50 -0
  3. data/.gitignore +3 -0
  4. data/.ruby-version +1 -1
  5. data/CHANGELOG.md +75 -7
  6. data/Gemfile.lock +1 -1
  7. data/README.md +85 -24
  8. data/Rakefile +17 -1
  9. data/bin/build-new-version.sh +26 -0
  10. data/bin/reckon +9 -1
  11. data/lib/reckon.rb +1 -0
  12. data/lib/reckon/app.rb +18 -141
  13. data/lib/reckon/cosine_similarity.rb +67 -62
  14. data/lib/reckon/csv_parser.rb +2 -7
  15. data/lib/reckon/date_column.rb +10 -0
  16. data/lib/reckon/money.rb +59 -52
  17. data/lib/reckon/options.rb +153 -0
  18. data/lib/reckon/version.rb +1 -1
  19. data/spec/cosine_training_and_test.rb +52 -0
  20. data/spec/integration/another_bank_example/input.csv +9 -0
  21. data/spec/integration/another_bank_example/output.ledger +36 -0
  22. data/spec/integration/another_bank_example/test_args +1 -0
  23. data/spec/integration/ask_for_account/cli_input.exp +33 -0
  24. data/spec/integration/ask_for_account/expected_output +11 -0
  25. data/spec/integration/ask_for_account/input.csv +9 -0
  26. data/spec/integration/ask_for_account/test_args +1 -0
  27. data/spec/integration/austrian_example/input.csv +13 -0
  28. data/spec/integration/austrian_example/output.ledger +52 -0
  29. data/spec/integration/austrian_example/test_args +2 -0
  30. data/spec/integration/bom_utf8_file/input.csv +3 -0
  31. data/spec/integration/bom_utf8_file/output.ledger +4 -0
  32. data/spec/integration/bom_utf8_file/test_args +3 -0
  33. data/spec/integration/broker_canada_example/input.csv +12 -0
  34. data/spec/integration/broker_canada_example/output.ledger +48 -0
  35. data/spec/integration/broker_canada_example/test_args +1 -0
  36. data/spec/integration/chase/account_tokens_and_regex/output.ledger +36 -0
  37. data/spec/integration/chase/account_tokens_and_regex/test_args +2 -0
  38. data/spec/integration/chase/account_tokens_and_regex/tokens.yml +16 -0
  39. data/spec/integration/chase/default_account_names/output.ledger +36 -0
  40. data/spec/integration/chase/default_account_names/test_args +3 -0
  41. data/spec/integration/chase/input.csv +9 -0
  42. data/spec/integration/chase/learn_from_existing/learn.ledger +7 -0
  43. data/spec/integration/chase/learn_from_existing/output.ledger +36 -0
  44. data/spec/integration/chase/learn_from_existing/test_args +1 -0
  45. data/spec/integration/chase/simple/output.ledger +36 -0
  46. data/spec/integration/chase/simple/test_args +1 -0
  47. data/spec/integration/danish_kroner_nordea_example/input.csv +6 -0
  48. data/spec/integration/danish_kroner_nordea_example/output.ledger +24 -0
  49. data/spec/integration/danish_kroner_nordea_example/test_args +1 -0
  50. data/spec/integration/english_date_example/input.csv +3 -0
  51. data/spec/integration/english_date_example/output.ledger +12 -0
  52. data/spec/integration/english_date_example/test_args +1 -0
  53. data/spec/integration/extratofake/input.csv +24 -0
  54. data/spec/integration/extratofake/output.ledger +92 -0
  55. data/spec/integration/extratofake/test_args +1 -0
  56. data/spec/integration/french_example/input.csv +9 -0
  57. data/spec/integration/french_example/output.ledger +36 -0
  58. data/spec/integration/french_example/test_args +2 -0
  59. data/spec/integration/german_date_example/input.csv +3 -0
  60. data/spec/integration/german_date_example/output.ledger +12 -0
  61. data/spec/integration/german_date_example/test_args +1 -0
  62. data/spec/integration/harder_date_example/input.csv +5 -0
  63. data/spec/integration/harder_date_example/output.ledger +20 -0
  64. data/spec/integration/harder_date_example/test_args +1 -0
  65. data/spec/integration/ing/input.csv +3 -0
  66. data/spec/integration/ing/output.ledger +12 -0
  67. data/spec/integration/ing/test_args +1 -0
  68. data/spec/integration/intuit_mint_example/input.csv +7 -0
  69. data/spec/integration/intuit_mint_example/output.ledger +28 -0
  70. data/spec/integration/intuit_mint_example/test_args +1 -0
  71. data/spec/integration/invalid_header_example/input.csv +6 -0
  72. data/spec/integration/invalid_header_example/output.ledger +8 -0
  73. data/spec/integration/invalid_header_example/test_args +1 -0
  74. data/spec/integration/inversed_credit_card/input.csv +16 -0
  75. data/spec/integration/inversed_credit_card/output.ledger +64 -0
  76. data/spec/integration/inversed_credit_card/test_args +1 -0
  77. data/spec/integration/nationwide/input.csv +4 -0
  78. data/spec/integration/nationwide/output.ledger +16 -0
  79. data/spec/integration/nationwide/test_args +1 -0
  80. data/spec/integration/regression/issue_51_account_tokens/input.csv +8 -0
  81. data/spec/integration/regression/issue_51_account_tokens/output.ledger +32 -0
  82. data/spec/integration/regression/issue_51_account_tokens/test_args +4 -0
  83. data/spec/integration/regression/issue_51_account_tokens/tokens.yml +9 -0
  84. data/spec/integration/regression/issue_64_date_column/input.csv +3 -0
  85. data/spec/integration/regression/issue_64_date_column/output.ledger +8 -0
  86. data/spec/integration/regression/issue_64_date_column/test_args +1 -0
  87. data/spec/integration/regression/issue_73_account_token_matching/input.csv +2 -0
  88. data/spec/integration/regression/issue_73_account_token_matching/output.ledger +4 -0
  89. data/spec/integration/regression/issue_73_account_token_matching/test_args +6 -0
  90. data/spec/integration/regression/issue_73_account_token_matching/tokens.yml +8 -0
  91. data/spec/integration/regression/issue_85_date_example/input.csv +2 -0
  92. data/spec/integration/regression/issue_85_date_example/output.ledger +8 -0
  93. data/spec/integration/regression/issue_85_date_example/test_args +1 -0
  94. data/spec/integration/spanish_date_example/input.csv +3 -0
  95. data/spec/integration/spanish_date_example/output.ledger +12 -0
  96. data/spec/integration/spanish_date_example/test_args +1 -0
  97. data/spec/integration/suntrust/input.csv +7 -0
  98. data/spec/integration/suntrust/output.ledger +28 -0
  99. data/spec/integration/suntrust/test_args +1 -0
  100. data/spec/integration/test.sh +123 -0
  101. data/spec/integration/test_money_column/input.csv +3 -0
  102. data/spec/integration/test_money_column/output.ledger +8 -0
  103. data/spec/integration/test_money_column/test_args +1 -0
  104. data/spec/integration/two_money_columns/input.csv +5 -0
  105. data/spec/integration/two_money_columns/output.ledger +20 -0
  106. data/spec/integration/two_money_columns/test_args +1 -0
  107. data/spec/integration/yyyymmdd_date_example/input.csv +1 -0
  108. data/spec/integration/yyyymmdd_date_example/output.ledger +4 -0
  109. data/spec/integration/yyyymmdd_date_example/test_args +1 -0
  110. data/spec/reckon/app_spec.rb +24 -6
  111. data/spec/reckon/csv_parser_spec.rb +3 -3
  112. data/spec/reckon/money_column_spec.rb +24 -24
  113. data/spec/reckon/money_spec.rb +15 -34
  114. data/spec/reckon/options_spec.rb +17 -0
  115. data/spec/spec_helper.rb +6 -1
  116. metadata +102 -7
  117. data/.travis.yml +0 -13
@@ -0,0 +1,153 @@
1
+ module Reckon
2
+ class Options
3
+ @@cli = HighLine.new
4
+
5
+ def self.parse(args = ARGV, stdin = $stdin)
6
+ options = { output_file: $stdout }
7
+ OptionParser.new do |opts|
8
+ opts.banner = "Usage: Reckon.rb [options]"
9
+ opts.separator ""
10
+
11
+ opts.on("-f", "--file FILE", "The CSV file to parse") do |file|
12
+ options[:file] = file
13
+ end
14
+
15
+ opts.on("-a", "--account NAME", "The Ledger Account this file is for") do |a|
16
+ options[:bank_account] = a
17
+ end
18
+
19
+ opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|
20
+ options[:verbose] = v
21
+ end
22
+
23
+ opts.on("-i", "--inverse", "Use the negative of each amount") do |v|
24
+ options[:inverse] = v
25
+ end
26
+
27
+ opts.on("-p", "--print-table", "Print out the parsed CSV in table form") do |p|
28
+ options[:print_table] = p
29
+ end
30
+
31
+ opts.on("-o", "--output-file FILE", "The ledger file to append to") do |o|
32
+ options[:output_file] = File.open(o, 'a')
33
+ end
34
+
35
+ opts.on("-l", "--learn-from FILE", "An existing ledger file to learn accounts from") do |l|
36
+ options[:existing_ledger_file] = l
37
+ end
38
+
39
+ opts.on("", "--ignore-columns 1,2,5", "Columns to ignore, starts from 1") do |ignore|
40
+ options[:ignore_columns] = ignore.split(",").map(&:to_i)
41
+ end
42
+
43
+ opts.on("", "--money-column 2", Integer, "Column number of the money column, starts from 1") do |col|
44
+ options[:money_column] = col
45
+ end
46
+
47
+ opts.on("", "--raw-money", "Don't format money column (for stocks)") do |n|
48
+ options[:raw] = n
49
+ end
50
+
51
+ opts.on("", "--date-column 3", Integer, "Column number of the date column, starts from 1") do |col|
52
+ options[:date_column] = col
53
+ end
54
+
55
+ opts.on("", "--contains-header [N]", Integer, "Skip N header rows - default 1") do |hdr|
56
+ options[:contains_header] = 1
57
+ options[:contains_header] = hdr.to_i
58
+ end
59
+
60
+ opts.on("", "--csv-separator ','", "CSV separator (default ',')") do |sep|
61
+ options[:csv_separator] = sep
62
+ end
63
+
64
+ opts.on("", "--comma-separates-cents", "Use comma to separate cents ($100,50 vs. $100.50)") do |c|
65
+ options[:comma_separates_cents] = c
66
+ end
67
+
68
+ opts.on("", "--encoding 'UTF-8'", "Specify an encoding for the CSV file") do |e|
69
+ options[:encoding] = e
70
+ end
71
+
72
+ opts.on("-c", "--currency '$'", "Currency symbol to use - default $ (ex £, EUR)") do |e|
73
+ options[:currency] = e
74
+ end
75
+
76
+ opts.on("", "--date-format '%d/%m/%Y'", "Force the date format (see Ruby DateTime strftime)") do |d|
77
+ options[:date_format] = d
78
+ end
79
+
80
+ opts.on("-u", "--unattended", "Don't ask questions and guess all the accounts automatically. Use with --learn-from or --account-tokens options.") do |n|
81
+ options[:unattended] = n
82
+ end
83
+
84
+ opts.on("-t", "--account-tokens FILE", "YAML file with manually-assigned tokens for each account (see README)") do |a|
85
+ options[:account_tokens_file] = a
86
+ end
87
+
88
+ opts.on("", "--table-output-file FILE") do |n|
89
+ options[:table_output_file] = n
90
+ end
91
+
92
+ options[:default_into_account] = 'Expenses:Unknown'
93
+ opts.on("", "--default-into-account NAME", "Default into account") do |a|
94
+ options[:default_into_account] = a
95
+ end
96
+
97
+ options[:default_outof_account] = 'Income:Unknown'
98
+ opts.on("", "--default-outof-account NAME", "Default 'out of' account") do |a|
99
+ options[:default_outof_account] = a
100
+ end
101
+
102
+ opts.on("", "--fail-on-unknown-account", "Fail on unmatched transactions.") do |n|
103
+ options[:fail_on_unknown_account] = n
104
+ end
105
+
106
+ opts.on("", "--suffixed", "Append currency symbol as a suffix.") do |e|
107
+ options[:suffixed] = e
108
+ end
109
+
110
+ opts.on_tail("-h", "--help", "Show this message") do
111
+ puts opts
112
+ exit
113
+ end
114
+
115
+ opts.on_tail("--version", "Show version") do
116
+ puts VERSION
117
+ exit
118
+ end
119
+
120
+ opts.parse!(args)
121
+ end
122
+
123
+ if options[:file] == '-'
124
+ unless options[:unattended]
125
+ raise "--unattended is required to use STDIN as CSV source."
126
+ end
127
+
128
+ options[:string] = stdin.read
129
+ end
130
+
131
+ unless options[:file]
132
+ options[:file] = @@cli.ask("What CSV file should I parse? ")
133
+ unless options[:file].empty?
134
+ puts "\nYou must provide a CSV file to parse.\n"
135
+ puts parser
136
+ exit
137
+ end
138
+ end
139
+
140
+ unless options[:bank_account]
141
+ raise "Must specify --account in unattended mode" if options[:unattended]
142
+
143
+ options[:bank_account] = @@cli.ask("What is this account named in Ledger?\n") do |q|
144
+ q.readline = true
145
+ q.validate = /^.{2,}$/
146
+ q.default = "Assets:Bank:Checking"
147
+ end
148
+ end
149
+
150
+ return options
151
+ end
152
+ end
153
+ end
@@ -1,3 +1,3 @@
1
1
  module Reckon
2
- VERSION="0.6.0"
2
+ VERSION="0.7.2"
3
3
  end
@@ -0,0 +1,52 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'pp'
4
+
5
+ require 'reckon'
6
+
7
+ ledger_file = ARGV[0]
8
+ account = ARGV[1]
9
+ seed = ARGV[2] ? ARGV[2].to_i : Random.new_seed
10
+
11
+ ledger = Reckon::LedgerParser.new(File.read(ledger_file))
12
+ matcher = Reckon::CosineSimilarity.new({})
13
+
14
+ train = []
15
+ test = []
16
+
17
+ def has_account(account, entry)
18
+ entry[:accounts].map { |a| a[:name] }.include?(account)
19
+ end
20
+
21
+ entries = ledger.entries.select { |e| has_account(account, e) }
22
+
23
+ r = Random.new(seed)
24
+ entries.length.times do |i|
25
+ r.rand < 0.9 ? train << i : test << i
26
+ end
27
+
28
+ train.each do |i|
29
+ entry = entries[i]
30
+ entry[:accounts].each do |a|
31
+ matcher.add_document(
32
+ a[:name],
33
+ [entry[:desc], a[:amount]].join(" ")
34
+ )
35
+ end
36
+ end
37
+
38
+ result = [nil] * test.length
39
+ test.each do |i|
40
+ entry = entries[i]
41
+ matches = matcher.find_similar(
42
+ entry[:desc] + " " + entry[:accounts][0][:amount].to_s
43
+ )
44
+
45
+ if !matches[0] || !has_account(matches[0][:account], entry)
46
+ result[i] = [entry, matches]
47
+ end
48
+ end
49
+
50
+ # pp result.compact
51
+ puts "using #{seed} as random seed"
52
+ puts "true: #{result.count(nil)} false: #{result.count { |v| !v.nil? }}"
@@ -0,0 +1,9 @@
1
+ DEBIT,2011/12/24,"HOST 037196321563 MO 12/22SLICEHOST",($85.00)
2
+ CHECK,2010/12/24,"CHECK 2656",($20.00)
3
+ DEBIT,2009/12/24,"GITHUB 041287430274 CA 12/22GITHUB 04",($7.00)
4
+ CREDIT,2008/12/24,"Some Company vendorpymt PPD ID: 59728JSL20",$3520.00
5
+ CREDIT,2007/12/24,"Blarg BLARG REVENUE PPD ID: 00jah78563",$1558.52
6
+ DEBIT,2006/12/24,"WEBSITE-BALANCE-17DEC09 12 12/17WEBSITE-BAL",$.23
7
+ DEBIT,2005/12/24,"WEBSITE-BALANCE-10DEC09 12 12/10WEBSITE-BAL",($0.96)
8
+ CREDIT,2004/12/24,"PAYPAL TRANSFER PPD ID: PAYPALSDSL",($116.22)
9
+ CREDIT,2003/12/24,"Some Company vendorpymt PPD ID: 5KL3832735",$2105.00
@@ -0,0 +1,36 @@
1
+ 2003-12-24 CREDIT; Some Company vendorpymt PPD ID: 5KL3832735
2
+ Assets:Bank:Checking $2,105.00
3
+ Income:Unknown
4
+
5
+ 2004-12-24 CREDIT; PAYPAL TRANSFER PPD ID: PAYPALSDSL
6
+ Income:Unknown
7
+ Assets:Bank:Checking -$116.22
8
+
9
+ 2005-12-24 DEBIT; WEBSITE-BALANCE-10DEC09 12 12/10WEBSITE-BAL
10
+ Expenses:Unknown
11
+ Assets:Bank:Checking -$0.96
12
+
13
+ 2006-12-24 DEBIT; WEBSITE-BALANCE-17DEC09 12 12/17WEBSITE-BAL
14
+ Assets:Bank:Checking $0.23
15
+ Expenses:Unknown
16
+
17
+ 2007-12-24 CREDIT; Blarg BLARG REVENUE PPD ID: 00jah78563
18
+ Assets:Bank:Checking $1,558.52
19
+ Income:Unknown
20
+
21
+ 2008-12-24 CREDIT; Some Company vendorpymt PPD ID: 59728JSL20
22
+ Assets:Bank:Checking $3,520.00
23
+ Income:Unknown
24
+
25
+ 2009-12-24 DEBIT; GITHUB 041287430274 CA 12/22GITHUB 04
26
+ Expenses:Unknown
27
+ Assets:Bank:Checking -$7.00
28
+
29
+ 2010-12-24 CHECK; CHECK 2656
30
+ Expenses:Unknown
31
+ Assets:Bank:Checking -$20.00
32
+
33
+ 2011-12-24 DEBIT; HOST 037196321563 MO 12/22SLICEHOST
34
+ Expenses:Unknown
35
+ Assets:Bank:Checking -$85.00
36
+
@@ -0,0 +1 @@
1
+ -f input.csv --unattended --account Assets:Bank:Checking
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/expect -f
2
+
3
+
4
+ set timeout 7
5
+ match_max 100000
6
+ expect "What is this account named in Ledger |Assets:Bank:Checking|?\r
7
+ \[1G▽\[6n"
8
+ send -- "\[45;2R"
9
+ expect -exact "\[1G\[K\[6n"
10
+ send -- "\[45;1R"
11
+ expect "\[1G\[K\[1G\[1G"
12
+ send -- "T"
13
+ expect "\[1GT\[K\[1G\[2G"
14
+ send -- "e"
15
+ expect "\[1GTe\[K\[1G\[3G"
16
+ send -- "s"
17
+ expect "\[1GTes\[K\[1G\[4G"
18
+ send -- "t"
19
+ expect "\[1GTest\[K\[1G\[5G"
20
+ send -- ":"
21
+ expect "\[1GTest:\[K\[1G\[6G"
22
+ send -- ":"
23
+ expect "\[1GTest::\[K\[1G\[7G"
24
+ send -- "B"
25
+ expect "\[1GTest::B\[K\[1G\[8G"
26
+ send -- "a"
27
+ expect "\[1GTest::Ba\[K\[1G\[9G"
28
+ send -- "n"
29
+ expect "\[1GTest::Ban\[K\[1G\[10G"
30
+ send -- "k"
31
+ expect "\[1GTest::Bank\[K\[1G\[11G"
32
+ send -- "\r"
33
+ expect eof
@@ -0,0 +1,11 @@
1
+
2
+ Date | Amount | Description | Note |
3
+ 2003-12-24 | $2,105.00 | CREDIT; Some Company vendorpymt PPD ID: 5KL3832735 | |
4
+ 2004-12-24 | -$116.22 | CREDIT; PAYPAL TRANSFER PPD ID: PAYPALSDSL | |
5
+ 2005-12-24 | -$0.96 | DEBIT; WEBSITE-BALANCE-10DEC09 12 12/10WEBSITE-BAL | |
6
+ 2006-12-24 | $0.23 | DEBIT; WEBSITE-BALANCE-17DEC09 12 12/17WEBSITE-BAL | |
7
+ 2007-12-24 | $1,558.52 | CREDIT; Blarg BLARG REVENUE PPD ID: 00jah78563 | |
8
+ 2008-12-24 | $3,520.00 | CREDIT; Some Company vendorpymt PPD ID: 59728JSL20 | |
9
+ 2009-12-24 | -$7.00 | DEBIT; GITHUB 041287430274 CA 12/22GITHUB 04 | |
10
+ 2010-12-24 | -$20.00 | CHECK; CHECK 2656 | |
11
+ 2011-12-24 | -$85.00 | DEBIT; HOST 037196321563 MO 12/22SLICEHOST | |
@@ -0,0 +1,9 @@
1
+ DEBIT,2011/12/24,"HOST 037196321563 MO 12/22SLICEHOST",($85.00)
2
+ CHECK,2010/12/24,"CHECK 2656",($20.00)
3
+ DEBIT,2009/12/24,"GITHUB 041287430274 CA 12/22GITHUB 04",($7.00)
4
+ CREDIT,2008/12/24,"Some Company vendorpymt PPD ID: 59728JSL20",$3520.00
5
+ CREDIT,2007/12/24,"Blarg BLARG REVENUE PPD ID: 00jah78563",$1558.52
6
+ DEBIT,2006/12/24,"WEBSITE-BALANCE-17DEC09 12 12/17WEBSITE-BAL",$.23
7
+ DEBIT,2005/12/24,"WEBSITE-BALANCE-10DEC09 12 12/10WEBSITE-BAL",($0.96)
8
+ CREDIT,2004/12/24,"PAYPAL TRANSFER PPD ID: PAYPALSDSL",($116.22)
9
+ CREDIT,2003/12/24,"Some Company vendorpymt PPD ID: 5KL3832735",$2105.00
@@ -0,0 +1 @@
1
+ -f input.csv -p
@@ -0,0 +1,13 @@
1
+ 00075757575;Abbuchung Onlinebanking 654321098765 BG/000002462 BICBICBI AT654000000065432109 Thematische Universität Stadt ;22.01.2014;22.01.2014;-18,00;EUR
2
+ 00075757575;333222111333222 222111333222 OG/000002461 BICBICBIXXX AT333000000003332221 Telekom Land AG RECHNUNG 11/13 333222111333222 ;17.01.2014;17.01.2014;-9,05;EUR
3
+ 00075757575;Helm BG/000002460 10000 00007878787 Muster Dr.Beispiel-Vorname ;15.01.2014;15.01.2014;+120,00;EUR
4
+ 00075757575;Gutschrift Dauerauftrag BG/000002459 BICBICBI AT787000000007878787 Muster Dr.Beispiel-Vorname ;15.01.2014;15.01.2014;+22,00;EUR
5
+ 00075757575;Bezahlung Bankomat MC/000002458 0001 K1 06.01.UM 18.11 Bahn 8020 FSA\\Ort\10 10 2002200EUR ;07.01.2014;06.01.2014;-37,60;EUR
6
+ 00075757575;Bezahlung Bankomat 10.33 MC/000002457 0001 K1 02.01.UM 10.33 Abcdef Electronic\\Wie n\1150 0400444 ;03.01.2014;02.01.2014;-46,42;EUR
7
+ 00075757575;050055556666000 OG/000002456 BKAUATWWXXX AT555500000555566665 JKL Telekommm Stadt GmbH JKL Rechnung 555666555 ;03.01.2014;03.01.2014;-17,15;EUR
8
+ 00075757575;Abbuchung Einzugsermächtigung OG/000002455 INTERNATIONALER AUTOMOBIL-, 10000 00006655665 ;02.01.2014;02.01.2014;-17,40;EUR
9
+ 00075757575;POLIZZE 1/01/0101010 Fondsge010101010101nsverOG/000002454 BICBICBIXXX AT101000000101010101 VERSICHERUNG NAMEDERV AG POLIZZE 1/01/0101010 Fondsgebundene Lebensversicherung - fällig 01.01. 2014 Folg eprämie ;02.01.2014;02.01.2014;-31,71;EUR
10
+ 00075757575;POLIZZE 1/01/0101012 Rentenv010101010102- fälOG/000002453 BICBICBIXXX AT101000000101010102 VERSICHERUNG NAMEDERV AG POLIZZE 1/01/0101012 Rentenversicherung - fällig 01.01.20 14 Folgeprämi e ;02.01.2014;02.01.2014;-32,45;EUR
11
+ 00075757575;Anlass VD/000002452 BKAUATWWBRN AT808800080880880880 Dipl.Ing.Dr. Berta Beispiel ;02.01.2014;02.01.2014;+61,90;EUR
12
+ 00075757575;Abbuchung Onlinebanking 000009999999 BG/000002451 BICBICBI AT099000000009999999 Asdfjklöasdf Asdfjklöasdfjklöasdf ;02.01.2014;02.01.2014;-104,69;EUR
13
+ 00075757575;Abbuchung Onlinebanking FE/000002450 AT556600055665566556 CD Stadt Efghij Club Dipl.Ing. Max Muster M005566 - Mitgliedsbeitrag 2014 ;02.01.2014;02.01.2014;-39,00;EUR
@@ -0,0 +1,52 @@
1
+ 2014-01-02 00075757575; Anlass VD/000002452 BKAUATWWBRN AT808800080880880880 Dipl.Ing.Dr. Berta Beispiel; 02.01.2014; EUR
2
+ Assets:Bank:Checking $61.90
3
+ Income:Unknown
4
+
5
+ 2014-01-02 00075757575; Abbuchung Einzugsermächtigung OG/000002455 INTERNATIONALER AUTOMOBIL-, 10000 00006655665; 02.01.2014; EUR
6
+ Income:Unknown
7
+ Assets:Bank:Checking -$17.40
8
+
9
+ 2014-01-02 00075757575; POLIZZE 1/01/0101010 Fondsge010101010101nsverOG/000002454 BICBICBIXXX AT101000000101010101 VERSICHERUNG NAMEDERV AG POLIZZE 1/01/0101010 Fondsgebundene Lebensversicherung - fällig 01.01. 2014 Folg eprämie; 02.01.2014; EUR
10
+ Income:Unknown
11
+ Assets:Bank:Checking -$31.71
12
+
13
+ 2014-01-02 00075757575; POLIZZE 1/01/0101012 Rentenv010101010102- fälOG/000002453 BICBICBIXXX AT101000000101010102 VERSICHERUNG NAMEDERV AG POLIZZE 1/01/0101012 Rentenversicherung - fällig 01.01.20 14 Folgeprämi e; 02.01.2014; EUR
14
+ Income:Unknown
15
+ Assets:Bank:Checking -$32.45
16
+
17
+ 2014-01-02 00075757575; Abbuchung Onlinebanking FE/000002450 AT556600055665566556 CD Stadt Efghij Club Dipl.Ing. Max Muster M005566 - Mitgliedsbeitrag 2014; 02.01.2014; EUR
18
+ Income:Unknown
19
+ Assets:Bank:Checking -$39.00
20
+
21
+ 2014-01-02 00075757575; Abbuchung Onlinebanking 000009999999 BG/000002451 BICBICBI AT099000000009999999 Asdfjklöasdf Asdfjklöasdfjklöasdf; 02.01.2014; EUR
22
+ Income:Unknown
23
+ Assets:Bank:Checking -$104.69
24
+
25
+ 2014-01-03 00075757575; 050055556666000 OG/000002456 BKAUATWWXXX AT555500000555566665 JKL Telekommm Stadt GmbH JKL Rechnung 555666555; 03.01.2014; EUR
26
+ Income:Unknown
27
+ Assets:Bank:Checking -$17.15
28
+
29
+ 2014-01-03 00075757575; Bezahlung Bankomat 10.33 MC/000002457 0001 K1 02.01.UM 10.33 Abcdef Electronic\\Wie n\1150 0400444; 02.01.2014; EUR
30
+ Income:Unknown
31
+ Assets:Bank:Checking -$46.42
32
+
33
+ 2014-01-07 00075757575; Bezahlung Bankomat MC/000002458 0001 K1 06.01.UM 18.11 Bahn 8020 FSA\\Ort\10 10 2002200EUR; 06.01.2014; EUR
34
+ Income:Unknown
35
+ Assets:Bank:Checking -$37.60
36
+
37
+ 2014-01-15 00075757575; Helm BG/000002460 10000 00007878787 Muster Dr.Beispiel-Vorname; 15.01.2014; EUR
38
+ Assets:Bank:Checking $120.00
39
+ Income:Unknown
40
+
41
+ 2014-01-15 00075757575; Gutschrift Dauerauftrag BG/000002459 BICBICBI AT787000000007878787 Muster Dr.Beispiel-Vorname; 15.01.2014; EUR
42
+ Assets:Bank:Checking $22.00
43
+ Income:Unknown
44
+
45
+ 2014-01-17 00075757575; 333222111333222 222111333222 OG/000002461 BICBICBIXXX AT333000000003332221 Telekom Land AG RECHNUNG 11/13 333222111333222; 17.01.2014; EUR
46
+ Income:Unknown
47
+ Assets:Bank:Checking -$9.05
48
+
49
+ 2014-01-22 00075757575; Abbuchung Onlinebanking 654321098765 BG/000002462 BICBICBI AT654000000065432109 Thematische Universität Stadt; 22.01.2014; EUR
50
+ Income:Unknown
51
+ Assets:Bank:Checking -$18.00
52
+
@@ -0,0 +1,2 @@
1
+ -f input.csv --unattended --account Assets:Bank:Checking \
2
+ --comma-separates-cents --csv-separator ';'
@@ -0,0 +1,3 @@
1
+ "Date","Time","TimeZone","Name","Type","Status","Currency","Gross","Fee","Net","From Email Address","To Email Address","Transaction ID","Shipping Address","Address Status","Item Title","Item ID","Shipping and Handling Amount","Insurance Amount","Sales Tax","Option 1 Name","Option 1 Value","Option 2 Name","Option 2 Value","Reference Txn ID","Invoice Number","Custom Number","Quantity","Receipt ID","Balance","Address Line 1","Address Line 2/District/Neighborhood","Town/City","State/Province/Region/County/Territory/Prefecture/Republic","Zip/Postal Code","Country","Contact Phone Number","Subject","Note","Country Code","Balance Impact"
2
+ "12/27/2019","19:33:49","PST","Humble Bundle, Inc.","Express Checkout Payment","Completed","USD","-7.49","0.00","-7.49","test@gmail.com","test@humblebundle.com","","","Non-Confirmed","Purchase ","","0.00","","0.00","","","","","","","","1","","705.37","","","","","","","","","","","Debit"
3
+
@@ -0,0 +1,4 @@
1
+ 2019-12-27 Humble Bundle, Inc.; Express Checkout Payment; Purchase
2
+ Expenses:Unknown
3
+ Assets:Bank:Checking -$7.49
4
+
@@ -0,0 +1,3 @@
1
+ -f input.csv --unattended --account Assets:Bank:Checking \
2
+ --contains-header 1 \
3
+ --ignore-columns 2,3,6,7,8,9,11,12,13,14,15,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,40,41
@@ -0,0 +1,12 @@
1
+ 2014-02-10,2014-02-10,Interest,ISHARES S&P/TSX CAPPED REIT IN,XRE,179,,,12.55,CAD
2
+ 2014-01-16,2014-01-16,Reinvestment,ISHARES GLOBAL AGRICULTURE IND,COW,3,,,-81.57,CAD
3
+ 2014-01-16,2014-01-16,Contribution,CONTRIBUTION,,,,,600.00,CAD
4
+ 2014-01-16,2014-01-16,Interest,ISHARES GLOBAL AGRICULTURE IND,COW,200,,,87.05,CAD
5
+ 2014-01-14,2014-01-14,Reinvestment,BMO NASDAQ 100 EQTY HEDGED TO,ZQQ,2,,,-54.72,CAD
6
+ 2014-01-07,2014-01-10,Sell,BMO NASDAQ 100 EQTY HEDGED TO,ZQQ,-300,27.44,CDN,8222.05,CAD
7
+ 2014-01-07,2014-01-07,Interest,BMO S&P/TSX EQUAL WEIGHT BKS I,ZEB,250,,,14.00,CAD
8
+ 2013-07-02,2013-07-02,Dividend,SELECT SECTOR SPDR FD SHS BEN,XLB,130,,,38.70,USD
9
+ 2013-06-27,2013-06-27,Dividend,ICICI BK SPONSORED ADR,IBN,100,,,66.70,USD
10
+ 2013-06-19,2013-06-24,Buy,ISHARES S&P/TSX CAPPED REIT IN,XRE,300,15.90,CDN,-4779.95,CAD
11
+ 2013-06-17,2013-06-17,Contribution,CONTRIBUTION,,,,,600.00,CAD
12
+ 2013-05-22,2013-05-22,Dividend,NATBK,NA,70,,,58.10,CAD
@@ -0,0 +1,48 @@
1
+ 2013-05-22 2013-05-22; Dividend; NATBK; NA; 70; CAD
2
+ Assets:Bank:Checking $58.10
3
+ Income:Unknown
4
+
5
+ 2013-06-17 2013-06-17; Contribution; CONTRIBUTION; CAD
6
+ Assets:Bank:Checking $600.00
7
+ Income:Unknown
8
+
9
+ 2013-06-19 2013-06-24; Buy; ISHARES S&P/TSX CAPPED REIT IN; XRE; 300; 15.90; CDN; CAD
10
+ Income:Unknown
11
+ Assets:Bank:Checking -$4,779.95
12
+
13
+ 2013-06-27 2013-06-27; Dividend; ICICI BK SPONSORED ADR; IBN; 100; USD
14
+ Assets:Bank:Checking $66.70
15
+ Income:Unknown
16
+
17
+ 2013-07-02 2013-07-02; Dividend; SELECT SECTOR SPDR FD SHS BEN; XLB; 130; USD
18
+ Assets:Bank:Checking $38.70
19
+ Income:Unknown
20
+
21
+ 2014-01-07 2014-01-10; Sell; BMO NASDAQ 100 EQTY HEDGED TO; ZQQ; -300; 27.44; CDN; CAD
22
+ Assets:Bank:Checking $8,222.05
23
+ Income:Unknown
24
+
25
+ 2014-01-07 2014-01-07; Interest; BMO S&P/TSX EQUAL WEIGHT BKS I; ZEB; 250; CAD
26
+ Assets:Bank:Checking $14.00
27
+ Income:Unknown
28
+
29
+ 2014-01-14 2014-01-14; Reinvestment; BMO NASDAQ 100 EQTY HEDGED TO; ZQQ; 2; CAD
30
+ Income:Unknown
31
+ Assets:Bank:Checking -$54.72
32
+
33
+ 2014-01-16 2014-01-16; Contribution; CONTRIBUTION; CAD
34
+ Assets:Bank:Checking $600.00
35
+ Income:Unknown
36
+
37
+ 2014-01-16 2014-01-16; Interest; ISHARES GLOBAL AGRICULTURE IND; COW; 200; CAD
38
+ Assets:Bank:Checking $87.05
39
+ Income:Unknown
40
+
41
+ 2014-01-16 2014-01-16; Reinvestment; ISHARES GLOBAL AGRICULTURE IND; COW; 3; CAD
42
+ Income:Unknown
43
+ Assets:Bank:Checking -$81.57
44
+
45
+ 2014-02-10 2014-02-10; Interest; ISHARES S&P/TSX CAPPED REIT IN; XRE; 179; CAD
46
+ Assets:Bank:Checking $12.55
47
+ Income:Unknown
48
+