Every company wants to point AI at its data. In Power BI, that means turning on Copilot and letting people ask questions in plain English. The catch is that AI has no idea which data is good. If a dataset hasn't refreshed in a month, or nobody knows what a column means, Copilot will still give a confident answer. It just might be wrong.
Think of a new hire who reads every file in the shared drive, including the outdated drafts, and quotes all of them with the same confidence. Garbage in, garbage out, only faster and more convincing.
AI Readiness is a feature inside Datalogz that looks at every Power BI dataset Copilot can reach and gives it a clear verdict: AI Ready or Not AI Ready. I built it end to end as a founding engineer at Datalogz: the pipeline that finds and checks the datasets, the API behind it, and the screens teams use to act on the results.
1. Find what AI can actually see. Copilot only runs on paid Fabric or Premium capacity. So the first step works out which datasets live on capacity where Copilot is available. Customers don't configure anything. If AI can reach a dataset, it gets checked.
2. Run seven health checks. Every exposed dataset goes through a set of checks, grouped by how serious the problem is.
High priority
Medium priority
3. Turn findings into a verdict. Each problem becomes an alert that can be assigned to a person by email. When a dataset crosses the threshold, it gets tagged Not AI Ready.
4. Show it where people work. Leaders get a scorecard. Engineers get a list of exactly what to fix.
Say a sales model sits on Premium capacity, last refreshed nine days ago, with a third of its columns undocumented. AI Readiness flags it as stale and undocumented, tags it Not AI Ready, and assigns the alerts to its owner. The owner adds the descriptions, fixes the refresh schedule, hits refresh in Datalogz, and a few minutes later the model flips to AI Ready.
A missing description is not an outage. Datalogz already showed a health status for every dataset. If I had simply mixed the new checks into it, a model with a few undocumented columns would turn red right next to pipelines that were actually broken, and teams would quickly learn to ignore red. So I kept AI findings in their own separate layer and added a middle state:
Telling a rename apart from a deletion. Power BI doesn't give columns a permanent ID. So when someone renames a column, a simple comparison sees one column deleted, a new one added, and the table changed: three alarms for one harmless edit. I solved it by fingerprinting each column by what it is rather than what it's called. If a column disappears and a new one appears with the exact same fingerprint, it's recorded as a single rename.
Building on what already existed. Instead of creating a separate system, I extended the monitoring, alerting, and inventory engine Datalogz already had, using the same Airflow and dbt pipeline, FastAPI backend, and React frontend. That's why it shipped in weeks instead of months.