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.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +50 -0
- data/.gitignore +3 -0
- data/.ruby-version +1 -1
- data/CHANGELOG.md +75 -7
- data/Gemfile.lock +1 -1
- data/README.md +85 -24
- data/Rakefile +17 -1
- data/bin/build-new-version.sh +26 -0
- data/bin/reckon +9 -1
- data/lib/reckon.rb +1 -0
- data/lib/reckon/app.rb +18 -141
- data/lib/reckon/cosine_similarity.rb +67 -62
- data/lib/reckon/csv_parser.rb +2 -7
- data/lib/reckon/date_column.rb +10 -0
- data/lib/reckon/money.rb +59 -52
- data/lib/reckon/options.rb +153 -0
- data/lib/reckon/version.rb +1 -1
- data/spec/cosine_training_and_test.rb +52 -0
- data/spec/integration/another_bank_example/input.csv +9 -0
- data/spec/integration/another_bank_example/output.ledger +36 -0
- data/spec/integration/another_bank_example/test_args +1 -0
- data/spec/integration/ask_for_account/cli_input.exp +33 -0
- data/spec/integration/ask_for_account/expected_output +11 -0
- data/spec/integration/ask_for_account/input.csv +9 -0
- data/spec/integration/ask_for_account/test_args +1 -0
- data/spec/integration/austrian_example/input.csv +13 -0
- data/spec/integration/austrian_example/output.ledger +52 -0
- data/spec/integration/austrian_example/test_args +2 -0
- data/spec/integration/bom_utf8_file/input.csv +3 -0
- data/spec/integration/bom_utf8_file/output.ledger +4 -0
- data/spec/integration/bom_utf8_file/test_args +3 -0
- data/spec/integration/broker_canada_example/input.csv +12 -0
- data/spec/integration/broker_canada_example/output.ledger +48 -0
- data/spec/integration/broker_canada_example/test_args +1 -0
- data/spec/integration/chase/account_tokens_and_regex/output.ledger +36 -0
- data/spec/integration/chase/account_tokens_and_regex/test_args +2 -0
- data/spec/integration/chase/account_tokens_and_regex/tokens.yml +16 -0
- data/spec/integration/chase/default_account_names/output.ledger +36 -0
- data/spec/integration/chase/default_account_names/test_args +3 -0
- data/spec/integration/chase/input.csv +9 -0
- data/spec/integration/chase/learn_from_existing/learn.ledger +7 -0
- data/spec/integration/chase/learn_from_existing/output.ledger +36 -0
- data/spec/integration/chase/learn_from_existing/test_args +1 -0
- data/spec/integration/chase/simple/output.ledger +36 -0
- data/spec/integration/chase/simple/test_args +1 -0
- data/spec/integration/danish_kroner_nordea_example/input.csv +6 -0
- data/spec/integration/danish_kroner_nordea_example/output.ledger +24 -0
- data/spec/integration/danish_kroner_nordea_example/test_args +1 -0
- data/spec/integration/english_date_example/input.csv +3 -0
- data/spec/integration/english_date_example/output.ledger +12 -0
- data/spec/integration/english_date_example/test_args +1 -0
- data/spec/integration/extratofake/input.csv +24 -0
- data/spec/integration/extratofake/output.ledger +92 -0
- data/spec/integration/extratofake/test_args +1 -0
- data/spec/integration/french_example/input.csv +9 -0
- data/spec/integration/french_example/output.ledger +36 -0
- data/spec/integration/french_example/test_args +2 -0
- data/spec/integration/german_date_example/input.csv +3 -0
- data/spec/integration/german_date_example/output.ledger +12 -0
- data/spec/integration/german_date_example/test_args +1 -0
- data/spec/integration/harder_date_example/input.csv +5 -0
- data/spec/integration/harder_date_example/output.ledger +20 -0
- data/spec/integration/harder_date_example/test_args +1 -0
- data/spec/integration/ing/input.csv +3 -0
- data/spec/integration/ing/output.ledger +12 -0
- data/spec/integration/ing/test_args +1 -0
- data/spec/integration/intuit_mint_example/input.csv +7 -0
- data/spec/integration/intuit_mint_example/output.ledger +28 -0
- data/spec/integration/intuit_mint_example/test_args +1 -0
- data/spec/integration/invalid_header_example/input.csv +6 -0
- data/spec/integration/invalid_header_example/output.ledger +8 -0
- data/spec/integration/invalid_header_example/test_args +1 -0
- data/spec/integration/inversed_credit_card/input.csv +16 -0
- data/spec/integration/inversed_credit_card/output.ledger +64 -0
- data/spec/integration/inversed_credit_card/test_args +1 -0
- data/spec/integration/nationwide/input.csv +4 -0
- data/spec/integration/nationwide/output.ledger +16 -0
- data/spec/integration/nationwide/test_args +1 -0
- data/spec/integration/regression/issue_51_account_tokens/input.csv +8 -0
- data/spec/integration/regression/issue_51_account_tokens/output.ledger +32 -0
- data/spec/integration/regression/issue_51_account_tokens/test_args +4 -0
- data/spec/integration/regression/issue_51_account_tokens/tokens.yml +9 -0
- data/spec/integration/regression/issue_64_date_column/input.csv +3 -0
- data/spec/integration/regression/issue_64_date_column/output.ledger +8 -0
- data/spec/integration/regression/issue_64_date_column/test_args +1 -0
- data/spec/integration/regression/issue_73_account_token_matching/input.csv +2 -0
- data/spec/integration/regression/issue_73_account_token_matching/output.ledger +4 -0
- data/spec/integration/regression/issue_73_account_token_matching/test_args +6 -0
- data/spec/integration/regression/issue_73_account_token_matching/tokens.yml +8 -0
- data/spec/integration/regression/issue_85_date_example/input.csv +2 -0
- data/spec/integration/regression/issue_85_date_example/output.ledger +8 -0
- data/spec/integration/regression/issue_85_date_example/test_args +1 -0
- data/spec/integration/spanish_date_example/input.csv +3 -0
- data/spec/integration/spanish_date_example/output.ledger +12 -0
- data/spec/integration/spanish_date_example/test_args +1 -0
- data/spec/integration/suntrust/input.csv +7 -0
- data/spec/integration/suntrust/output.ledger +28 -0
- data/spec/integration/suntrust/test_args +1 -0
- data/spec/integration/test.sh +123 -0
- data/spec/integration/test_money_column/input.csv +3 -0
- data/spec/integration/test_money_column/output.ledger +8 -0
- data/spec/integration/test_money_column/test_args +1 -0
- data/spec/integration/two_money_columns/input.csv +5 -0
- data/spec/integration/two_money_columns/output.ledger +20 -0
- data/spec/integration/two_money_columns/test_args +1 -0
- data/spec/integration/yyyymmdd_date_example/input.csv +1 -0
- data/spec/integration/yyyymmdd_date_example/output.ledger +4 -0
- data/spec/integration/yyyymmdd_date_example/test_args +1 -0
- data/spec/reckon/app_spec.rb +24 -6
- data/spec/reckon/csv_parser_spec.rb +3 -3
- data/spec/reckon/money_column_spec.rb +24 -24
- data/spec/reckon/money_spec.rb +15 -34
- data/spec/reckon/options_spec.rb +17 -0
- data/spec/spec_helper.rb +6 -1
- metadata +102 -7
- 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
|
data/lib/reckon/version.rb
CHANGED
|
@@ -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,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,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
|
+
|