Stonqs
All guides

Getting your data in · Guide 5 of 10

Fill the gaps after an import

8 min read

A broker's export holds only that broker's half of the story. Four gaps follow: no deposits, a transfer read as a withdrawal, shares carried in at zero cost, a sale with no purchase. Each has a symptom on screen and a fix in the app.

The portfolio is in, the holdings look right, and the return is a dash. Or one position counts its whole value as profit. Or a red notice says an instrument is sold without having been bought. None of this is a bug in the import: each export knows its own account and nothing else. The deposits that paid for the trades often live in a bank statement, and shares moved in from another broker arrive as a quantity with no price.

The dash surprises people most. The time-weighted return does not go blank because of the period you picked but because of the ledger: it measures only the stretches in which the portfolio had capital at work, and a ledger of trades with no deposits has none.

Before you start

You have imported at least one file (a broker’s CSV or an Interactive Brokers Flex Query). Keep the broker’s statement and your bank statement open: they are the record, and Stonqs only adds up what you give it.

Find which gap you have

What you see The gap Go to
Time-weighted return reads a dash on Performance, other figures are fine Deposits that paid for the trades are missing Add the deposits
Money paid in and money paid out in the same week, and the return jumps A move between two of your accounts is read as leaving and returning Join a move between two accounts
A position shows its whole value as profit Shares arrived with no price, so their cost is zero Give carried-in shares a cost
A red notice above every screen: sold without having been bought A purchase or an incoming transfer is not in the ledger Add the missing purchase

Add the deposits

Open Transactions and choose New transaction. Set Kind to Deposit, then the Date, the cash Account the broker settles on, the Amount and the Transaction currency, and save. Repeat for each payment in. Or import the bank or wallet statement that holds them: at the Parsing step, choose “A bank or wallet statement” and everything lands on one cash account.

Back on Performance, the time-weighted return returns as soon as the portfolio had capital at work. A deposit on the first day of the window counts as money paid in, not as an opening balance (how the window opens).

Use the real dates. The money-weighted return measures what the money earned given when it was put in, so a deposit entered with the wrong date moves it. For the difference between the two returns see why your two returns disagree.

Join a move between two accounts

Two brokers export separately, so a portfolio carried from one to the other arrives as a withdrawal in one file and a deposit in the other. Every return figure is measured against money crossing the portfolio boundary, and here it crosses twice for one payment.

Right after an import is written, the last step lists a panel titled “Money that left one account and arrived at another”. Each row is a pair, with both accounts, the dates and the amount. If it is one move, press One move: the app then stops counting it as money leaving and coming back. If they are two real payments, leave the pair alone.

The app proposes a pair when both operations are cash deposits, withdrawals or cash transfers, in the same currency, on different accounts, up to five days apart, with amounts within 1 % of the larger (the matching code). The tolerance is there because an intermediary bank can take a fee out of the money in flight; a row whose amounts differ carries an “arrived” badge with the second amount. Nothing is joined automatically. Matching amounts do not prove that one payment is the other, and joining the wrong pair erases a real deposit and a real withdrawal at once.

Give carried-in shares a cost

Shares moved in from another broker arrive as a quantity with no price. Written as they stand, the holding enters at a cost of zero and the whole position reads as profit. The import warns about this before the write: “N of SYMBOL move with no value given. The lot enters at a cost of zero and the whole holding will read as profit”.

If you saw the warning, open the row in the preview and type the price paid, or the total. If you saw it afterwards, open Transactions, find the row (kind Securities received or Securities transfer in), edit it from the row’s menu and fill Price per unit. Take the cost from your old broker’s statement. Which date and cost count for tax is a question for your tax adviser or the tax authority.

Importing the same file again after the edit is safe: the app also compares day, account, instrument and quantity, marks the edited row as already stored and leaves it out unless you switch it on.

Add the missing purchase

A sale larger than everything the ledger held at that moment has no lots to consume. The app does not stop. A red notice names the instrument and the first sale, and until the hole is filled its figures are estimates: the uncovered part is treated as arriving on the day of the sale at the sale’s own price, so its realised result is nil except for the sale’s costs (cost basis and lots). The rest of the portfolio is unaffected.

Press Show operations on the notice, then add what is missing: New transaction with Kind Buy, or Securities received for a delivery, with the real date, quantity and price. Crypto sent from another wallet and shares moved from another broker are the usual causes. The notice disappears when the history covers the sale.

If the missing purchase is in an older file, import that file too. If you marked an operation wording as skipped on the Parsing step, check it first: a receipt may be hiding under it. Then import the file again with that row mapped.

If something goes wrong

The return is still a dash after adding deposits. The account picker applies to every figure on Performance, so deposits on an account outside the picker do not count. Pick the account, or all accounts.

The pair list is empty although you know there is a move. The amounts differ by more than 1 %, the dates by more than five days, the currencies differ, or one leg is already joined. Only cash deposits, withdrawals and cash transfers are paired, never trades. Add or edit the operations so they match, or leave them as a withdrawal and a deposit, which is correct when the money really did leave.

The notice about a sale stays after adding a purchase. The purchase has to be dated no later than the sale and, together with earlier ones, cover its whole quantity. A later date, or too small a quantity, leaves part of the sale uncovered.

Figures here come from what you imported. Market data comes from free third-party sources without warranty, and your broker’s own statements are what counts.

Sources