{
  "id": "data-analyst",
  "version": 1,
  "url": "https://certo.bio/rubrics/data-analyst/1",
  "json_url": "https://certo.bio/rubrics/data-analyst/1.json",
  "title": "Data analyst",
  "summary": "What the AI interview for a data analyst is scored against: six skills ESCO lists for the occupation, each judged on five levels from how the candidate answers. It measures how they prepare, query, analyse, interpret and report data, and how they keep it reliable. It is not a coding test, it does not check anything they say happened, and it does not assess executive leadership: a result reaches principal at most. Levels 2, 3 and 4 each list concrete indicators the interview marks met, missing or not discussed, with the candidate's own words as proof; a skill the interview could not assess is left unassessed rather than scored low, and a result needs at least 70 percent of the rubric's weight assessed.",
  "status": "published",
  "published_at": "2026-10-13T07:59:26.408153+00:00",
  "retired_at": null,
  "superseded_by": null,
  "subject": "occupation",
  "occupation": {
    "esco_uri": "http://data.europa.eu/esco/occupation/d3edb8f8-3a06-47a0-8fb9-9b212c006aa2",
    "label": "data analyst"
  },
  "language": null,
  "criteria": [
    {
      "key": "perform_data_cleansing",
      "title": "Cleaning and preparing data",
      "esco_skill_uri": "http://data.europa.eu/esco/skill/50b100ea-74fd-4706-99db-3e4ca55e51b8",
      "esco_skill_label": "perform data cleansing",
      "esco_relation": "essential",
      "weight": 15,
      "listens_for": "How the candidate finds and corrects errors, gaps and inconsistencies before analysing data.",
      "levels": [
        {
          "level": 1,
          "descriptor": "Analyses data as received; does not describe checking it."
        },
        {
          "level": 2,
          "descriptor": "Removes obvious errors and duplicates by following a given procedure.",
          "indicators": [
            {
              "key": "finds_obvious_errors",
              "text": "Ability to find and remove obvious errors and duplicates",
              "must_have": true
            },
            {
              "key": "checks_before_analysis",
              "text": "Awareness of the need to check data before analysing it",
              "must_have": false
            }
          ]
        },
        {
          "level": 3,
          "descriptor": "Profiles a dataset, decides how to treat missing or inconsistent values, and records what was changed.",
          "indicators": [
            {
              "key": "profiles_a_dataset",
              "text": "Ability to profile a dataset before working with it",
              "must_have": false
            },
            {
              "key": "treats_missing_values",
              "text": "Approach to treating missing or inconsistent values",
              "must_have": false
            },
            {
              "key": "records_changes",
              "text": "Approach to recording what was changed in the data",
              "must_have": false
            }
          ]
        },
        {
          "level": 4,
          "descriptor": "Builds repeatable cleaning steps for data others use, and explains how each choice affects the results.",
          "indicators": [
            {
              "key": "repeatable_cleaning_steps",
              "text": "Ability to build repeatable cleaning steps for shared data",
              "must_have": false
            },
            {
              "key": "explains_cleaning_effects",
              "text": "Understanding of how each cleaning choice affects the results",
              "must_have": false
            }
          ]
        },
        {
          "level": 5,
          "descriptor": "Every strong indicator met, plus exceptional evidence: designs preparation across several sources, with checks that catch problems before they reach an analysis."
        }
      ]
    },
    {
      "key": "use_databases",
      "title": "Querying and working with databases",
      "esco_skill_uri": "http://data.europa.eu/esco/skill/4463a721-69f3-413d-8321-43e3af13a4f1",
      "esco_skill_label": "use databases",
      "esco_relation": "essential",
      "weight": 15,
      "listens_for": "How the candidate retrieves, joins and summarises data held in databases.",
      "levels": [
        {
          "level": 1,
          "descriptor": "Relies on exports prepared by others."
        },
        {
          "level": 2,
          "descriptor": "Writes simple queries that filter and aggregate one table.",
          "indicators": [
            {
              "key": "filters_and_aggregates",
              "text": "Ability to write a query that filters and aggregates one table",
              "must_have": true
            }
          ]
        },
        {
          "level": 3,
          "descriptor": "Writes queries that join several tables correctly, and explains how the result was checked.",
          "indicators": [
            {
              "key": "joins_tables_correctly",
              "text": "Ability to join several tables correctly",
              "must_have": false
            },
            {
              "key": "checks_query_results",
              "text": "Approach to checking that a query's result is right",
              "must_have": false
            }
          ]
        },
        {
          "level": 4,
          "descriptor": "Models data for analysis, writes queries others reuse, and considers correctness and performance at scale.",
          "indicators": [
            {
              "key": "models_data_for_analysis",
              "text": "Ability to model data for analysis",
              "must_have": false
            },
            {
              "key": "reusable_queries",
              "text": "Experience writing queries others reuse",
              "must_have": false
            },
            {
              "key": "correctness_and_performance",
              "text": "Awareness of correctness and performance at scale",
              "must_have": false
            }
          ]
        },
        {
          "level": 5,
          "descriptor": "Every strong indicator met, plus exceptional evidence: shapes how a team structures and reaches its data, with examples of designs that held up as needs changed."
        }
      ]
    },
    {
      "key": "apply_statistical_analysis_techniques",
      "title": "Statistical analysis",
      "esco_skill_uri": "http://data.europa.eu/esco/skill/382c11ed-20d5-4ae7-b60e-15fec527fa6c",
      "esco_skill_label": "apply statistical analysis techniques",
      "esco_relation": "essential",
      "weight": 20,
      "listens_for": "Whether the candidate chooses suitable statistical methods and understands their limits.",
      "levels": [
        {
          "level": 1,
          "descriptor": "Reports totals and averages without considering variation."
        },
        {
          "level": 2,
          "descriptor": "Uses standard descriptive statistics and simple comparisons, with guidance.",
          "indicators": [
            {
              "key": "descriptive_statistics",
              "text": "Knowledge of standard descriptive statistics",
              "must_have": true
            },
            {
              "key": "considers_variation",
              "text": "Awareness of variation beyond totals and averages",
              "must_have": false
            }
          ]
        },
        {
          "level": 3,
          "descriptor": "Chooses and applies a suitable method (a test, a regression, an experiment design) and states its assumptions.",
          "indicators": [
            {
              "key": "chooses_suitable_method",
              "text": "Ability to choose a suitable test, regression or experiment design",
              "must_have": false
            },
            {
              "key": "states_assumptions",
              "text": "Ability to state the assumptions a method relies on",
              "must_have": false
            }
          ]
        },
        {
          "level": 4,
          "descriptor": "Handles messy real cases (bias, confounding, small samples) and explains how the conclusion could be wrong.",
          "indicators": [
            {
              "key": "handles_bias_confounding",
              "text": "Approach to bias, confounding and small samples",
              "must_have": false
            },
            {
              "key": "explains_how_wrong",
              "text": "Ability to explain how a conclusion could be wrong",
              "must_have": false
            }
          ]
        },
        {
          "level": 5,
          "descriptor": "Every strong indicator met, plus exceptional evidence: sets the methods a team relies on, and reviews other people's analyses for statistical soundness."
        }
      ]
    },
    {
      "key": "interpret_current_data",
      "title": "Interpreting data for a decision",
      "esco_skill_uri": "http://data.europa.eu/esco/skill/1e77e42a-181f-4b48-8e74-201ce50ffc29",
      "esco_skill_label": "interpret current data",
      "esco_relation": "essential",
      "weight": 20,
      "listens_for": "How the candidate turns an analysis into a conclusion that somebody can act on.",
      "levels": [
        {
          "level": 1,
          "descriptor": "Describes numbers without saying what they mean."
        },
        {
          "level": 2,
          "descriptor": "Draws a conclusion from a given analysis, with guidance on what it means for the business.",
          "indicators": [
            {
              "key": "says_what_numbers_mean",
              "text": "Ability to say what an analysis means, not only what it shows",
              "must_have": true
            }
          ]
        },
        {
          "level": 3,
          "descriptor": "Interprets results against the business question and says how confident the conclusion is.",
          "indicators": [
            {
              "key": "answers_business_question",
              "text": "Ability to interpret results against the business question",
              "must_have": false
            },
            {
              "key": "states_confidence",
              "text": "Approach to stating how confident a conclusion is",
              "must_have": false
            }
          ]
        },
        {
          "level": 4,
          "descriptor": "Reconciles conflicting sources, challenges the question when the data points elsewhere, and influences a decision.",
          "indicators": [
            {
              "key": "reconciles_sources",
              "text": "Ability to reconcile conflicting data sources",
              "must_have": false
            },
            {
              "key": "challenges_the_question",
              "text": "Approach to challenging the question when the data points elsewhere",
              "must_have": false
            },
            {
              "key": "influences_decision",
              "text": "Experience influencing a decision with an interpretation",
              "must_have": false
            }
          ]
        },
        {
          "level": 5,
          "descriptor": "Every strong indicator met, plus exceptional evidence: informs senior decisions with interpretation others rely on, including when the answer was unwelcome."
        }
      ]
    },
    {
      "key": "implement_data_quality_processes",
      "title": "Keeping data reliable",
      "esco_skill_uri": "http://data.europa.eu/esco/skill/713fb616-118e-40bc-9366-4a69879a49d5",
      "esco_skill_label": "implement data quality processes",
      "esco_relation": "essential",
      "weight": 15,
      "listens_for": "How the candidate keeps data reliable over time, not only for one analysis.",
      "levels": [
        {
          "level": 1,
          "descriptor": "Does not describe how the quality of data is checked."
        },
        {
          "level": 2,
          "descriptor": "Reports quality problems when they are found.",
          "indicators": [
            {
              "key": "reports_quality_problems",
              "text": "Approach to reporting data-quality problems when found",
              "must_have": true
            }
          ]
        },
        {
          "level": 3,
          "descriptor": "Puts checks in place for a dataset (validation rules, reconciliation, monitoring) and follows up failures.",
          "indicators": [
            {
              "key": "puts_checks_in_place",
              "text": "Ability to put validation, reconciliation or monitoring in place",
              "must_have": false
            },
            {
              "key": "follows_up_failures",
              "text": "Approach to following up failed quality checks",
              "must_have": false
            }
          ]
        },
        {
          "level": 4,
          "descriptor": "Agrees quality criteria with the owners of the data and monitors several sources against them.",
          "indicators": [
            {
              "key": "agrees_quality_criteria",
              "text": "Ability to agree quality criteria with data owners",
              "must_have": false
            },
            {
              "key": "monitors_several_sources",
              "text": "Experience monitoring several sources against agreed criteria",
              "must_have": false
            }
          ]
        },
        {
          "level": 5,
          "descriptor": "Every strong indicator met, plus exceptional evidence: leads data-quality practice across an organisation, with a measured improvement."
        }
      ]
    },
    {
      "key": "report_analysis_results",
      "title": "Reporting results",
      "esco_skill_uri": "http://data.europa.eu/esco/skill/c544a9f3-5945-4b54-afed-de0697852817",
      "esco_skill_label": "report analysis results",
      "esco_relation": "optional",
      "weight": 15,
      "listens_for": "How clearly the candidate communicates findings, method and limits to the people who need them.",
      "levels": [
        {
          "level": 1,
          "descriptor": "Shares raw output without explanation."
        },
        {
          "level": 2,
          "descriptor": "Produces standard reports or dashboards to a given template.",
          "indicators": [
            {
              "key": "produces_standard_reports",
              "text": "Ability to produce standard reports or dashboards",
              "must_have": true
            }
          ]
        },
        {
          "level": 3,
          "descriptor": "Explains findings, method and limits in a report or presentation suited to its audience.",
          "indicators": [
            {
              "key": "explains_findings_and_limits",
              "text": "Ability to explain findings, method and limits",
              "must_have": false
            },
            {
              "key": "suits_the_audience",
              "text": "Approach to suiting a report to its audience",
              "must_have": false
            }
          ]
        },
        {
          "level": 4,
          "descriptor": "Tailors reporting to different audiences, non-specialists included, and handles challenges to the findings.",
          "indicators": [
            {
              "key": "non_specialist_audiences",
              "text": "Ability to report to non-specialist audiences",
              "must_have": false
            },
            {
              "key": "handles_challenges",
              "text": "Approach to handling challenges to the findings",
              "must_have": false
            }
          ]
        },
        {
          "level": 5,
          "descriptor": "Every strong indicator met, plus exceptional evidence: sets reporting standards others follow, and communicates results that inform senior decisions."
        }
      ]
    }
  ],
  "min_assessed_weight": 70,
  "level_bands": [
    {
      "band": "entry",
      "min": 1
    },
    {
      "band": "mid",
      "min": 2
    },
    {
      "band": "senior",
      "min": 3
    },
    {
      "band": "lead",
      "min": 3.8
    },
    {
      "band": "principal",
      "min": 4.5
    }
  ],
  "scoring": {
    "scale": {
      "levels": [
        1,
        2,
        3,
        4,
        5
      ],
      "bars": {
        "2": "weak",
        "3": "moderate",
        "4": "strong"
      },
      "meaning": "Levels 2, 3 and 4 of each criterion are bars -- weak, moderate and strong -- each with written indicators; levels 1 and 5 carry a descriptor only. The interview marks every indicator met, missing or not_discussed, with proof (the candidate's words, or the AI's reading of them)."
    },
    "criterion": {
      "method": "highest_bar_cleared",
      "bar_cleared": "no indicator on the bar is missing, every must-have indicator is met, and at least one indicator is met",
      "rule": "The level is 1 + the bars cleared in a row from 2: the bars stack, so a missing must-have caps the criterion below its bar.",
      "top": "Level 5 is bar 4 with every indicator met, plus exceptional evidence.",
      "unassessed": "When the weak bar failed only for want of evidence (nothing on it missing), the criterion is unassessed: null, never level 1. A missing weak indicator is level 1."
    },
    "overall": {
      "method": "weighted_mean",
      "formula": "sum(weight × level) / sum(weight), over the assessed criteria only",
      "weights": "whole percents that add up to 100",
      "precision": 1,
      "rounding": "half_up",
      "range": [
        1,
        5
      ],
      "minimum_assessed_weight": "A result needs at least min_assessed_weight percent of the weight assessed; with less there is no result.",
      "note": "The weights are whole percents, so both sums are integers and the division is rounded half up without floating point: 265 / 80 is 3.3."
    },
    "band": {
      "method": "last_band_reached",
      "rule": "The bands are in ascending order of min, the first at 1.0; the assessed band (a seniority, or a CEFR level for a language) is the last band whose min the overall result reaches (min ≤ overall).",
      "note": "A rubric need not reach every band of its scale; one it does not list cannot be assessed against it."
    }
  },
  "attribution": {
    "text": "ESCO, European Commission, CC BY 4.0",
    "esco_version": "v1.2.1",
    "source": "https://esco.ec.europa.eu",
    "licence": "https://creativecommons.org/licenses/by/4.0/"
  },
  "publisher": "https://certo.bio"
}
