{
  "title": "Integrity Watch Slovenia Data Dictionary",
  "version": "1.1",
  "generated_at": "2026-09-01T09:30:44+02:00",
  "publisher": "Transparency International Slovenia",
  "contact": "info@transparency.si",
  "language": "English; source labels and controlled values are retained in Slovenian",
  "scope": "Four datasets used by Integrity Watch Slovenia / Varuh integritete",
  "interpretation_notice": "Records and quality flags are not findings of corruption or illegality. Verify material findings against the authoritative source.",
  "quality_flag_definitions": {
    "distinct_id_required": "CSV rows can exceed the number of lobbying contacts; use distinct id values for contact totals.",
    "party_group_missing_post_2023": "The supplied ERAR export does not contain parliamentary party/group information.",
    "legacy_enrichment_missing": "Fields added in the 2026 remediation are blank for historical rows.",
    "source_description_missing": "The official source may contain a blank purpose description.",
    "source_future_date": "The authoritative source contains an implausible future year that has not been silently corrected.",
    "open_ended_sentinel": "A defined synthetic date represents an open-ended source value.",
    "dashboard_scope_filter": "The public visualisation displays only a configured subset of the full source table.",
    "donor_missing_in_source": "The official gifts export does not provide a donor name for the affected row; no donor is inferred from other fields.",
    "delivery_occasion_unavailable_in_source": "The official gifts export has no field equivalent to the legacy delivery occasion, so the published value is ni podatka.",
    "value_not_estimable_source_zero": "A source value of 0.00 corresponds to an unestimated value and is published as neocenjena vrednost, not EUR 0.",
    "source_implausible_form_completed_date": "An implausible source form-completion date is retained in the raw file, omitted from the clean date field and flagged.",
    "possible_duplicate_without_stable_source_id": "More than one source row has the same normalised fingerprint; candidates are retained because the source provides no stable gift identifier.",
    "legacy_incomplete_provenance": "A retained pre-2016 legacy gift row lacks one or more row-level provenance fields now used by the controlled update process."
  },
  "datasets": [
    {
      "dataset_id": "government_lobbying",
      "title": "Reported lobbying contacts – government dashboard",
      "local_title": "Poročani lobistični stiki – vlada",
      "status": "remediated_with_known_limitations",
      "file": "public/data/tab_a/executive.csv",
      "raw_source_file": "public/data/source/lobbying_contacts_2023-09-01_2026-07-31.csv",
      "description": "Analytical staging table used by the government lobbying dashboard. The web application applies an institution mapping and excludes public bodies outside the configured central-government scope.",
      "source": {
        "name": "ERAR – Seznam poročanih lobističnih stikov",
        "url": "https://erar.si/lobiranje/",
        "publisher": "Commission for the Prevention of Corruption (KPK)",
        "source_export_date": "2026-08-27",
        "source_coverage_end": "2026-07-31"
      },
      "related_legislation": [
        {
          "title": "Integrity and Prevention of Corruption Act (ZIntPK), consolidated text",
          "url": "https://pisrs.si/api/datoteke/integracije/355924219"
        }
      ],
      "period": {
        "start": "2017-01-25",
        "end": "2026-07-30"
      },
      "geographic_scope": "National – Slovenia",
      "update_frequency": "Ad hoc; no recurring TI Slovenia refresh schedule is documented",
      "unit_of_analysis": "Distinct analytical combination within a reported contact; id is the contact identifier",
      "record_count": 11265,
      "distinct_contact_ids": 4898,
      "notes_limitations": [
        "The main CSV is an analytical table, not a one-row-per-contact table. Count distinct id values for contacts.",
        "The supplied source expands a contact across participants and organisations. Duplicate rows after canonical text/date normalisation and analytically identical dashboard rows were collapsed; names are retained as pipe-delimited enrichment.",
        "Rows marked Ugotovitev KPK = Ne are not shown in the main dashboard and remain downloadable in the excluded-records file.",
        "Rows marked Ugotovitev KPK = Da but lacking a public-body value cannot be classified safely. They are excluded from the dashboard and retained in lobbying_contacts_quarantined_missing_institution.csv.",
        "Thirteen legacy source rows (three analytical combinations) also lacked an institution. They are removed from the main application CSV and retained in legacy_lobbying_quarantined_missing_institution.csv.",
        "Names, locations, KPK finding and export date are unavailable in legacy rows through 2023-08-31.",
        "A reported contact or discrepancy is not, by itself, evidence of unlawful lobbying or corruption.",
        "The staging CSV contains non-parliamentary bodies beyond the dashboard scope; institutions_streamlining_new.csv controls display and must be maintained when source names change."
      ],
      "quality_flags": [
        "distinct_id_required",
        "legacy_enrichment_missing",
        "source_description_missing"
      ],
      "variables": [
        {
          "name": "row_index",
          "data_type": "Numeric",
          "format": "integer",
          "description": "Zero-based row number generated for the published CSV.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "",
          "notes_limitations": "Not a stable identifier; use id for a lobbying contact."
        },
        {
          "name": "contact_type",
          "data_type": "Categorical",
          "format": "",
          "description": "Method through which the lobbying contact took place.",
          "allowed_values": [
            "OSEBNO",
            "PO E-POŠTI",
            "PO POŠTI",
            "PO TELEFONU",
            "DRUGO"
          ],
          "nullable": false,
          "source_field": "Način lobiranja",
          "notes_limitations": ""
        },
        {
          "name": "date",
          "data_type": "Date",
          "format": "YYYY-MM-DD",
          "description": "Date on which the lobbying contact occurred.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "Datum lobiranja",
          "notes_limitations": ""
        },
        {
          "name": "function",
          "data_type": "Categorical",
          "format": "",
          "description": "Type of public-office role held by the lobbied person.",
          "allowed_values": [
            "Funkcionar",
            "Javni uslužbenec"
          ],
          "nullable": false,
          "source_field": "Tip funkcije",
          "notes_limitations": ""
        },
        {
          "name": "id",
          "data_type": "Text",
          "format": "alphanumeric",
          "description": "Identifier assigned to the reported lobbying contact in the source system.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "ID lobističnega stika",
          "notes_limitations": "Count distinct id values when reporting the number of contacts. One contact can have multiple analytical rows."
        },
        {
          "name": "institution",
          "data_type": "Text",
          "format": "",
          "description": "Public body whose official or employee was lobbied.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "Organizacija",
          "notes_limitations": "Government dashboard visibility is governed by institutions_streamlining_new.csv; the executive CSV is a broader staging table."
        },
        {
          "name": "lobbyist_type",
          "data_type": "Categorical",
          "format": "",
          "description": "Normalised short description of the lobbyist's legal/organisational role.",
          "allowed_values": [
            "Registrirani lobist",
            "Zaposlen v organizaciji",
            "Zakoniti zastopnik",
            "Izvoljeni predstavnik"
          ],
          "nullable": false,
          "source_field": "Role flags in the ERAR export",
          "notes_limitations": ""
        },
        {
          "name": "lobbyist_type_full",
          "data_type": "Text",
          "format": "",
          "description": "Full explanatory label corresponding to lobbyist_type.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "Derived from role flags",
          "notes_limitations": ""
        },
        {
          "name": "org_name",
          "data_type": "Text",
          "format": "",
          "description": "Interest organisation or foreign company on whose behalf the contact took place.",
          "allowed_values": [],
          "nullable": true,
          "source_field": "Interesna organizacija; fallback Tuje podjetje naziv",
          "notes_limitations": ""
        },
        {
          "name": "party",
          "data_type": "Text",
          "format": "",
          "description": "Parliamentary party or interest group of the lobbied person, where available.",
          "allowed_values": [],
          "nullable": true,
          "source_field": "Legacy enrichment; absent from the supplied 2026 ERAR export",
          "notes_limitations": "Blank for all new parliamentary rows dated 2023-09-01 onward. A separate time-valid lookup is required to fulfil the planned Party_Group enrichment."
        },
        {
          "name": "purpose",
          "data_type": "Categorical",
          "format": "",
          "description": "High-level statutory purpose of the lobbying contact.",
          "allowed_values": [
            "Vpliv na odločanje v drugih zadevah",
            "Vpliv na sprejem predpisov in drugih splošnih aktov"
          ],
          "nullable": false,
          "source_field": "Namen lobiranja",
          "notes_limitations": ""
        },
        {
          "name": "purpose_details",
          "data_type": "Text",
          "format": "",
          "description": "Free-text description of the subject matter and intended influence.",
          "allowed_values": [],
          "nullable": true,
          "source_field": "Opis lobiranja",
          "notes_limitations": "Source descriptions may be missing, inconsistent or supplied at different levels of detail."
        },
        {
          "name": "lobbied_person",
          "data_type": "Text",
          "format": "",
          "description": "Name(s) of the lobbied person(s), separated by a vertical bar where an analytical row aggregates several names.",
          "allowed_values": [],
          "nullable": true,
          "source_field": "Lobiranci",
          "notes_limitations": "Available only for records imported from the 2026 export; legacy rows remain blank."
        },
        {
          "name": "lobbyist",
          "data_type": "Text",
          "format": "",
          "description": "Name(s) of the lobbyist(s), separated by a vertical bar where needed.",
          "allowed_values": [],
          "nullable": true,
          "source_field": "Lobisti",
          "notes_limitations": "Available only for records imported from the 2026 export and can be blank in the source."
        },
        {
          "name": "lobbying_location",
          "data_type": "Text",
          "format": "",
          "description": "Location reported for an in-person contact; multiple values are separated by a vertical bar.",
          "allowed_values": [],
          "nullable": true,
          "source_field": "Kraj lobiranja",
          "notes_limitations": "Not applicable to some contact methods and not harmonised in the source."
        },
        {
          "name": "kpk_finding",
          "data_type": "Categorical",
          "format": "",
          "description": "KPK assessment recorded in the 2026 ERAR export.",
          "allowed_values": [
            "Da"
          ],
          "nullable": true,
          "source_field": "Ugotovitev KPK",
          "notes_limitations": "The dashboard appends only Da rows. Ne rows are retained in the separate excluded-records CSV. Legacy rows have no value."
        },
        {
          "name": "source_url",
          "data_type": "Text",
          "format": "URI",
          "description": "URL of the official source application.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "Added by the transformation",
          "notes_limitations": ""
        },
        {
          "name": "source_export_date",
          "data_type": "Date",
          "format": "YYYY-MM-DD",
          "description": "Date associated with the supplied source export.",
          "allowed_values": [],
          "nullable": true,
          "source_field": "Added by the transformation",
          "notes_limitations": "Blank for legacy rows predating the 2026 remediation."
        }
      ]
    },
    {
      "dataset_id": "parliament_lobbying",
      "title": "Reported lobbying contacts – parliament dashboard",
      "local_title": "Poročani lobistični stiki – parlament",
      "status": "remediated_with_missing_party_enrichment",
      "file": "public/data/tab_b/parliament.csv",
      "raw_source_file": "public/data/source/lobbying_contacts_2023-09-01_2026-07-31.csv",
      "description": "Analytical table of reported lobbying contacts involving the National Assembly or National Council of Slovenia.",
      "source": {
        "name": "ERAR – Seznam poročanih lobističnih stikov",
        "url": "https://erar.si/lobiranje/",
        "publisher": "Commission for the Prevention of Corruption (KPK)",
        "source_export_date": "2026-08-27",
        "source_coverage_end": "2026-07-31"
      },
      "related_legislation": [
        {
          "title": "Integrity and Prevention of Corruption Act (ZIntPK), consolidated text",
          "url": "https://pisrs.si/api/datoteke/integracije/355924219"
        }
      ],
      "period": {
        "start": "2017-02-03",
        "end": "2026-07-29"
      },
      "geographic_scope": "National – Slovenia",
      "update_frequency": "Ad hoc; no recurring TI Slovenia refresh schedule is documented",
      "unit_of_analysis": "Distinct analytical combination within a reported contact; id is the contact identifier",
      "record_count": 7222,
      "distinct_contact_ids": 3345,
      "notes_limitations": [
        "The main CSV is an analytical table, not a one-row-per-contact table. Count distinct id values for contacts.",
        "The supplied source expands a contact across participants and organisations. Duplicate rows after canonical text/date normalisation and analytically identical dashboard rows were collapsed; names are retained as pipe-delimited enrichment.",
        "Rows marked Ugotovitev KPK = Ne are not shown in the main dashboard and remain downloadable in the excluded-records file.",
        "Rows marked Ugotovitev KPK = Da but lacking a public-body value cannot be classified safely. They are excluded from the dashboard and retained in lobbying_contacts_quarantined_missing_institution.csv.",
        "Thirteen legacy source rows (three analytical combinations) also lacked an institution. They are removed from the main application CSV and retained in legacy_lobbying_quarantined_missing_institution.csv.",
        "Names, locations, KPK finding and export date are unavailable in legacy rows through 2023-08-31.",
        "A reported contact or discrepancy is not, by itself, evidence of unlawful lobbying or corruption.",
        "Party_Group was promised in the workplan but is absent from the supplied 2026 ERAR export. The party field is blank for newly imported rows; do not infer affiliation from a person's name without a time-valid authoritative lookup."
      ],
      "quality_flags": [
        "distinct_id_required",
        "party_group_missing_post_2023",
        "legacy_enrichment_missing",
        "source_description_missing"
      ],
      "variables": [
        {
          "name": "row_index",
          "data_type": "Numeric",
          "format": "integer",
          "description": "Zero-based row number generated for the published CSV.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "",
          "notes_limitations": "Not a stable identifier; use id for a lobbying contact."
        },
        {
          "name": "contact_type",
          "data_type": "Categorical",
          "format": "",
          "description": "Method through which the lobbying contact took place.",
          "allowed_values": [
            "OSEBNO",
            "PO E-POŠTI",
            "PO POŠTI",
            "PO TELEFONU",
            "DRUGO"
          ],
          "nullable": false,
          "source_field": "Način lobiranja",
          "notes_limitations": ""
        },
        {
          "name": "date",
          "data_type": "Date",
          "format": "YYYY-MM-DD",
          "description": "Date on which the lobbying contact occurred.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "Datum lobiranja",
          "notes_limitations": ""
        },
        {
          "name": "function",
          "data_type": "Categorical",
          "format": "",
          "description": "Type of public-office role held by the lobbied person.",
          "allowed_values": [
            "Funkcionar",
            "Javni uslužbenec"
          ],
          "nullable": false,
          "source_field": "Tip funkcije",
          "notes_limitations": ""
        },
        {
          "name": "id",
          "data_type": "Text",
          "format": "alphanumeric",
          "description": "Identifier assigned to the reported lobbying contact in the source system.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "ID lobističnega stika",
          "notes_limitations": "Count distinct id values when reporting the number of contacts. One contact can have multiple analytical rows."
        },
        {
          "name": "institution",
          "data_type": "Text",
          "format": "",
          "description": "Public body whose official or employee was lobbied.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "Organizacija",
          "notes_limitations": "Government dashboard visibility is governed by institutions_streamlining_new.csv; the executive CSV is a broader staging table."
        },
        {
          "name": "lobbyist_type",
          "data_type": "Categorical",
          "format": "",
          "description": "Normalised short description of the lobbyist's legal/organisational role.",
          "allowed_values": [
            "Registrirani lobist",
            "Zaposlen v organizaciji",
            "Zakoniti zastopnik",
            "Izvoljeni predstavnik"
          ],
          "nullable": false,
          "source_field": "Role flags in the ERAR export",
          "notes_limitations": ""
        },
        {
          "name": "lobbyist_type_full",
          "data_type": "Text",
          "format": "",
          "description": "Full explanatory label corresponding to lobbyist_type.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "Derived from role flags",
          "notes_limitations": ""
        },
        {
          "name": "org_name",
          "data_type": "Text",
          "format": "",
          "description": "Interest organisation or foreign company on whose behalf the contact took place.",
          "allowed_values": [],
          "nullable": true,
          "source_field": "Interesna organizacija; fallback Tuje podjetje naziv",
          "notes_limitations": ""
        },
        {
          "name": "party",
          "data_type": "Text",
          "format": "",
          "description": "Parliamentary party or interest group of the lobbied person, where available.",
          "allowed_values": [],
          "nullable": true,
          "source_field": "Legacy enrichment; absent from the supplied 2026 ERAR export",
          "notes_limitations": "Blank for all new parliamentary rows dated 2023-09-01 onward. A separate time-valid lookup is required to fulfil the planned Party_Group enrichment."
        },
        {
          "name": "purpose",
          "data_type": "Categorical",
          "format": "",
          "description": "High-level statutory purpose of the lobbying contact.",
          "allowed_values": [
            "Vpliv na odločanje v drugih zadevah",
            "Vpliv na sprejem predpisov in drugih splošnih aktov"
          ],
          "nullable": false,
          "source_field": "Namen lobiranja",
          "notes_limitations": ""
        },
        {
          "name": "purpose_details",
          "data_type": "Text",
          "format": "",
          "description": "Free-text description of the subject matter and intended influence.",
          "allowed_values": [],
          "nullable": true,
          "source_field": "Opis lobiranja",
          "notes_limitations": "Source descriptions may be missing, inconsistent or supplied at different levels of detail."
        },
        {
          "name": "lobbied_person",
          "data_type": "Text",
          "format": "",
          "description": "Name(s) of the lobbied person(s), separated by a vertical bar where an analytical row aggregates several names.",
          "allowed_values": [],
          "nullable": true,
          "source_field": "Lobiranci",
          "notes_limitations": "Available only for records imported from the 2026 export; legacy rows remain blank."
        },
        {
          "name": "lobbyist",
          "data_type": "Text",
          "format": "",
          "description": "Name(s) of the lobbyist(s), separated by a vertical bar where needed.",
          "allowed_values": [],
          "nullable": true,
          "source_field": "Lobisti",
          "notes_limitations": "Available only for records imported from the 2026 export and can be blank in the source."
        },
        {
          "name": "lobbying_location",
          "data_type": "Text",
          "format": "",
          "description": "Location reported for an in-person contact; multiple values are separated by a vertical bar.",
          "allowed_values": [],
          "nullable": true,
          "source_field": "Kraj lobiranja",
          "notes_limitations": "Not applicable to some contact methods and not harmonised in the source."
        },
        {
          "name": "kpk_finding",
          "data_type": "Categorical",
          "format": "",
          "description": "KPK assessment recorded in the 2026 ERAR export.",
          "allowed_values": [
            "Da"
          ],
          "nullable": true,
          "source_field": "Ugotovitev KPK",
          "notes_limitations": "The dashboard appends only Da rows. Ne rows are retained in the separate excluded-records CSV. Legacy rows have no value."
        },
        {
          "name": "source_url",
          "data_type": "Text",
          "format": "URI",
          "description": "URL of the official source application.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "Added by the transformation",
          "notes_limitations": ""
        },
        {
          "name": "source_export_date",
          "data_type": "Date",
          "format": "YYYY-MM-DD",
          "description": "Date associated with the supplied source export.",
          "allowed_values": [],
          "nullable": true,
          "source_field": "Added by the transformation",
          "notes_limitations": "Blank for legacy rows predating the 2026 remediation."
        }
      ]
    },
    {
      "dataset_id": "business_restrictions",
      "title": "Business restrictions",
      "local_title": "Omejitve poslovanja",
      "status": "refreshed_from_official_kpk_export_with_source_anomalies",
      "file": "public/data/tab_c/business_limitations.csv",
      "raw_source_file": "public/data/source/kpk_business_restrictions_2026-08-31.csv",
      "description": "KPK register of business restrictions, normalised for the Integrity Watch Slovenia application.",
      "source": {
        "name": "KPK machine-readable list of business restrictions",
        "url": "https://registri.kpk-rs.si/registri/omejitve_poslovanja/seznam/omejitve.csv",
        "publisher": "Commission for the Prevention of Corruption (KPK)",
        "retrieved_date": "2026-08-31"
      },
      "related_legislation": [
        {
          "title": "Integrity and Prevention of Corruption Act (ZIntPK), consolidated text",
          "url": "https://pisrs.si/api/datoteke/integracije/355924219"
        }
      ],
      "period": {
        "start": "1970-01-01",
        "end": "open-ended values included"
      },
      "geographic_scope": "National and local public sector – Slovenia; the dashboard displays a configured subset",
      "update_frequency": "Ad hoc in Integrity Watch; KPK source is maintained by the competent authority",
      "unit_of_analysis": "One reported restriction between a public-sector body and an entity/holding",
      "record_count": 8873,
      "notes_limitations": [
        "The official KPK export retrieved on 2026-08-31 contains four future start dates (2077, 2088 and 2104). They are preserved as source anomalies and must be verified by KPK before correction.",
        "The value 9999-12-30 is introduced by the transformation to represent a blank/open-ended DATUM_DO value.",
        "The former Limited/transaction-count field was removed because the current official KPK export provides no such measure.",
        "The dashboard filters the full register to an explicit list of parliamentary and central-government bodies."
      ],
      "quality_flags": [
        "source_future_date",
        "open_ended_sentinel",
        "dashboard_scope_filter"
      ],
      "variables": [
        {
          "name": "row_index",
          "data_type": "Numeric",
          "format": "integer",
          "description": "Zero-based row number generated for the published CSV.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "",
          "notes_limitations": "Not a stable identifier."
        },
        {
          "name": "Omejitev_do",
          "data_type": "Categorical",
          "format": "",
          "description": "Type of entity subject to the business restriction.",
          "allowed_values": [
            "Poslovni subjekt",
            "Kmetijsko gospodarstvo"
          ],
          "nullable": false,
          "source_field": "TIP_OMEJITVE (ps/kg)",
          "notes_limitations": ""
        },
        {
          "name": "Organizacija",
          "data_type": "Text",
          "format": "",
          "description": "Public-sector body to which the restriction applies.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "ORGAN",
          "notes_limitations": ""
        },
        {
          "name": "Subjekt",
          "data_type": "Text",
          "format": "",
          "description": "Business entity or agricultural holding subject to the restriction.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "PS_NAZIV",
          "notes_limitations": ""
        },
        {
          "name": "Velja_do",
          "data_type": "Date",
          "format": "YYYY-MM-DD",
          "description": "End date of the restriction.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "DATUM_DO",
          "notes_limitations": "9999-12-30 is an application sentinel meaning open-ended / until revoked."
        },
        {
          "name": "Velja_od",
          "data_type": "Date",
          "format": "YYYY-MM-DD",
          "description": "Start date of the restriction.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "DATUM_OD",
          "notes_limitations": ""
        },
        {
          "name": "source_url",
          "data_type": "Text",
          "format": "URI",
          "description": "Direct URL of the official KPK machine-readable CSV.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "Added by the transformation",
          "notes_limitations": ""
        },
        {
          "name": "source_retrieved_date",
          "data_type": "Date",
          "format": "YYYY-MM-DD",
          "description": "Date on which TI Slovenia retrieved the official file.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "Added by the transformation",
          "notes_limitations": ""
        }
      ]
    },
    {
      "dataset_id": "gifts",
      "title": "Gifts received by public officials and bodies",
      "local_title": "Darila",
      "status": "refreshed_from_erar_with_documented_source_limitations",
      "file": "public/data/tab_d/gifts.csv",
      "raw_source_file": "public/data/source/erar_gifts_2026-08-31_raw.csv",
      "description": "Merged and standardised gifts table. Legacy Integrity Watch records are retained only before 2016-09-01; the complete overlapping period is superseded by the supplied official ERAR export dated 2026-08-31.",
      "source": {
        "name": "ERAR – gifts",
        "url": "https://erar.si/darila/",
        "publisher": "Commission for the Prevention of Corruption (KPK)",
        "source_export_date": "2026-08-31",
        "source_file_sha256": "ff44d3a9fafa8149200608775fc3d4171e571479b65e4cf0248ce8e42fce499a"
      },
      "related_legislation": [
        {
          "title": "Integrity and Prevention of Corruption Act (ZIntPK), consolidated text",
          "url": "https://pisrs.si/api/datoteke/integracije/355924219"
        }
      ],
      "period": {
        "start": "2013-04-30",
        "end": "2026-06-18",
        "official_export_start": "2016-09-01",
        "official_export_end": "2026-06-18",
        "source_export_date": "2026-08-31"
      },
      "geographic_scope": "National and local public sector – Slovenia",
      "update_frequency": "Annual source reporting by 31 March for the preceding year; Integrity Watch refresh remains ad hoc",
      "unit_of_analysis": "One published source row for a reported gift; repeated identical rows are occurrence-numbered because the source has no stable gift identifier",
      "record_count": 4613,
      "notes_limitations": [
        "The official export begins on 2016-09-01. The transformation retains 1,871 legacy records before that date and replaces all 2,092 overlapping legacy rows with all 2,742 official-source rows.",
        "The source provides no stable gift identifier. Thirteen normalised pairs are identical, but none is deleted because identical rows can represent separate physical gifts; candidates remain fingerprinted and occurrence-numbered in a separate audit file.",
        "The official source omits donor names in 2,366 of 2,742 rows. These are displayed as ni podatka, and the Top donors chart excludes the placeholder while the rows remain in totals and tables.",
        "The official source has no field equivalent to legacy delivery_occasion. New rows use ni podatka and are excluded from that chart; razlog_za_izrocitev is retained only as reason rather than copied into two fields.",
        "All 126 official rows whose source value is 0.00 are represented as neocenjena vrednost, consistent with matching legacy records. The raw source value remains available.",
        "The source field leto_porocanja is blank in all 2,742 official rows and is therefore omitted from the published clean table but retained in the raw CSV.",
        "One source form-completion date is 1023-11-27. It is preserved in the raw source, omitted from the clean date field and marked by a quality flag rather than guessed.",
        "Export date and latest received-gift date are different: the file was exported on 2026-08-31, but the latest received gift in it is dated 2026-06-18.",
        "A published gift record, large value or reporting anomaly is not by itself evidence of corruption or misconduct."
      ],
      "quality_flags": [
        "donor_missing_in_source",
        "delivery_occasion_unavailable_in_source",
        "value_not_estimable_source_zero",
        "source_implausible_form_completed_date",
        "possible_duplicate_without_stable_source_id",
        "legacy_incomplete_provenance"
      ],
      "variables": [
        {
          "name": "gift_id",
          "data_type": "Text",
          "format": "ERAR-<16 hexadecimal characters>-<occurrence> or LEGACY-...",
          "description": "Deterministic publication identifier made from the source-row fingerprint and occurrence number.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "Derived by the transformation",
          "notes_limitations": "This is not an identifier assigned by KPK/ERAR. It distinguishes repeated identical source rows without deleting them."
        },
        {
          "name": "date",
          "data_type": "Date",
          "format": "YYYY-MM-DD",
          "description": "Reported date on which the gift was received.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "datum_prejema; legacy date",
          "notes_limitations": ""
        },
        {
          "name": "org",
          "data_type": "Text",
          "format": "",
          "description": "Public-sector body associated with the recipient.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "prejemnik",
          "notes_limitations": ""
        },
        {
          "name": "recipient",
          "data_type": "Categorical",
          "format": "",
          "description": "Category of the recipient.",
          "allowed_values": [
            "funkcionar",
            "uradna oseba",
            "državni organ/lokalna skupnost/nosilec javnih pooblastil",
            "družinski član uradne osebe",
            "družinski član funkcionarja",
            "tretja oseba"
          ],
          "nullable": false,
          "source_field": "tip_prejemnika",
          "notes_limitations": ""
        },
        {
          "name": "recipient_name",
          "data_type": "Text",
          "format": "",
          "description": "Reported given name and surname of the recipient.",
          "allowed_values": [],
          "nullable": true,
          "source_field": "ime_prejemnika + priimek_prejemnika",
          "notes_limitations": "Unavailable in retained legacy records before 2016-09-01."
        },
        {
          "name": "recipient_registration_number",
          "data_type": "Text",
          "format": "",
          "description": "Registration number of the recipient organisation.",
          "allowed_values": [],
          "nullable": true,
          "source_field": "prejemnik_maticna",
          "notes_limitations": "Stored as text to preserve leading zeroes; unavailable in retained legacy records."
        },
        {
          "name": "donor",
          "data_type": "Text",
          "format": "",
          "description": "Reported donor name, or ni podatka when the source provides no name.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "darovalec; fallback darovalec_tuje_naziv",
          "notes_limitations": "The 2026 source export omits the donor name in 2,366 of 2,742 rows. No donor is inferred from registration numbers or other fields."
        },
        {
          "name": "donor_registration_number",
          "data_type": "Text",
          "format": "",
          "description": "Registration number of a domestic donor.",
          "allowed_values": [],
          "nullable": true,
          "source_field": "darovalec_maticna",
          "notes_limitations": ""
        },
        {
          "name": "donor_foreign_name",
          "data_type": "Text",
          "format": "",
          "description": "Foreign-donor name as provided in the dedicated source field.",
          "allowed_values": [],
          "nullable": true,
          "source_field": "darovalec_tuje_naziv",
          "notes_limitations": ""
        },
        {
          "name": "gift_type",
          "data_type": "Categorical",
          "format": "",
          "description": "Reported type of gift.",
          "allowed_values": [
            "priložnostno",
            "protokolarno"
          ],
          "nullable": false,
          "source_field": "tip_darila",
          "notes_limitations": ""
        },
        {
          "name": "delivery_method",
          "data_type": "Categorical",
          "format": "",
          "description": "Whether the gift was delivered directly or indirectly.",
          "allowed_values": [
            "neposredno",
            "posredno"
          ],
          "nullable": false,
          "source_field": "darilo_izrocitev",
          "notes_limitations": ""
        },
        {
          "name": "description",
          "data_type": "Text",
          "format": "",
          "description": "Free-text description of the gift.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "opis_darila",
          "notes_limitations": "No published row has an empty description."
        },
        {
          "name": "value",
          "data_type": "Text",
          "format": "decimal with two places followed by EUR, or neocenjena vrednost",
          "description": "Reported or estimated gift value.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "vrednost",
          "notes_limitations": "All 126 official-source values recorded as 0.00 are treated as not estimable, consistent with their matching legacy representation; the raw value remains in the preserved source file."
        },
        {
          "name": "currency",
          "data_type": "Categorical",
          "format": "",
          "description": "ISO currency code for numeric values.",
          "allowed_values": [
            "EUR"
          ],
          "nullable": true,
          "source_field": "Added by the transformation",
          "notes_limitations": "Blank when the value is not estimable."
        },
        {
          "name": "value_method",
          "data_type": "Categorical",
          "format": "",
          "description": "Standardised analytical category for the method used to determine or estimate value.",
          "allowed_values": [
            "nestrokovna ali lastna ocena",
            "tržna ali dokumentirana cena",
            "vrednosti ni mogoče oceniti",
            "podatek darovalca",
            "kombinirana ocena in tržna primerjava",
            "strokovna ocena",
            "drugo oziroma premalo določeno"
          ],
          "nullable": false,
          "source_field": "Derived from nacin_dolocitve_vrednosti; legacy value_method",
          "notes_limitations": ""
        },
        {
          "name": "value_method_raw",
          "data_type": "Text",
          "format": "",
          "description": "Unmodified source wording for the valuation method after whitespace and Unicode normalisation.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "nacin_dolocitve_vrednosti; legacy value_method",
          "notes_limitations": ""
        },
        {
          "name": "delivery_occasion",
          "data_type": "Text",
          "format": "",
          "description": "Occasion on which the gift was delivered, where the legacy source provided a separate field.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "Legacy delivery_occasion only",
          "notes_limitations": "The official 2026 ERAR export has no equivalent field. New rows contain ni podatka; razlog_za_izrocitev is not duplicated into this semantically different field."
        },
        {
          "name": "reason",
          "data_type": "Text",
          "format": "",
          "description": "Reported reason or circumstances for delivery of the gift.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "razlog_za_izrocitev; legacy reason",
          "notes_limitations": ""
        },
        {
          "name": "gift_owner",
          "data_type": "Text",
          "format": "",
          "description": "Reported owner of the gift after receipt.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "darilo_postalo_last",
          "notes_limitations": ""
        },
        {
          "name": "form_completed_date",
          "data_type": "Date",
          "format": "YYYY-MM-DD",
          "description": "Reported date on which the gift form was completed.",
          "allowed_values": [],
          "nullable": true,
          "source_field": "datum_izpolnitve_obrazca",
          "notes_limitations": "Unavailable in legacy rows and in 1,690 official rows. The implausible source date 1023-11-27 is not propagated into the clean field and is flagged instead."
        },
        {
          "name": "record_completed_date",
          "data_type": "Date",
          "format": "YYYY-MM-DD",
          "description": "System date associated with completion of the ERAR record.",
          "allowed_values": [],
          "nullable": true,
          "source_field": "izpolnjeno_dne",
          "notes_limitations": "Unavailable in retained legacy records."
        },
        {
          "name": "source_url",
          "data_type": "Text",
          "format": "URI",
          "description": "URL of the official source application.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "Added by the transformation",
          "notes_limitations": ""
        },
        {
          "name": "source_export_date",
          "data_type": "Date",
          "format": "YYYY-MM-DD",
          "description": "Date of the supplied ERAR export.",
          "allowed_values": [],
          "nullable": true,
          "source_field": "Added by the transformation",
          "notes_limitations": "Blank for retained legacy records because their exact export date is not documented."
        },
        {
          "name": "source_file",
          "data_type": "Text",
          "format": "",
          "description": "File from which the published row was transformed.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "Added by the transformation",
          "notes_limitations": ""
        },
        {
          "name": "source_row",
          "data_type": "Numeric",
          "format": "integer",
          "description": "One-based spreadsheet/CSV row number, including the header row at row 1.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "Added by the transformation",
          "notes_limitations": ""
        },
        {
          "name": "record_origin",
          "data_type": "Categorical",
          "format": "",
          "description": "Provenance segment used in the merged publication.",
          "allowed_values": [
            "official_erar_export",
            "legacy_integritywatch_pre_2016-09-01"
          ],
          "nullable": false,
          "source_field": "Added by the transformation",
          "notes_limitations": ""
        },
        {
          "name": "record_fingerprint",
          "data_type": "Text",
          "format": "64 hexadecimal characters",
          "description": "SHA-256 fingerprint of normalised source fields.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "Derived by the transformation",
          "notes_limitations": "Not a KPK identifier and not sufficient evidence that two identical rows represent one physical gift."
        },
        {
          "name": "record_occurrence",
          "data_type": "Numeric",
          "format": "positive integer",
          "description": "Occurrence number among rows with the same fingerprint.",
          "allowed_values": [],
          "nullable": false,
          "source_field": "Derived by the transformation",
          "notes_limitations": ""
        },
        {
          "name": "duplicate_candidate",
          "data_type": "Boolean",
          "format": "",
          "description": "True when more than one source row has the same normalised fingerprint.",
          "allowed_values": [
            "true",
            "false"
          ],
          "nullable": false,
          "source_field": "Derived by the transformation",
          "notes_limitations": "Candidate rows are retained because the source contains no stable gift identifier."
        },
        {
          "name": "quality_flags",
          "data_type": "Text",
          "format": "",
          "description": "Pipe-delimited list of documented source or transformation caveats for the row.",
          "allowed_values": [],
          "nullable": true,
          "source_field": "Derived by the transformation",
          "notes_limitations": ""
        }
      ]
    }
  ]
}
