I'm trying to model the following transaction: an exchange of USDT for TOKEN (conceptually a "buy"), where the disposal of USDT can register PnL (wrt USD), but also where the exchange charges a fee in either USDT or TOKEN. The latter bit means the fee is a disposal of USDT or TOKEN (with corresponding additional PnL) and a matching USD leg in the Fees or Commissions account.
I tried modeling it this way which seemed most explicit:
2020-01-01 * "Trade USDT for TOKEN"
Assets:Exchange:TOKEN 200.00 TOKEN {5.00 USD}
Assets:Exchange:USDT -1010.1010101 USDT {} @ 0.99 USD
Assets:Exchange:TOKEN -1.00 TOKEN {} @ 5.00
Expenses:Financial:Fees 5.00 USD
As a standalone or initial transaction, this doesn't book ("Too many missing numbers for currency group 'USD'"). I guess it's because the -1.00 TOKEN disposal can't match against an acquisition in the same transaction (since here there is no pre existing TOKEN balance). There are other slight variants of this when I sell, or have preexisting balances. I could instead:
- Split the two fees legs into a separate subsequent transaction
- Internally collapse and net out the legs on Assets:Exchange:TOKEN
I don't really like either of these a lot because they obfuscate what's "really" going on, but they would work. Any other suggestions on clear and correct ways to book this?
thanks,
eric