logical_date is the data interval / scheduled period for a DAG run. It is not necessarily the clock time when the task started.
A daily DAG for "data for January 1" may actually execute after that interval ends (for example on January 2).
logical date → what interval this run represents actual runtime → when Airflow executes it
Get this wrong and partition paths and incremental loads go sideways.