So what I needed was a scalar_subquery and use an alias for the sub select that was on the ON matching. The final query statement looked like this...I combined them.
current_date = str(datetime.date.today())
aliasEpr= aliased(EmployeePayRate)
user_sel_stmt = select(User.user_id, User.full_name, User.email, User.phone,
User.locked, User.last_login_date, User.active,
EmployeePayRate.default_charge_rate, EmployeePayRate.pay_rate
).outerjoin(
EmployeePayRate, EmployeePayRate.pay_rate_id == (
select(aliasEpr.pay_rate_id).where(
and_(
aliasEpr.company_id == User.company_id,
aliasEpr.user_id == User.user_id,
func.date(aliasEpr.start_date) <= current_date
)
).order_by(aliasEpr.start_date.desc()).limit(1).scalar_subquery()
)).where(
and_(
(User.company_id == data["company_id"]) & (or_(*or_conditions))
)
)