Skip to main content

Data readiness for AI: the checklist to run before you fund a project

Most AI projects are data engineering projects with a model bolted on the end. This is the readiness check to run before you commit budget: how much data you genuinely need, whether your labels mean anything, who owns the pipeline, what the law requires first, and the unglamorous baseline any model has to beat.

By SBPO Consulting

Why AI projects fail on data, not on models

An AI proposal almost always arrives framed as a modelling question. Which algorithm, which vendor, which foundation model. That framing is comfortable because it is the part of the work with the most interesting reading material, and the part least likely to determine whether the project works.

Google’s Machine Learning Crash Course is blunt: “Data trumps all. The quality and size of the dataset matters much more than which shiny algorithm you use to build your model.” The same course estimates practitioners spend around 80% of a project’s time constructing datasets and doing feature engineering. If four-fifths of the effort sits before the model, four-fifths of the risk does too, and a proposal spending one paragraph on data has mispriced itself.

The longer-run version appeared in the 2015 NeurIPS paper Hidden Technical Debt in Machine Learning Systems, which catalogued the maintenance costs accumulating around a working model: entanglement between features, hidden feedback loops, undeclared data dependencies, eroded boundaries between the model and everything feeding it. None are modelling problems. All are why a demo that worked in March is quietly switched off in November.

So the readiness question is not “can a model do this” — for most business problems it probably can. It is whether your organisation can supply that model with correct, explainable, lawfully held data on a repeating schedule, and whether anyone will notice when it stops.

Volume, coverage and label quality: the three hard limits

These three constrain what is possible. Tooling, budget and enthusiasm do not move them.

How much data you actually need

The question is asked as an absolute and only has a relative answer. Google’s crash course publishes the rule of thumb: train on at least an order of magnitude — preferably two — more examples than the model has trainable parameters, and expect models trained on large datasets with few features to outperform models trained on small datasets with many.

Read that second clause carefully, because it inverts the instinct most teams have. Faced with a thin dataset, the temptation is to add columns. Adding columns to a small dataset usually makes it worse. The productive move is more rows and fewer, better-chosen features.

One genuine exception. If you are adapting a pre-trained foundation model rather than training from scratch, the volume needed for a first useful result collapses. What does not collapse is the data needed to evaluate it: you still need a labelled set representing the decisions the system will make, or you have no way of knowing whether it is right, and no way of noticing when a model update changes its behaviour.

Coverage matters more than row count

Total rows is a vanity measure. What limits a model is how many examples it has seen of the outcome you care about, and that outcome is usually rare.

Google’s documentation describes fraudulent card transactions as often making up less than 0.1% of examples, and diagnoses of a rare virus less than 0.01%. At those proportions a randomly drawn training batch may contain no positive examples at all, which is not enough to learn from. The standard remedy is downsampling the majority class and upweighting it to compensate — in their worked example, a 99%/1% split downsampled by a factor of 25 to reach 80%/20%.

So before anyone talks about volume, count the rare class. Fifty thousand orders with eleven confirmed fraud cases is an eleven-example dataset in a costume.

Labels are the part nobody budgets for

A supervised model learns from labels, and label quality sets the ceiling. Two failure modes are common.

The first is the proxy label. Google’s documentation distinguishes a direct label — “identical to the prediction your model is trying to make” — from a proxy, “similar but not identical”: someone subscribing to a bicycle magazine probably but not definitely owns a bicycle. Businesses do this without noticing, predicting “customer will churn” from “cancelled the direct debit”. Models using proxy labels “are only as useful as the connection between the proxy label and the prediction”, and that connection is rarely measured.

The second is rater noise. Where humans produced the labels, the guidance is unambiguous: raters make mistakes, several may need to evaluate the same item, and you should “always double-check your human raters” — including by labelling a sample yourself and comparing. If two experienced colleagues disagree on a third of historic cases, no model resolves that. It learns it.

Finding your data: systems, exports and the shadow spreadsheets

The inventory is unglamorous and takes a couple of days. Do it before scoping anything.

For every system touching the process you want to model — CRM, ERP, billing, support desk, warehouse management, product telemetry, website analytics — record six things: who owns it internally, how data gets out (API, scheduled export, replica, someone clicking Download), the retention period, the grain of each table, the primary key, and whether it holds personally identifiable information.

Two things reliably surface. The first is that the join keys do not line up: the customer identifier in the CRM is not the account number in billing, and the reconciliation lives in one person’s head. That mapping is a deliverable in its own right, and it is where a data analytics engagement usually starts, alongside a data dictionary recording what each field means and who owns the definition.

The second is the shadow spreadsheet. Somewhere in operations sits a tracker holding the only record of the outcome you want to predict — which quotes converted, which installations needed a second visit, which tickets were genuinely resolved. It is nobody’s system of record and it is your only labelled data. Find it early, and treat replacing it with a captured, validated field as part of the project rather than a later tidy-up. Where the capture point is a form or an internal tool, that is a small web application build rather than a data task, and cheaper than modelling around a spreadsheet forever.

Website and marketing data deserves particular caution, because consent state, tag firing order and modelling shape what lands in your analytics tables before you ever query them. The mechanics of consent mode and server-side tagging are worth understanding before you treat behavioural data as ground truth.

Data quality tests you can run this week

You do not need a platform to start. These run as plain SQL against BigQuery, Snowflake, Redshift or Postgres.

  1. Uniqueness on every key. Duplicated primary keys silently multiply rows through joins and inflate every downstream count.
  2. Null rates per column, tracked over time. A field that was almost never blank last year and is routinely blank since a system upgrade tells you something changed. A one-off null check does not.
  3. Accepted values on every categorical field. Status fields accumulate variants: “Complete”, “complete”, “COMPLETED”, “Done”.
  4. Referential integrity across systems. Orders whose customer no longer exists; tickets against deleted accounts.
  5. Range and distribution checks. Negative quantities, timestamps in the future, prices that moved by a factor of a hundred the day someone changed currency units.
  6. Freshness. How old is the newest row, and does that match the schedule you believe exists? Pipelines fail silently more often than loudly.
  7. Duplicate entity detection. Not duplicate rows — duplicate customers. One organisation entered four ways fragments every history you build.
  8. Definition agreement. Ask two people in different departments to produce “active customers last month” independently. If the numbers differ, that is the finding.

The first four map onto the generic tests dbt ships with out of the box — unique, not_null, accepted_values and relationships — which is a reasonable argument for adopting it once you are running these regularly rather than once.

Automated tests catch mechanical faults, not interpretive ones. Google’s guide to data quality traps covers the rest: the data-reality gap between what a dataset shows and what happened, survivorship bias from only observing cases that made it through, self-selection bias in anything voluntary, and regression to the mean masquerading as the effect of an intervention. Ask who collected each dataset, under what conditions, and what it measures rather than what it is named.

Lineage, ownership and access control

Lineage is, in Google Cloud’s phrasing, “a visual map that tracks the entire lifecycle of your data” — where it came from, where it travelled, what transformed it on the way. It earns its cost four ways: verifying a report is built from what you think it is, tracing root cause when a number goes wrong, seeing downstream dependencies before you change a field, and showing where sensitive data has flowed when someone asks.

Ownership is the cheaper half and gets skipped more often. Every dataset feeding a decision needs a named human accountable for its definition and told when it breaks. “The data team” is not an owner. Neither is a shared inbox.

Access control tends to sit at an extreme. Either every warehouse login can read everything, which makes any conversation about personal data awkward, or access is so restricted that analysts work from stale exports on laptops, which is worse. The workable middle is role-based access on schemas, personal data isolated into tables most roles cannot see, and a documented route to request more.

None of this needs a governance committee. It needs a register — dataset, owner, definition, refresh schedule, sensitivity, downstream consumers — kept current. The NIST AI Risk Management Framework is a useful external scaffold: govern, map, measure and manage, explicitly voluntary rather than a compliance regime.

Privacy and lawful basis before any modelling

This is not legal advice, and specifics depend on your jurisdiction. But there is a sequence that keeps projects out of trouble, and it starts before the data is copied anywhere.

Establish the purpose, separately. Data collected to fulfil orders was collected for that purpose. Training a predictive model on it is a new processing activity, not a continuation of the old one, and it needs its own basis and its own record. Assuming continuity is the most common shortcut.

Assess the risk formally where required. Under the GDPR, Article 35 requires a data protection impact assessment prior to processing likely to result in a high risk to individuals, and names systematic and extensive evaluation based on automated processing among the cases where one is expected. That fits many scoring and profiling models.

Read what regulators have said about AI specifically. The European Data Protection Board’s Opinion 28/2024 covers when a model itself can be considered anonymous, when legitimate interest is available as a basis, and what follows when a model was trained on unlawfully processed data. That last point has teeth: the lawfulness of the training set does not stop mattering once training is finished.

Know whether your use case counts as high-risk. The EU AI Act sorts systems into tiers, and high-risk systems carry obligations covering the quality of the datasets feeding them — specifically to minimise discriminatory outcomes — alongside documentation, traceability and human oversight. Employment screening and access to essential services are in scope, which catches more ordinary applications than teams expect.

The engineering response is to minimise: pseudonymise on the way into the warehouse, keep personally identifiable information out of feature tables where a surrogate key does the job, and isolate the identity join in a controlled table few roles can read.

Building the smallest useful pipeline

The pipeline that gets an AI project into production is smaller than most architecture diagrams suggest, and drawing the diagram first is a reliable way to spend a quarter without producing a prediction.

The modern default is ELT rather than classical ETL: land raw data in the warehouse unmodified, then transform it there in version-controlled SQL. Raw data is preserved, so a transformation bug is fixed by re-running rather than by re-extracting from a source system that may no longer hold the history. Transformations and their tests then live in one repository on one schedule, which stops quality checks drifting away from the logic they protect.

Resist the feature store until you have a reason. It solves specific problems — one feature definition shared by several models, low-latency online serving, and training-serving skew where the value computed at training time differs from the one computed at prediction time. With one model and one batch job, it is infrastructure with no job.

Two of the Rules of Machine Learning apply directly. Rule 4: keep the first model simple and get the infrastructure right, because its value is in proving the plumbing rather than in sophistication. Rule 5: test the infrastructure independently from the machine learning, so a bad prediction can be blamed on the model rather than on a join that silently dropped a third of the rows.

Then monitor the data, not just the model. Google’s guidance is concrete: write a schema the data must satisfy and alert on anomalies, unexpected categorical values and distribution changes; watch for skew between training and serving; compare metrics on slices against the whole; track time since retraining against a threshold. Instrumentation on the systems generating that data belongs in the same budget, which often makes the team building your applications part of the AI project whether or not anyone put them on the plan.

Baselines: the boring model your AI has to beat

Before the model, build the thing the model has to outperform. This is the discipline that most reliably prevents a wasted year.

Rule 1 of the Rules of Machine Learning is “don’t be afraid to launch a product without machine learning”, on the grounds that basic heuristics deliver much of the available value. Rule 2 is to design and implement metrics first, tracking as much as possible in the current system before formalising what an ML system will do. Rule 7 is to turn existing heuristics into features rather than discarding them, since the rules your operations team already applies encode real domain knowledge.

A baseline is deliberately unimpressive. Predict the majority class. Predict last month’s value. Apply the three-line rule the sales team already uses to decide which leads to call first. Then measure it on held-out data, using a metric that reflects the business decision rather than raw accuracy — because with a 1% positive rate, a model predicting “no” every time is 99% accurate and worth nothing.

Two further questions belong here, both commercial rather than technical. What does a false positive cost, and what does a false negative cost? Those numbers set the decision threshold, and until someone answers them the model has no defensible operating point. If your candidate beats the heuristic by a margin that will not survive the cost of maintaining, retraining and explaining a pipeline, ship the heuristic. Choosing which problems deserve a model at all is the subject of where AI actually pays for itself.

Scoring your readiness across five levels

Place yourself honestly. The value is entirely in refusing to skip a level.

Level What it looks like Realistically achievable Next step
0. Ad hoc Data sits in operational systems and spreadsheets. Reports are rebuilt by hand and rarely agree. Off-the-shelf tools used by individuals. Nothing depending on your own data. Inventory the systems; agree five core definitions.
1. Reported Reporting is roughly trusted, but manual, undocumented and owned by one person. A one-off analysis on an export that will not survive that person leaving. Automate the extract; put definitions in version control.
2. Warehoused A warehouse holds modelled tables. Transformations are code. Basic tests run on a schedule. A first model trained on a stable dataset, scored in batch. Add freshness and distribution tests; document each grain.
3. Governed Lineage visible, owners named, access role-based, personal data isolated, lawful basis recorded. Models feeding real decisions, with an audit trail when someone asks how one was made. Set monitoring thresholds and who answers an alert.
4. Operational Pipelines monitored for skew and freshness. Baselines tracked. Retraining scheduled and reversible. Several models in production, maintained rather than rebuilt. Retire those no longer beating their baseline.

What to do at each level

At levels 0 and 1, do not start an AI project. Start a definitions project and remove the single points of failure in reporting: a fraction of the cost, and a prerequisite regardless of what you build later.

At level 2 you can genuinely run a first model, and the discipline that matters is scope — one prediction, one clearly-owned decision, a measured baseline, and a written definition of success agreed before anyone builds.

By level 3 the constraint stops being data and becomes organisational: whether the people receiving a prediction will act on it, and what happens when they disagree. That is change management, and it is where applied machine learning work either lands or quietly does not. At level 4 the work is mostly pruning, and how rarely models that no longer beat their baseline get switched off says more about how organisations treat AI than any capability gap does.

When the honest answer is ‘fix reporting first’

One diagnostic question is worth asking before any of this. Can two people in your organisation independently produce the same number for a basic measure — active customers, gross margin by product, tickets resolved first time?

If not, the AI project will not fix it. It will inherit it, and encode it into a system whose outputs nobody can argue with because they came out of a model. The disagreement does not disappear. It becomes harder to see.

The unpopular recommendation is to spend the first tranche of budget on definitions, instrumentation and a warehouse everyone trusts, and postpone the model. It is unpopular because it is less interesting, and because whoever approved the budget was promised AI. It also leaves something durable: a business that can answer questions about itself is a precondition for every model you might build later, and useful on its own if you never build one.

A reasonable test of anyone proposing an AI project — including us — is whether they asked to see your data before describing the solution. If the proposal arrived before the inventory, it was written about a generic company rather than yours.

Questions

Common questions

How much data is enough to train a model?

There is no universal number, and anyone who gives you one without knowing what you are predicting is guessing. The useful heuristic is relative rather than absolute: Google advises training on at least an order of magnitude, preferably two, more examples than the model has trainable parameters, and notes that models trained on large datasets with few features generally beat models trained on small datasets with many features. What matters more than total rows is how many examples you have of the thing you actually care about. A table of fifty thousand orders containing eleven confirmed fraud cases is, for training purposes, an eleven-example dataset. Count the rare class, not the table. If that count is small, your realistic options are a rules engine, a pre-trained model you adapt, or a deliberate period of collecting better data before anyone builds anything.

Can we use AI if all our data lives in spreadsheets?

Sometimes, and it is worth being honest about which case you are in. A spreadsheet is a perfectly good source of training data if it is complete, consistently structured, and someone can explain how each column got there. Plenty of useful models have been trained on a single exported CSV. The problem is rarely the format and almost always the process behind it: a tracker maintained by one person, where the definition of a column changed in March, where blank means both "no" and "not checked yet", and where the file exists in four versions. That is not a data problem you can model your way out of. If the spreadsheet holds the only record of the outcome you want to predict, treat replacing it with a captured, validated field in a real system as the first deliverable of the AI project rather than a follow-up.

What is a data maturity model?

It is a rubric that places an organisation on a scale from ad hoc data handling to governed, monitored, operational data infrastructure, so that conversations about capability stop being subjective. Most versions run four or five levels and describe, for each one, what the tooling looks like, who owns what, and which kinds of work are realistically achievable. The value is not the score itself. It is that a maturity model makes the next step specific and refuses to skip stages: an organisation whose monthly reporting is still assembled by hand is not going to run a monitored model in production, and naming that plainly is more useful than promising otherwise. Public frameworks such as the NIST AI Risk Management Framework serve a related purpose for risk, organising the work into govern, map, measure and manage functions.

Do we need a data warehouse before starting AI work?

Not for a first experiment, and yes for anything that has to run repeatedly. You can prove a model works on a one-off export from your CRM, and doing so is a cheap way to test whether the signal exists at all before spending on infrastructure. What a warehouse buys you is repeatability: a defined place where the numbers agree, where transformations are versioned and tested, and where a model can be retrained next quarter without someone remembering how they built the file last time. The choice of platform matters much less than most vendor conversations suggest. BigQuery, Snowflake, Redshift and a well-managed Postgres instance will all hold the data a mid-sized business has, and the same SQL tests run against all of them.

How do we handle personal data used in AI training?

Establish the lawful basis and the purpose before the first model, not after it works. Data collected to fulfil orders was collected for that purpose, and reusing it to train a predictive model is a new processing activity that needs its own analysis rather than an assumption of continuity. Under the GDPR, a data protection impact assessment is required prior to processing that is likely to result in a high risk to individuals, and Article 35 names systematic and extensive automated evaluation among the cases where one is particularly expected. The European Data Protection Board issued Opinion 28/2024 specifically on data protection aspects of AI models, covering when a model can be considered anonymous and when legitimate interest is available as a basis. In practice: minimise what you copy, pseudonymise early, keep personally identifiable information out of feature tables where a surrogate key will do, and record the reasoning in writing.

Related services

If you would rather not do this yourself

Data analytics

Measurement planning, tracking implementation, warehouse modelling and reporting built so the numbers reconcile, the definitions are written down, and decisions stop waiting on a spreadsheet.

AI and machine learning

Feasibility work, predictive models, LLM and retrieval systems, computer vision and the operations around them — scoped so you can measure whether the thing works before it meets a customer.

Web applications

Custom web application development for SaaS products, customer portals, dashboards and internal tools — with the scope discipline that decides whether a first release ships at all.

Keep reading

Next step

Tell us what you are trying to build.

Send us the problem, the constraint and the deadline. You will get a considered reply from someone who would actually do the work — not a templated proposal.