The filter is due to the predicate -
AND (SYS_EXTRACT_UTC (SYSTIMESTAMP) > sp.effective_start_date
OR sp.effective_start_date IS NULL)
AND (SYS_EXTRACT_UTC (SYSTIMESTAMP) < sp.effective_end_date
OR sp.effective_end_date IS NULL)
You have to tell what does it mean in your code and what type it is DATE or TIMESTAMP? Per the explain plan you posted earlier, this does not seem to be much of a heck, compared to the FTS on FAX_HEADER and other tables for which already a lot of suggestions have been made.
Did you try the function-based index using TRUNC(CAST(<date column>))... Did it avoid FTS? You must see an INDEX RANGE SCAN to verify.