What is the appropriate word for someone (or something) that gives you insights?
Example sentences for context:
Ann is our best ???. She always provides us with amazing insights.
This software is a good ???. It helps us to get brilliant insights into our business process.
What would you replace "???" with? Something that conveys the meaning and is commonly understood (mainly in business and formal/semi-formal environments).