I'm entering journal entries for hledger for a 401k account and have questions about how it should work when an account goes through an exchange (I'm not sure what it is exactly; I guess the finance firm is doing internal shuffling of accounts).

```
Bucket2 Exchanges       $10000.00   995.000
Bucket1 Realized G/L    $100.00 0.000
Bucket1 Exchanges       -$10000.00  -1000.000

```

Each line has the bucket (account) associated with the transaction, the type of transaction, the USD amount it is worth, and the number of shares associated with it. I see shares being cashed out from Bucket1 to buy shares of Bucket2 (which have a slightly different cost). There is also the "Realized G/L" transaction which I assume is gains and losses from the transaction. There are no shares associated with it.

All of these occurred on the same day, so I'd like to track it as 2 transactions: one for the exchange and another for the Realized G/L transaction.

Here's what I have right now:

```
2019-13-31 * 401k exchange
    acct:401k  995.000 "Bucket2" @@ $10000.00
    acct:401k  -1000.000 "Bucket1" @@ $10000.00

2019-13-31 * Realized G/L
    acct:401k  $100.00
    acct:unknown  ; What should this be?

; Assert that the old account is empty.
2019-13-31 * Post-exchange assertion
    acct:401k  = .00 "Bucket1"

```

However, I have a few questions:

* The assertion fails because the shares taken out of Bucket1 don't match those that I have tracked going *into* the bucket. I don't see any transactions I'm missing in the transaction history; where could they have come from? The price per share in the Exchange does not match the number of missing shares based on the gains and losses amount, so this is not where the missing data comes from.
* Is the G/L transaction merely informational? Either way, how should I track it?