Organogram Of Staff Roles & Salaries
HM Revenue and Customs
@ukgov.organogram_hm_revenue_and_customs
HM Revenue and Customs
@ukgov.organogram_hm_revenue_and_customs
Organogram (organisation chart) showing all staff roles. Names and salaries are also listed for the Senior Civil Servants. Organogram data is released by all central government departments and their agencies since 2010. Snapshots for 31 March and 30 September were published on a 6-monthly basis each year up until 2021, since when snapshots for 31 March, 30 June, 30 September and 31 December are published quarterly. The published data is validated and released in CSV format and OGL-licensed for reuse. For more information about this series, see: http://guidance.data.gov.uk/organogram-data.html Click Preview next to a dataset to view interactive visualisations of the data.
Publisher name: HM Revenue and Customs
Last updated: 2025-05-02T04:00:25Z
CREATE TABLE n_2019_03_31_organogram_junior (
"parent_department" VARCHAR,
"organisation" VARCHAR,
"unit" VARCHAR,
"reporting_senior_post" VARCHAR,
"grade" VARCHAR,
"payscale_minimum" BIGINT -- Payscale Minimum (£),
"payscale_maximum" BIGINT -- Payscale Maximum (£),
"generic_job_title" VARCHAR,
"number_of_posts_in_fte" DOUBLE,
"professional_occupational_group" VARCHAR
);CREATE TABLE n_2019_03_31_organogram_senior (
"post_unique_reference" VARCHAR,
"name" VARCHAR,
"grade_or_equivalent" VARCHAR -- Grade (or Equivalent),
"job_title" VARCHAR,
"job_team_function" VARCHAR,
"parent_department" VARCHAR,
"organisation" VARCHAR,
"unit" VARCHAR,
"contact_phone" VARCHAR,
"contact_e_mail" VARCHAR,
"reports_to_senior_post" VARCHAR,
"salary_cost_of_reports" BIGINT -- Salary Cost Of Reports (£),
"fte" DOUBLE,
"actual_pay_floor" VARCHAR -- Actual Pay Floor (£),
"actual_pay_ceiling" VARCHAR -- Actual Pay Ceiling (£),
"unnamed_15" VARCHAR -- Unnamed: 15,
"professional_occupational_group" VARCHAR,
"notes" VARCHAR,
"valid" DOUBLE -- Valid?
);CREATE TABLE n_2019_09_30_organogram_junior (
"parent_department" VARCHAR,
"organisation" VARCHAR,
"unit" VARCHAR,
"reporting_senior_post" VARCHAR,
"grade" VARCHAR,
"payscale_minimum" BIGINT -- Payscale Minimum (£),
"payscale_maximum" BIGINT -- Payscale Maximum (£),
"generic_job_title" VARCHAR,
"number_of_posts_in_fte" DOUBLE,
"professional_occupational_group" VARCHAR
);CREATE TABLE n_2019_09_30_organogram_senior (
"post_unique_reference" VARCHAR,
"name" VARCHAR,
"grade_or_equivalent" VARCHAR -- Grade (or Equivalent),
"job_title" VARCHAR,
"job_team_function" VARCHAR,
"parent_department" VARCHAR,
"organisation" VARCHAR,
"unit" VARCHAR,
"contact_phone" VARCHAR,
"contact_e_mail" VARCHAR,
"reports_to_senior_post" VARCHAR,
"salary_cost_of_reports" VARCHAR -- Salary Cost Of Reports (£),
"fte" DOUBLE,
"actual_pay_floor" BIGINT -- Actual Pay Floor (£),
"actual_pay_ceiling" BIGINT -- Actual Pay Ceiling (£),
"unnamed_15" VARCHAR -- Unnamed: 15,
"professional_occupational_group" VARCHAR,
"notes" VARCHAR,
"valid" BIGINT -- Valid?
);CREATE TABLE n_2020_09_30_organogram_junior (
"parent_department" VARCHAR,
"organisation" VARCHAR,
"unit" VARCHAR,
"reporting_senior_post" VARCHAR,
"grade" VARCHAR,
"payscale_minimum" BIGINT -- Payscale Minimum (£),
"payscale_maximum" BIGINT -- Payscale Maximum (£),
"generic_job_title" VARCHAR,
"number_of_posts_in_fte" DOUBLE,
"professional_occupational_group" VARCHAR
);CREATE TABLE n_2020_09_30_organogram_senior (
"post_unique_reference" VARCHAR,
"name" VARCHAR,
"grade_or_equivalent" VARCHAR -- Grade (or Equivalent),
"job_title" VARCHAR,
"job_team_function" VARCHAR,
"parent_department" VARCHAR,
"organisation" VARCHAR,
"unit" VARCHAR,
"contact_phone" VARCHAR,
"contact_e_mail" VARCHAR,
"reports_to_senior_post" VARCHAR,
"salary_cost_of_reports" BIGINT -- Salary Cost Of Reports (£),
"fte" DOUBLE,
"actual_pay_floor" BIGINT -- Actual Pay Floor (£),
"actual_pay_ceiling" BIGINT -- Actual Pay Ceiling (£),
"unnamed_15" VARCHAR -- Unnamed: 15,
"professional_occupational_group" VARCHAR,
"notes" VARCHAR,
"valid" BIGINT -- Valid?
);CREATE TABLE n_2021_03_31_organogram_junior (
"parent_department" VARCHAR,
"organisation" VARCHAR,
"unit" VARCHAR,
"reporting_senior_post" VARCHAR,
"grade" VARCHAR,
"payscale_minimum" BIGINT -- Payscale Minimum (£),
"payscale_maximum" BIGINT -- Payscale Maximum (£),
"generic_job_title" VARCHAR,
"number_of_posts_in_fte" DOUBLE,
"professional_occupational_group" VARCHAR
);CREATE TABLE n_2021_03_31_organogram_senior (
"post_unique_reference" VARCHAR,
"name" VARCHAR,
"grade_or_equivalent" VARCHAR -- Grade (or Equivalent),
"job_title" VARCHAR,
"job_team_function" VARCHAR,
"parent_department" VARCHAR,
"organisation" VARCHAR,
"unit" VARCHAR,
"contact_phone" VARCHAR,
"contact_e_mail" VARCHAR,
"reports_to_senior_post" VARCHAR,
"salary_cost_of_reports" BIGINT -- Salary Cost Of Reports (£),
"fte" DOUBLE,
"actual_pay_floor" VARCHAR -- Actual Pay Floor (£),
"actual_pay_ceiling" VARCHAR -- Actual Pay Ceiling (£),
"unnamed_15" VARCHAR -- Unnamed: 15,
"professional_occupational_group" VARCHAR,
"notes" VARCHAR,
"valid" BIGINT -- Valid?
);CREATE TABLE n_2021_06_30_organogram_junior (
"parent_department" VARCHAR,
"organisation" VARCHAR,
"unit" VARCHAR,
"reporting_senior_post" VARCHAR,
"grade" VARCHAR,
"payscale_minimum" BIGINT -- Payscale Minimum (£),
"payscale_maximum" BIGINT -- Payscale Maximum (£),
"generic_job_title" VARCHAR,
"number_of_posts_in_fte" DOUBLE,
"professional_occupational_group" VARCHAR
);CREATE TABLE n_2021_06_30_organogram_senior (
"post_unique_reference" VARCHAR,
"name" VARCHAR,
"grade_or_equivalent" VARCHAR -- Grade (or Equivalent),
"job_title" VARCHAR,
"job_team_function" VARCHAR,
"parent_department" VARCHAR,
"organisation" VARCHAR,
"unit" VARCHAR,
"contact_phone" VARCHAR,
"contact_e_mail" VARCHAR,
"reports_to_senior_post" VARCHAR,
"salary_cost_of_reports" BIGINT -- Salary Cost Of Reports (£),
"fte" DOUBLE,
"actual_pay_floor" VARCHAR -- Actual Pay Floor (£),
"actual_pay_ceiling" VARCHAR -- Actual Pay Ceiling (£),
"unnamed_15" VARCHAR -- Unnamed: 15,
"professional_occupational_group" VARCHAR,
"notes" VARCHAR,
"valid" BIGINT -- Valid?
);CREATE TABLE n_2021_09_30_organogram_junior (
"parent_department" VARCHAR,
"organisation" VARCHAR,
"unit" VARCHAR,
"reporting_senior_post" VARCHAR,
"grade" VARCHAR,
"payscale_minimum" BIGINT -- Payscale Minimum (£),
"payscale_maximum" BIGINT -- Payscale Maximum (£),
"generic_job_title" VARCHAR,
"number_of_posts_in_fte" DOUBLE,
"professional_occupational_group" VARCHAR
);CREATE TABLE n_2021_09_30_organogram_senior (
"post_unique_reference" VARCHAR,
"name" VARCHAR,
"grade_or_equivalent" VARCHAR -- Grade (or Equivalent),
"job_title" VARCHAR,
"job_team_function" VARCHAR,
"parent_department" VARCHAR,
"organisation" VARCHAR,
"unit" VARCHAR,
"contact_phone" VARCHAR,
"contact_e_mail" VARCHAR,
"reports_to_senior_post" VARCHAR,
"salary_cost_of_reports" BIGINT -- Salary Cost Of Reports (£),
"fte" DOUBLE,
"actual_pay_floor" VARCHAR -- Actual Pay Floor (£),
"actual_pay_ceiling" VARCHAR -- Actual Pay Ceiling (£),
"unnamed_15" VARCHAR -- Unnamed: 15,
"professional_occupational_group" VARCHAR,
"notes" VARCHAR,
"valid" BIGINT -- Valid?
);CREATE TABLE n_2021_12_31_organogram_junior (
"parent_department" VARCHAR,
"organisation" VARCHAR,
"unit" VARCHAR,
"reporting_senior_post" VARCHAR,
"grade" VARCHAR,
"payscale_minimum" BIGINT -- Payscale Minimum (£),
"payscale_maximum" BIGINT -- Payscale Maximum (£),
"generic_job_title" VARCHAR,
"number_of_posts_in_fte" DOUBLE,
"professional_occupational_group" VARCHAR,
"office_region" VARCHAR
);CREATE TABLE n_2021_12_31_organogram_senior (
"post_unique_reference" VARCHAR,
"name" VARCHAR,
"grade_or_equivalent" VARCHAR -- Grade (or Equivalent),
"job_title" VARCHAR,
"job_team_function" VARCHAR,
"parent_department" VARCHAR,
"organisation" VARCHAR,
"unit" VARCHAR,
"contact_phone" VARCHAR,
"contact_e_mail" VARCHAR,
"reports_to_senior_post" VARCHAR,
"salary_cost_of_reports" BIGINT -- Salary Cost Of Reports (£),
"fte" DOUBLE,
"actual_pay_floor" VARCHAR -- Actual Pay Floor (£),
"actual_pay_ceiling" VARCHAR -- Actual Pay Ceiling (£),
"unnamed_15" VARCHAR -- Unnamed: 15,
"professional_occupational_group" VARCHAR,
"office_region" VARCHAR,
"notes" VARCHAR,
"valid" BIGINT -- Valid?
);CREATE TABLE n_2022_03_31_organogram_junior (
"parent_department" VARCHAR,
"organisation" VARCHAR,
"unit" VARCHAR,
"reporting_senior_post" VARCHAR,
"grade" VARCHAR,
"payscale_minimum" BIGINT -- Payscale Minimum (£),
"payscale_maximum" BIGINT -- Payscale Maximum (£),
"generic_job_title" VARCHAR,
"number_of_posts_in_fte" DOUBLE,
"professional_occupational_group" VARCHAR,
"office_region" VARCHAR
);CREATE TABLE n_2022_03_31_organogram_senior (
"post_unique_reference" VARCHAR,
"name" VARCHAR,
"grade_or_equivalent" VARCHAR -- Grade (or Equivalent),
"job_title" VARCHAR,
"job_team_function" VARCHAR,
"parent_department" VARCHAR,
"organisation" VARCHAR,
"unit" VARCHAR,
"contact_phone" VARCHAR,
"contact_e_mail" VARCHAR,
"reports_to_senior_post" VARCHAR,
"salary_cost_of_reports" BIGINT -- Salary Cost Of Reports (£),
"fte" DOUBLE,
"actual_pay_floor" VARCHAR -- Actual Pay Floor (£),
"actual_pay_ceiling" VARCHAR -- Actual Pay Ceiling (£),
"unnamed_15" VARCHAR -- Unnamed: 15,
"professional_occupational_group" VARCHAR,
"office_region" VARCHAR,
"notes" VARCHAR,
"valid" BIGINT -- Valid?
);CREATE TABLE n_2022_06_30_organogram_junior (
"parent_department" VARCHAR,
"organisation" VARCHAR,
"unit" VARCHAR,
"reporting_senior_post" VARCHAR,
"grade" VARCHAR,
"payscale_minimum" VARCHAR -- Payscale Minimum (£),
"payscale_maximum" VARCHAR -- Payscale Maximum (£),
"generic_job_title" VARCHAR,
"number_of_posts_in_fte" DOUBLE,
"professional_occupational_group" VARCHAR,
"office_region" VARCHAR
);CREATE TABLE n_2022_06_30_organogram_senior (
"post_unique_reference" VARCHAR,
"name" VARCHAR,
"grade_or_equivalent" VARCHAR -- Grade (or Equivalent),
"job_title" VARCHAR,
"job_team_function" VARCHAR,
"parent_department" VARCHAR,
"organisation" VARCHAR,
"unit" VARCHAR,
"contact_phone" VARCHAR,
"contact_e_mail" VARCHAR,
"reports_to_senior_post" VARCHAR,
"salary_cost_of_reports" BIGINT -- Salary Cost Of Reports (£),
"fte" DOUBLE,
"actual_pay_floor" VARCHAR -- Actual Pay Floor (£),
"actual_pay_ceiling" VARCHAR -- Actual Pay Ceiling (£),
"unnamed_15" VARCHAR -- Unnamed: 15,
"professional_occupational_group" VARCHAR,
"office_region" VARCHAR,
"notes" VARCHAR,
"valid" BIGINT -- Valid?
);CREATE TABLE n_2022_09_30_organogram_junior (
"parent_department" VARCHAR,
"organisation" VARCHAR,
"unit" VARCHAR,
"reporting_senior_post" VARCHAR,
"grade" VARCHAR,
"payscale_minimum" BIGINT -- Payscale Minimum (£),
"payscale_maximum" BIGINT -- Payscale Maximum (£),
"generic_job_title" VARCHAR,
"number_of_posts_in_fte" DOUBLE,
"professional_occupational_group" VARCHAR,
"office_region" VARCHAR
);CREATE TABLE n_2022_09_30_organogram_senior (
"post_unique_reference" VARCHAR,
"name" VARCHAR,
"grade_or_equivalent" VARCHAR -- Grade (or Equivalent),
"job_title" VARCHAR,
"job_team_function" VARCHAR,
"parent_department" VARCHAR,
"organisation" VARCHAR,
"unit" VARCHAR,
"contact_phone" VARCHAR,
"contact_e_mail" VARCHAR,
"reports_to_senior_post" VARCHAR,
"salary_cost_of_reports" BIGINT -- Salary Cost Of Reports (£),
"fte" DOUBLE,
"actual_pay_floor" VARCHAR -- Actual Pay Floor (£),
"actual_pay_ceiling" VARCHAR -- Actual Pay Ceiling (£),
"unnamed_15" VARCHAR -- Unnamed: 15,
"professional_occupational_group" VARCHAR,
"office_region" VARCHAR,
"notes" VARCHAR,
"valid" BIGINT -- Valid?
);CREATE TABLE n_2022_12_31_organogram_junior (
"parent_department" VARCHAR,
"organisation" VARCHAR,
"unit" VARCHAR,
"reporting_senior_post" VARCHAR,
"grade" VARCHAR,
"payscale_minimum" BIGINT -- Payscale Minimum (£),
"payscale_maximum" BIGINT -- Payscale Maximum (£),
"generic_job_title" VARCHAR,
"number_of_posts_in_fte" DOUBLE,
"professional_occupational_group" VARCHAR,
"office_region" VARCHAR
);CREATE TABLE n_2022_12_31_organogram_senior (
"post_unique_reference" VARCHAR,
"name" VARCHAR,
"grade_or_equivalent" VARCHAR -- Grade (or Equivalent),
"job_title" VARCHAR,
"job_team_function" VARCHAR,
"parent_department" VARCHAR,
"organisation" VARCHAR,
"unit" VARCHAR,
"contact_phone" VARCHAR,
"contact_e_mail" VARCHAR,
"reports_to_senior_post" VARCHAR,
"salary_cost_of_reports" BIGINT -- Salary Cost Of Reports (£),
"fte" DOUBLE,
"actual_pay_floor" VARCHAR -- Actual Pay Floor (£),
"actual_pay_ceiling" VARCHAR -- Actual Pay Ceiling (£),
"unnamed_15" VARCHAR -- Unnamed: 15,
"professional_occupational_group" VARCHAR,
"office_region" VARCHAR,
"notes" VARCHAR,
"valid" BIGINT -- Valid?
);CREATE TABLE n_2023_03_31_organogram_junior (
"parent_department" VARCHAR,
"organisation" VARCHAR,
"unit" VARCHAR,
"reporting_senior_post" VARCHAR,
"grade" VARCHAR,
"payscale_minimum" VARCHAR -- Payscale Minimum (£),
"payscale_maximum" VARCHAR -- Payscale Maximum (£),
"generic_job_title" VARCHAR,
"number_of_posts_in_fte" VARCHAR,
"professional_occupational_group" VARCHAR,
"office_region" VARCHAR
);CREATE TABLE n_2023_03_31_organogram_senior (
"post_unique_reference" VARCHAR,
"name" VARCHAR,
"grade_or_equivalent" VARCHAR -- Grade (or Equivalent),
"job_title" VARCHAR,
"job_team_function" VARCHAR,
"parent_department" VARCHAR,
"organisation" VARCHAR,
"unit" VARCHAR,
"contact_phone" VARCHAR,
"contact_e_mail" VARCHAR,
"reports_to_senior_post" VARCHAR,
"salary_cost_of_reports" BIGINT -- Salary Cost Of Reports (£),
"fte" DOUBLE,
"actual_pay_floor" VARCHAR -- Actual Pay Floor (£),
"actual_pay_ceiling" VARCHAR -- Actual Pay Ceiling (£),
"unnamed_15" VARCHAR -- Unnamed: 15,
"professional_occupational_group" VARCHAR,
"office_region" VARCHAR,
"notes" VARCHAR,
"valid" BIGINT -- Valid?
);CREATE TABLE n_2023_06_30_organogram_junior (
"parent_department" VARCHAR,
"organisation" VARCHAR,
"unit" VARCHAR,
"reporting_senior_post" VARCHAR,
"grade" VARCHAR,
"payscale_minimum" BIGINT -- Payscale Minimum (£),
"payscale_maximum" BIGINT -- Payscale Maximum (£),
"generic_job_title" VARCHAR,
"number_of_posts_in_fte" VARCHAR,
"professional_occupational_group" VARCHAR,
"office_region" VARCHAR
);Anyone who has the link will be able to view this.