For example, consider a case where job xyz-test is set as the promotion criteria of job xyz. When xyz #100 is built, this will not be promoted right away as no xyz-test build has run yet. If you configured xyz-test as a downstream build of xyz, the successful completion of xyz #100 would trigger a xyz-test. When this completes successfully, xyz #100 will be promoted (even if other xyz builds happened since then.)