Expansion is just a transformation (replacement, …) applied to a syntax.
Code is replaced / injected at runtime.
An expansion is a rule or pattern that specifies how a certain input sequence (often a sequence of characters) should be mapped to a replacement output sequence (also often a sequence of characters) according to a defined procedure.
The mapping process that transforms the input as into the output is known as expansion.
This is often used in template.
With the following USER environment variable
export USER=Foo
USER=$USER
USER=Foo