One of the most annoying, hard to understand and against all common sense is the execution_date behavior. I assume that any new Airflow user has been struggling with it. The amount of questions with answers referring to : https://airflow.apache.org/scheduler.html?scheduling-triggers is uncountable.
Most people mistakenly think that execution_date is the datetime which the DAG started to run. I suggest the following changes: 1. Renaming the execution_date to something else like: run_stamped This name won't cause people to get confused. 2. Adding a new variable which indicated the actual datetime when the DAG run was generated. call it execution_start_date. People seem to want the information when the DAG actually started to be executed/run. This is only naming changes. No need to actual change the behavior - This will only make things simpler as when user encounter run_stamped he won't be confused by the name like execution_date