I think this query needs to look more like the verification one, to ensure a non-soft-deleted entity that belongs to the tenant is returned, so:

        return session.query(models.VerificationExpectedDatum).filter_by(id=entity_id) \
                      .filter_by(deleted=False) \
                      .join(models.Tenant, models.VerificationExpectedDatum.tenant) \
                      .filter(models.Tenant.keystone_id == keystone_id)