When constructing a replicating portfolio for a short position in a call option under Black Scholes, I am not able to pinpoint the source of gains from theta decay. When theta decay materializes, I don't understand how the replicating portfolio generates the gains necessary to finance the new, higher value (less negative), position.
To be concrete, I will try illustrate the question with a numerical example. Suppose we have the following parameters: $K=10$, $S(0)=10$, $\sigma=0.1$, $r=0$, $T=10, q=0$.
The call price formula from Wikipedia is
$$C(S,t)=S\Phi(d_1)-K\Phi(d_2)$$
where
$$d_1 = \frac{\log(S/K)+ (\sigma^2/2)(T-t)}{\sigma \sqrt{T-t}} \\ d_2 = d_1 - \sigma \sqrt{T-t} $$
At $t=0$, we have $C(10,0)=1.256$. To replicate a short position in the option, we use that the initial delta is $C_S(10,0)=\Phi(d_1)=0.5628$.
We begin by taking a short position of delta in the underlying and invest the remaining proceeds in the money market. We therefore have a short position worth $-10*C_S(10,0)=-5.628$ in the risky asset and a money market position of $-C_S(10,0)+10*C(10,0)=4.372$. We can check that $4.372-5.628=-1.256=-C(10,0)$.
Now suppose we are at $t=1$ and the price of the underlying doesn't change, i.e. $S(1)=10$. The value of the call is now $C(10,1)=1.192$, which means that a short position in the call should net 0.064 in profit. However, before adjusting the hedge, the value of our replicating portfolio seems to be the same: We have a short position of -5.628 and a money market position of 4.372, giving $4.372-5.628=-1.256 \leq -C(10,1)=-1.192$.
To continue the replication, we would need a short position in the underlying equal to $-10*C_S(10,1)=-5.596$ and a money market position of $C_S(10,1)+10*C(10,1)=4.404$. But we need an additional 0.064 which we don't seem to have: where do we get the 0.0032 units of the risky asset to decrease the short position and the 0.032 units of numeraire to increase the money market position? It would seem like we are missing 0.064 and can't continue self-financing replication.
Perhaps this has something to do with using a discrete time increment in the example?