Clarified input file writeup.
This commit is contained in:
parent
2a8080e0ad
commit
e28fc5b3be
|
@ -4,7 +4,7 @@ The key to understanding how to use this software is to understand the input fil
|
||||||
This document aims to tell the user all they need to know.
|
This document aims to tell the user all they need to know.
|
||||||
|
|
||||||
Note: the input file is needed in the *current* version of the software.
|
Note: the input file is needed in the *current* version of the software.
|
||||||
Future versions may store the transactional activity in a database or similar file.
|
Future versions may store the transactional activity in a database or similar file (though there are no current plans for this).
|
||||||
At that time, it may be that additional transactions are entered directly into the software.
|
At that time, it may be that additional transactions are entered directly into the software.
|
||||||
For now, however, additional transactions must be added to the input file,
|
For now, however, additional transactions must be added to the input file,
|
||||||
and then the input file is imported ***in full*** every time the software is run.
|
and then the input file is imported ***in full*** every time the software is run.
|
||||||
|
@ -12,8 +12,7 @@ and then the input file is imported ***in full*** every time the software is run
|
||||||
## Preface
|
## Preface
|
||||||
|
|
||||||
`cryptools` is a command-line utility that does not store data.
|
`cryptools` is a command-line utility that does not store data.
|
||||||
It is not a bookkeeping tool.
|
It is not a full-featured bookkeeping tool that stores your transactions in a persistent ledger.
|
||||||
It does not store your transactions in a persistent ledger.
|
|
||||||
You cannot open the software later, load the ledger, and enter new transactions.
|
You cannot open the software later, load the ledger, and enter new transactions.
|
||||||
|
|
||||||
Rather, you must maintain the input file outside of `cryptools`.
|
Rather, you must maintain the input file outside of `cryptools`.
|
||||||
|
@ -22,8 +21,8 @@ Once you have added new transactions to the input file and wish to view updated
|
||||||
you must run the software again and import the recently-updated input file.
|
you must run the software again and import the recently-updated input file.
|
||||||
New reports will be generated at that time.
|
New reports will be generated at that time.
|
||||||
|
|
||||||
When `cryptools` runs, it imports the input file, it processes the transactions, and it prints reports.
|
When `cryptools` runs, it imports the input file, processes the transactions, and prints reports (all, or those you choose).
|
||||||
The transaction reports reflect income, expenses, realized gains, and realized losses.
|
The transaction reports reflect income, expenses, realized gains, and realized losses (and holding period).
|
||||||
At a minimum, the account reports reflect account balances and cost basis of holdings.
|
At a minimum, the account reports reflect account balances and cost basis of holdings.
|
||||||
Some account reports reflect *all* movements in *every* lot in *every* account, including tracking of cost basis and more.
|
Some account reports reflect *all* movements in *every* lot in *every* account, including tracking of cost basis and more.
|
||||||
|
|
||||||
|
@ -32,7 +31,7 @@ Once the software has run, you rely on the reports to tell you everything you ne
|
||||||
|
|
||||||
### Why should I go to the trouble?
|
### Why should I go to the trouble?
|
||||||
|
|
||||||
Think about this: exchanges have **no way** to track the cost basis of their users' holdings,
|
Think about this: cryptocurrency exchanges have **no way** to track the cost basis of their users' holdings,
|
||||||
nor can they verify how the funds they disburse are used.
|
nor can they verify how the funds they disburse are used.
|
||||||
At most, an exchange will be able to provide the gross value of their transactions (what `cryptools` calls `proceeds`).
|
At most, an exchange will be able to provide the gross value of their transactions (what `cryptools` calls `proceeds`).
|
||||||
If exchanges provide a user's trading activity to the IRS, for example, gross value is all they can provide.
|
If exchanges provide a user's trading activity to the IRS, for example, gross value is all they can provide.
|
||||||
|
@ -56,7 +55,7 @@ Even so, preparing and maintaining the input file is **not** very complicated.
|
||||||
There are a small, limited number of rules to follow, and that's it.
|
There are a small, limited number of rules to follow, and that's it.
|
||||||
The truth is that the input file is simple to maintain once it is brought current and kept current.
|
The truth is that the input file is simple to maintain once it is brought current and kept current.
|
||||||
|
|
||||||
#### Rules of the input file
|
### Rules of the input file
|
||||||
|
|
||||||
The rules for successfully preparing and maintaining the input file can generally be summarized as follows:
|
The rules for successfully preparing and maintaining the input file can generally be summarized as follows:
|
||||||
|
|
||||||
|
@ -78,23 +77,23 @@ Keep an eye out for a related project that creates input file pro formas from ex
|
||||||
In order to be successfully imported, the CSV input file **must** be in a prescribed form that effectively looks like this:
|
In order to be successfully imported, the CSV input file **must** be in a prescribed form that effectively looks like this:
|
||||||
|
|
||||||
|
|
||||||
|txDate |proceeds|memo |1 |2 |3 |4 |5 |
|
|txDate |proceeds|memo |1 |2 |3 |4 |5 |
|
||||||
|-------|--------|--------|------|--------|-------|--------|------------|
|
|-------|--------|------------|------|--------|-------|--------|------------|
|
||||||
| | | |Bank |Exchange|Wallet |Exchange|Simplewallet|
|
| | | |Bank |Exchange|Wallet |Exchange|Simplewallet|
|
||||||
| | | |USD |BTC |BTC |XMR |XMR |
|
| | | | USD | BTC | BTC | XMR | XMR |
|
||||||
| | | |non |non |non |non |non |
|
| | | | non | non | non | non | non |
|
||||||
|2/1/16 |0 |FIRST |-220 |0.25 | | | |
|
|2/1/16 |0 |Bought | -220| 0.25| | | |
|
||||||
|3/1/16 |250 |SECOND | |-0.25 | |180 | |
|
|3/1/16 |250 |Traded | | -0.25| | 180| |
|
||||||
|4/1/16 |0 |THIRD | | | |-90 |90 |
|
|4/1/16 |0 |Transferred | | | | -90| 90|
|
||||||
|5/1/16 |0 |FOURTH | | | |90 |-90 |
|
|5/1/16 |0 |Transferred | | | | 90| -90|
|
||||||
|5/2/16 |160 |FIFTH | |0.3 | |-90 | |
|
|5/2/16 |160 |Traded | | 0.3| | -90| |
|
||||||
|6/1/16 |0 |SIXTH | |-0.3 |0.3 | | |
|
|6/1/16 |0 |Transferred | | -0.3| 0.3| | |
|
||||||
|7/1/16 |200 |SEVENTH | |0.7 | |-90 | |
|
|7/1/16 |200 |Traded | | 0.7| | -90| |
|
||||||
|8/1/16 |0 |EIGHTH | |0.3 |-0.3 | | |
|
|8/1/16 |0 |Transferred | | 0.3| -0.3| | |
|
||||||
|9/1/16 |400 |NINTH | |-0.5 | |200 | |
|
|9/1/16 |400 |Traded | | -0.5| | 200| |
|
||||||
|10/1/16|900 |TENTH | |1 | |-200 | |
|
|10/1/16|900 |Traded | | 1| | -200| |
|
||||||
|11/1/16|0 |ELEVENTH| |-1.5 |1.5 | | |
|
|11/1/16|0 |Transferred | | -1.5| 1.5| | |
|
||||||
|12/1/16|2000 |TWELFTH*| | |-1.5 | |400 |
|
|12/1/16|2000 |Traded* | | | -1.5| | 400|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -148,8 +147,8 @@ There must be a value associated with *either* one *or* two accounts in each tra
|
||||||
depending on the type of transaction, i.e.:
|
depending on the type of transaction, i.e.:
|
||||||
* a deposit will reflect a positive value posting to the account where money was deposited
|
* a deposit will reflect a positive value posting to the account where money was deposited
|
||||||
* a payment will reflect a negative value posting to the account from where the money was spent
|
* a payment will reflect a negative value posting to the account from where the money was spent
|
||||||
* an exchange would reflect a negative value in one account and a positive value in another
|
* an exchange would reflect a negative value in one account and a positive value in another (differing `ticker`s)
|
||||||
* a transfer (toSelf) would also reflect a negative value in one account and a positive value in another
|
* a transfer (toSelf) would also reflect a negative value in one account and a positive value in another (same `ticker`)
|
||||||
|
|
||||||
(An exchange transaction will trigger a gain or loss, whereas a toSelf transfer would not.)
|
(An exchange transaction will trigger a gain or loss, whereas a toSelf transfer would not.)
|
||||||
|
|
||||||
|
@ -162,16 +161,18 @@ The 0.25 represents the increase in the BTC balance, so 0.25 is used.
|
||||||
|
|
||||||
The same logic applies to the next transaction.
|
The same logic applies to the next transaction.
|
||||||
0.25 BTC was used to buy XMR, and the XMR balance increased by 180 as a result.
|
0.25 BTC was used to buy XMR, and the XMR balance increased by 180 as a result.
|
||||||
But the user would have paid a transaction fee, so the amount paid for was really, say, 180.002.
|
But the user would have paid a transaction fee, so the exchange rate suggested the amount paid for was really, say, 180.002.
|
||||||
In fact, the user would literally have placed an order for 180.002 at a price where they'd pay 0.25.
|
In fact, the user would literally have placed an order for 180.002 at a price where they'd pay 0.25.
|
||||||
It doesn't matter, though, that the order was placed for 180.002
|
Or, if the fee is paid in BTC, the order might have been .2498 BTC for 180 XMR, but the total cost is .25 BTC because of a .0002 BTC fee.
|
||||||
because this software only cares about what you receive in your wallet as a result of the transaction.
|
The details regarding the fee are irrelevant, however, when it comes to entering the trade in the input file
|
||||||
|
because this software only cares about what you pay and what you receive in exchange as a result of the transaction.
|
||||||
|
|
||||||
Looking at the third and fourth transactions, the same amount was withdrawn from one account and deposited into another account.
|
Looking at the third and fourth transactions, the same amount was withdrawn from one account and deposited into another account.
|
||||||
This is an unrealistic scenario because network transaction fees and exchange transfer fees are ignored.
|
This may be an unrealistic scenario because network transaction fees and exchange transfer fees are ignored.
|
||||||
There are exchanges who will cover the transfer fee, but it's rare.
|
There are exchanges who will cover the transfer fee, but it's not common.
|
||||||
And it certainly is unrealistic for the user to send from their personal wallet (in the fourth transaction) with no network fee.
|
It certainly is unrealistic for the user to send from their personal wallet (in the fourth transaction) with no network fee.
|
||||||
These transactions are oversimplified on purpose.
|
These transactions are oversimplified on purpose.
|
||||||
|
If you transfer 0.1 BTC from one account to another, and the other account receives 0.0999, then that's what you record.
|
||||||
|
|
||||||
###### Margin accounts
|
###### Margin accounts
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue