If you add 4 messages, and you run the thread you will be charged for 4 input messages and an output message, maybe more.
The thread now has 5 messages. If you run it again you’ll now be charged for an additional 5 messages and one additional output message, maybe more.
so for two runs you’ve paid for at least 9 inputs and 2 outputs.
You certainly don’t pay token pricing just for pushing a message.
I don’t use assistants but that’s my understanding of it. code interpreter and additional files make this whole calculation more complicated.