Another issue (for users not API creators) is the lack of universal KPI definition - there are at least 6 major ways of calculating occupancy, each one needing its own specific dataset (economic occupancy, physical occupancy, economic occupancy revenue generating units, physical occupancy revenue generating units, trending occupancy, trending occupancy revenue generating units)
Concepts such as renewal ratio and collection ratio are particularly difficult due to their time component. Most of the pain comes not from getting the data out of the PMS through an API but rather knowing WHAT data is needed and for what KPI.