At which frequency run CTXSYS.CTX_DDL.OPTIMIZE_INDEX(...) on a fulltext index?
You can try to use the index statistics report by first enabling reporting on the index  (BEGIN ctx_output.enable_query_stats(ix_my_indexname); END;).  Then you can use the procedure ctx_report.index_stats.  While sifting through the CLOB of info in the report, the most useful information to me is the FRAGMENTATION STATISTICS...estimated row fragmentation: 23%

see Oracle documentation here for more thorough examples of the stats report.