>Shares are only removed if both MON and VTC are paid at once, otherwise they are marked as paid. It sounds bad to "remove" something, and by moving them to paid table they aren't "removed", but "marked" as paid.

Ok.

>As far as the query goes, it will ignore those rows anyway by filtering them out as unpaid, so at some point they will have to be manually moved to the paid table.

Mhm. It's not really a priority issue anyway, it should be fixed in a refactoring. But it might be an idea to just move fully paid shares to the paidshares table (issue here is that we don't know transaction ids, so would have to use dummy values unless the db is updated to keep track of txids for partially paid shares).