{
  "_id": "6ae3c30e95ca2370cc8ceb12",
  "Package": "datagrade",
  "Type": "Package",
  "Title": "Data Quality Assessment on the ISO/IEC 25012 Model",
  "Version": "0.2.0",
  "Authors@R": "person(\"Omer Haluk\", \"Demirhan\", email = \"hlk01dn@gmail.com\",\nrole = c(\"aut\", \"cre\"))",
  "Description": "A single-call data quality assessment scoring a data set\non the five inherent characteristics of the ISO/IEC 25012 data\nquality model (accuracy, completeness, consistency, credibility\nand currentness) through the fifteen quality properties beneath\nthem, ISO/IEC (2008) <https://www.iso.org/standard/35736.html>.\nEach property is measured as a ratio of counted data items, the\nform ISO/IEC 25024 measurement functions take, ISO/IEC (2015)\n<https://www.iso.org/standard/35749.html>. Six properties are\ncomputable from a table alone; the rest compare the data\nagainst expectations declared through a specification object,\nand are reported as not applicable rather than approximated\nwhen none is supplied. Also reports missing-data patterns,\nduplicates, redundant columns, outliers, multicollinearity and\ndistributional deviations, and returns a structured object with\nplots rather than console text alone. The statistics implement\nthe methodology of the author's master's dissertation, Demirhan\n(2024) \"Assessing Data Quality Management Issues in\nOpen-Sourced Data Sets with Statistical Methodology\"\n<https://halukdemirhan.com/assets/msc-thesis-haluk-demirhan-public.pdf>.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "URL": "https://github.com/ohalukdemirhan/datagrade",
  "BugReports": "https://github.com/ohalukdemirhan/datagrade/issues",
  "Config/testthat/edition": "3",
  "VignetteBuilder": "knitr",
  "Config/roxygen2/version": "8.1.0",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-29 22:02:06 UTC",
    "User": "root"
  },
  "Author": "Omer Haluk Demirhan [aut, cre]",
  "Maintainer": "Omer Haluk Demirhan <hlk01dn@gmail.com>",
  "Repository": "https://cran.r-universe.dev",
  "Date/Publication": "2026-10-29 21:14:59 UTC",
  "RemoteUrl": "https://github.com/cran/datagrade",
  "RemoteRef": "HEAD",
  "RemoteSha": "3c6e1a981f0fa5dc08fc1aec139f45ba803fa463",
  "_user": "cran",
  "_type": "src",
  "_file": "datagrade_0.2.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/c626040a6395ea5e695b9bb64fd4f79afe25a24e6e801c9eadab2db5b4c1820f",
  "_filesize": 1169859,
  "_sha256": "c626040a6395ea5e695b9bb64fd4f79afe25a24e6e801c9eadab2db5b4c1820f",
  "_expires": "2027-02-06T22:04:59.000Z",
  "_created": "2026-10-29T22:02:06.000Z",
  "_published": "2026-10-29T22:05:02.131Z",
  "_upstream": "https://github.com/cran/datagrade",
  "_status": "success",
  "_maintainer": {
    "name": "Omer Haluk Demirhan",
    "email": "hlk01dn@gmail.com",
    "login": "ohalukdemirhan",
    "description": "Founder of Commercium, an independent app studio in London. Statistician by training, founder by practice.",
    "uuid": 191179308
  },
  "_jobs": [
    {
      "job": 123759342462,
      "time": 109,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12936218662"
    },
    {
      "job": 123759342661,
      "time": 135,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12937076244"
    },
    {
      "job": 123757861493,
      "time": 191,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12936204328"
    },
    {
      "job": 123759342470,
      "time": 103,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12936289282"
    },
    {
      "job": 123759342548,
      "time": 89,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12936173737"
    },
    {
      "job": 123759342576,
      "time": 90,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12935789489"
    }
  ],
  "_buildurl": "https://github.com/r-universe/cran/actions/runs/40962230465",
  "_commit": {
    "id": "3c6e1a981f0fa5dc08fc1aec139f45ba803fa463",
    "author": "Omer Haluk Demirhan <hlk01dn@gmail.com>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 0.2.0\n",
    "time": 1793308499
  },
  "_distro": "resolute",
  "_host": "GitHub-Actions",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "version": ">= 3.4.0",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "tools",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "randomForest",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "readxl",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": false,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-44",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "0.2.0",
      "date": "2026-10-29"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "ohalukdemirhan",
      "count": 1,
      "uuid": 191179308
    }
  ],
  "_userbio": {
    "uuid": 6899542,
    "type": "organization",
    "name": "cran",
    "followers": 634,
    "description": "Unofficial read-only mirror of all CRAN R packages"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/datagrade"
  },
  "_devurl": "https://github.com/ohalukdemirhan/datagrade",
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/datagrade.html",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_cranurl": false,
  "_releases": [
    {
      "version": "0.2.0",
      "date": "2026-10-29"
    }
  ],
  "_exports": [
    "analyze_correlation",
    "analyze_distribution",
    "analyze_missing_data_patterns",
    "calculate_consistency_score",
    "check_unique_identifiers",
    "clean_text_columns",
    "data_quality_assessment",
    "detect_data_types",
    "detect_duplicates",
    "detect_outliers",
    "dg_assess",
    "dg_plots",
    "dg_save_plots",
    "dg_spec",
    "dg_vif",
    "flag_anomalies_in_relationships",
    "flag_redundant_columns",
    "impute_missing_values",
    "theme_dg",
    "validate_dates"
  ],
  "_help": [
    {
      "page": "analyze_correlation",
      "title": "Correlation matrix, optionally per category",
      "topics": [
        "analyze_correlation"
      ]
    },
    {
      "page": "analyze_distribution",
      "title": "Assess the distribution of every numeric column",
      "topics": [
        "analyze_distribution"
      ]
    },
    {
      "page": "analyze_missing_data_patterns",
      "title": "Summarise missing-data patterns",
      "topics": [
        "analyze_missing_data_patterns"
      ]
    },
    {
      "page": "as.data.frame.dg_report",
      "title": "Coerce a quality report to a one-row data frame",
      "topics": [
        "as.data.frame.dg_report"
      ]
    },
    {
      "page": "calculate_consistency_score",
      "title": "Consistency score from multicollinearity",
      "topics": [
        "calculate_consistency_score"
      ]
    },
    {
      "page": "check_unique_identifiers",
      "title": "Identify columns that could serve as a unique key",
      "topics": [
        "check_unique_identifiers"
      ]
    },
    {
      "page": "clean_text_columns",
      "title": "Normalise text columns without destroying information",
      "topics": [
        "clean_text_columns"
      ]
    },
    {
      "page": "detect_data_types",
      "title": "Detect the semantic type of every column",
      "topics": [
        "detect_data_types"
      ]
    },
    {
      "page": "detect_duplicates",
      "title": "Count duplicate rows",
      "topics": [
        "detect_duplicates"
      ]
    },
    {
      "page": "detect_outliers",
      "title": "Detect outliers in numeric columns",
      "topics": [
        "detect_outliers"
      ]
    },
    {
      "page": "dg_assess",
      "title": "Assess the quality of a data set",
      "topics": [
        "data_quality_assessment",
        "dg_assess"
      ]
    },
    {
      "page": "dg_plots",
      "title": "Figures for a quality report",
      "topics": [
        "dg_plots",
        "plot.dg_report"
      ]
    },
    {
      "page": "dg_save_plots",
      "title": "Save every report figure to a directory",
      "topics": [
        "dg_save_plots"
      ]
    },
    {
      "page": "dg_spec",
      "title": "Declare what the data is supposed to look like",
      "topics": [
        "dg_spec"
      ]
    },
    {
      "page": "dg_vif",
      "title": "Variance inflation factors",
      "topics": [
        "dg_vif"
      ]
    },
    {
      "page": "flag_anomalies_in_relationships",
      "title": "Flag rows whose variable relationships look anomalous",
      "topics": [
        "flag_anomalies_in_relationships"
      ]
    },
    {
      "page": "flag_redundant_columns",
      "title": "Flag redundant columns by pairwise correlation",
      "topics": [
        "flag_redundant_columns"
      ]
    },
    {
      "page": "impute_missing_values",
      "title": "Impute missing numeric values",
      "topics": [
        "impute_missing_values"
      ]
    },
    {
      "page": "print.dg_report",
      "title": "Print a quality report",
      "topics": [
        "print.dg_report"
      ]
    },
    {
      "page": "summary.dg_report",
      "title": "Tabular summary of a quality report",
      "topics": [
        "summary.dg_report"
      ]
    },
    {
      "page": "theme_dg",
      "title": "A recessive ggplot2 theme for quality-report figures",
      "topics": [
        "theme_dg"
      ]
    },
    {
      "page": "validate_dates",
      "title": "Check date columns for impossible and stale values",
      "topics": [
        "validate_dates"
      ]
    }
  ],
  "_readme": "https://github.com/cran/datagrade/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "cpp11",
    "farver",
    "ggplot2",
    "glue",
    "gtable",
    "isoband",
    "labeling",
    "lifecycle",
    "R6",
    "RColorBrewer",
    "rlang",
    "S7",
    "scales",
    "vctrs",
    "viridisLite",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "deviations.Rmd",
      "filename": "deviations.html",
      "title": "Deviations from the dissertation",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Numbers that changed",
        "Consistency score for iris",
        "Redundant columns",
        "Kurtosis",
        "Behaviour that changed",
        "Figures are produced",
        "The function returns something",
        "The data argument exists",
        "Text is not destroyed",
        "Dates are parsed before text is touched",
        "Identifier detection actually fires",
        "Outliers are counted before imputation",
        "Nothing is written to the global environment",
        "Crashes that were fixed",
        "Documentation that was reconciled",
        "The scoring model",
        "What did not change"
      ],
      "created": "2026-10-29 21:14:59",
      "modified": "2026-10-29 21:14:59",
      "commits": 1
    },
    {
      "source": "datagrade.Rmd",
      "filename": "datagrade.html",
      "title": "Getting started with datagrade",
      "engine": "knitr::rmarkdown",
      "headings": [
        "One call",
        "The object, not the printout",
        "Declaring what the data should look like",
        "Plausibility is not accuracy",
        "Assessing many data sets at once",
        "Figures",
        "Reading from a file",
        "Helpers stand alone",
        "Where to next"
      ],
      "created": "2026-10-29 21:14:59",
      "modified": "2026-10-29 21:14:59",
      "commits": 1
    },
    {
      "source": "methodology.Rmd",
      "filename": "methodology.html",
      "title": "Methodology: every formula, stated",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Completeness",
        "Accuracy",
        "Consistency",
        "Timeliness",
        "Distribution",
        "The overall score",
        "The ISO/IEC 25012 model",
        "The six that need no declaration",
        "The nine that need a declaration",
        "Plausibility, which is not accuracy",
        "Aggregation, which the standard does not specify",
        "What is still not claimed",
        "Sources for the claims in this section"
      ],
      "created": "2026-10-29 21:14:59",
      "modified": "2026-10-29 21:14:59",
      "commits": 1
    },
    {
      "source": "scalability.Rmd",
      "filename": "scalability.html",
      "title": "Scalability: 54 thousand to 10 million rows",
      "engine": "knitr::rmarkdown",
      "headings": [
        "What was measured",
        "Results",
        "How",
        "Column count, not row count",
        "Memory"
      ],
      "created": "2026-10-29 21:14:59",
      "modified": "2026-10-29 21:14:59",
      "commits": 1
    }
  ],
  "_score": 3.3010299956639813,
  "_indexed": true,
  "_nocasepkg": "datagrade",
  "_universes": [
    "cran",
    "ohalukdemirhan"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.2.0",
      "date": "2026-10-29T22:03:47.000Z",
      "distro": "resolute",
      "commit": "3c6e1a981f0fa5dc08fc1aec139f45ba803fa463",
      "fileid": "https://r2.ropensci.org/75ebc74ba5f56098f1cdbf71adda8776fc1ec6068bcc2a3032b0312c4fca17ec",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40962230465"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.2.0",
      "date": "2026-10-29T22:04:06.000Z",
      "distro": "resolute",
      "commit": "3c6e1a981f0fa5dc08fc1aec139f45ba803fa463",
      "fileid": "https://r2.ropensci.org/05308e6469bb405f155cb9c0b58805721c75d71f3730a60b3cb7ee2d4bc192e5",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40962230465"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.2.0",
      "date": "2026-10-29T22:04:05.000Z",
      "commit": "3c6e1a981f0fa5dc08fc1aec139f45ba803fa463",
      "fileid": "https://r2.ropensci.org/b4f890cc783b64df8b16c12241b36af02794eac3d1f092b8b1b21370d237a2a3",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40962230465"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.2.0",
      "date": "2026-10-29T22:03:14.000Z",
      "commit": "3c6e1a981f0fa5dc08fc1aec139f45ba803fa463",
      "fileid": "https://r2.ropensci.org/608823ba4d608d94d196f830cef259026aa294cade2a1feae7e46d0bb52f5be2",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40962230465"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.2.0",
      "date": "2026-10-29T22:03:18.000Z",
      "commit": "3c6e1a981f0fa5dc08fc1aec139f45ba803fa463",
      "fileid": "https://r2.ropensci.org/af3a33dc08153a3506b3aa01dc968ace747d283a552459fd856af6efcaa13616",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40962230465"
    }
  ]
}