The embedded algorithm programming time starts at the end of the programming command sequence, i.e. when CS# de-asserted high. It is commonly known as device busy time. During this time, if the user polls the Status Register, the WIP bit will be high, indicating Write In Progress. The user needs to wait till WIP bit goes low before continuing the next access to the memory array.
The data transfer time depends on the host controller, i.e. clock frequency, intervals between data bytes, etc. This time is not included in the device busy time.