{
  "_id": "6ac787d5de46216d5edd1ba2",
  "Package": "dqcheckr",
  "Type": "Package",
  "Title": "Automated Data Quality Checks for Recurring Dataset Deliveries",
  "Version": "0.3.0",
  "Date": "2026-07-26",
  "Authors@R": "person(\"Mick\", \"Mioduszewski\",\nemail = \"mick@mioduszewski.net\",\nrole  = c(\"aut\", \"cre\"))",
  "Description": "Automates quality verification of recurring external\ndataset deliveries. For each new file arrival, it runs\nsingle-snapshot quality checks, compares the file to the\nprevious delivery, writes a self-contained 'HTML' report, and\nrecords summary statistics in a local 'SQLite' database for\nlong-term trend tracking. Supports 'CSV' and fixed-width\nformats. Custom organisation-specific checks can be supplied as\nplain R files.",
  "License": "MIT + file LICENSE",
  "URL": "https://mickmioduszewski.github.io/dqcheckr/,\nhttps://github.com/mickmioduszewski/dqcheckr",
  "BugReports": "https://github.com/mickmioduszewski/dqcheckr/issues",
  "Encoding": "UTF-8",
  "Language": "en-GB",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "Config/roxygen2/version": "8.0.0",
  "Config/pak/sysreqs": "cmake libfontconfig1-dev libfreetype6-dev\nlibfribidi-dev make libharfbuzz-dev libicu-dev libpng-dev\nlibuv1-dev libxml2-dev libx11-dev",
  "Repository": "https://mickmioduszewski.r-universe.dev",
  "Date/Publication": "2026-07-25 21:12:46 UTC",
  "RemoteUrl": "https://github.com/mickmioduszewski/dqcheckr",
  "RemoteRef": "HEAD",
  "RemoteSha": "154458505951d7260350b40ce25015544c2f894f",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-08 11:39:32 UTC",
    "User": "root"
  },
  "Author": "Mick Mioduszewski [aut, cre]",
  "Maintainer": "Mick Mioduszewski <mick@mioduszewski.net>",
  "_user": "mickmioduszewski",
  "_type": "src",
  "_file": "dqcheckr_0.3.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/b312a321500a8f40404061f2a3fe871b162fbdc8eab7d9eacc927bac49b53149",
  "_filesize": 491377,
  "_sha256": "b312a321500a8f40404061f2a3fe871b162fbdc8eab7d9eacc927bac49b53149",
  "_expires": "2027-01-16T12:08:51.000Z",
  "_created": "2026-10-08T11:39:32.000Z",
  "_published": "2026-10-08T12:08:53.719Z",
  "_buildurl": "https://github.com/r-universe/mickmioduszewski/actions/runs/37770985078",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 113292108555,
      "time": 206,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11547482706"
    },
    {
      "job": 113292108442,
      "time": 199,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11548092527"
    },
    {
      "job": 113292108330,
      "time": 248,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11549971143"
    },
    {
      "job": 113292108345,
      "time": 292,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11549925465"
    },
    {
      "job": 113290354512,
      "time": 279,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11548591190"
    },
    {
      "job": 113292108428,
      "time": 122,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "11548706344"
    },
    {
      "job": 113292108363,
      "time": 218,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11548326941"
    },
    {
      "job": 113292108438,
      "time": 243,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11547497749"
    },
    {
      "job": 113292108477,
      "time": 200,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11547817435"
    }
  ],
  "_upstream": "https://github.com/mickmioduszewski/dqcheckr",
  "_commit": {
    "id": "154458505951d7260350b40ce25015544c2f894f",
    "author": "Mick Mioduszewski <mick@mioduszewski.net>",
    "committer": "Mick Mioduszewski <mick@mioduszewski.net>",
    "message": "Record the win-builder results for 0.3.0\n\nBoth Status OK with no notes, verified from the 00check.log files rather than\nthe notification emails alone.\n\nCo-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>\n",
    "time": 1785013966
  },
  "_maintainer": {
    "name": "Mick Mioduszewski",
    "email": "mick@mioduszewski.net",
    "login": "mickmioduszewski",
    "description": "",
    "uuid": 539626
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.2",
      "role": "Depends"
    },
    {
      "package": "readr",
      "role": "Imports"
    },
    {
      "package": "stringi",
      "role": "Imports"
    },
    {
      "package": "DBI",
      "role": "Imports"
    },
    {
      "package": "RSQLite",
      "role": "Imports"
    },
    {
      "package": "quarto",
      "role": "Imports"
    },
    {
      "package": "knitr",
      "role": "Imports"
    },
    {
      "package": "kableExtra",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "role": "Imports"
    },
    {
      "package": "gridExtra",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "role": "Imports"
    },
    {
      "package": "yaml",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "tools",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "testthat",
      "version": ">= 3.1.0",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "pkgdown",
      "role": "Suggests"
    }
  ],
  "_owner": "mickmioduszewski",
  "_selfowned": true,
  "_usedby": 1,
  "_updates": [
    {
      "week": "2026-23",
      "n": 24
    },
    {
      "week": "2026-24",
      "n": 1
    },
    {
      "week": "2026-25",
      "n": 2
    },
    {
      "week": "2026-27",
      "n": 7
    },
    {
      "week": "2026-29",
      "n": 27
    },
    {
      "week": "2026-30",
      "n": 18
    }
  ],
  "_tags": [
    {
      "name": "v0.2.0",
      "date": "2026-06-01"
    },
    {
      "name": "v0.2.1",
      "date": "2026-06-03"
    },
    {
      "name": "v0.2.5",
      "date": "2026-07-18"
    },
    {
      "name": "v0.3.0",
      "date": "2026-07-25"
    }
  ],
  "_stars": 1,
  "_contributors": [
    {
      "user": "mickmioduszewski",
      "count": 100,
      "uuid": 539626
    }
  ],
  "_userbio": {
    "uuid": 539626,
    "type": "user",
    "name": "Mick Mioduszewski",
    "followers": 2
  },
  "_downloads": {
    "count": 377,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/dqcheckr"
  },
  "_devurl": "https://github.com/mickmioduszewski/dqcheckr",
  "_pkgdown": "https://mickmioduszewski.github.io/dqcheckr/",
  "_searchresults": 0,
  "_quarto": true,
  "_topics": [
    "quarto"
  ],
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/dqcheckr.html",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/mickmioduszewski/dqcheckr",
  "_realowner": "mickmioduszewski",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.2",
      "date": "2026-05-20"
    },
    {
      "version": "0.2.0",
      "date": "2026-06-01"
    },
    {
      "version": "0.2.1",
      "date": "2026-06-08"
    },
    {
      "version": "0.2.2",
      "date": "2026-06-18"
    },
    {
      "version": "0.2.5",
      "date": "2026-07-18"
    },
    {
      "version": "0.3.0",
      "date": "2026-07-26"
    }
  ],
  "_exports": [
    "check_allowed_values",
    "check_col_count",
    "check_distinct_counts",
    "check_duplicate_rows",
    "check_empty_column",
    "check_file_encoding",
    "check_inferred_types",
    "check_key_uniqueness",
    "check_min_row_count",
    "check_missing_rate",
    "check_non_numeric",
    "check_numeric_bounds",
    "check_numeric_stats",
    "check_outliers",
    "check_pattern",
    "check_row_count",
    "check_schema_contract",
    "compare_snapshots",
    "detect_files",
    "dq_result",
    "generate_dataset_config",
    "generate_global_config",
    "infer_col_type",
    "list_runs",
    "list_snapshots",
    "load_config",
    "overall_status",
    "read_dataset",
    "read_recent_snapshots",
    "resolve_col_type",
    "run_comparison_checks",
    "run_custom_checks",
    "run_dq_check",
    "run_qc_checks",
    "sniff_dataset",
    "validate_config"
  ],
  "_help": [
    {
      "page": "check_allowed_values",
      "title": "QC-09: Check for values outside the allowed set",
      "topics": [
        "check_allowed_values"
      ]
    },
    {
      "page": "check_col_count",
      "title": "QC-05: Report column count",
      "topics": [
        "check_col_count"
      ]
    },
    {
      "page": "check_distinct_counts",
      "title": "QC-08: Report distinct value counts for character columns",
      "topics": [
        "check_distinct_counts"
      ]
    },
    {
      "page": "check_duplicate_rows",
      "title": "QC-03: Check for fully-duplicate rows",
      "topics": [
        "check_duplicate_rows"
      ]
    },
    {
      "page": "check_empty_column",
      "title": "QC-02: Check for entirely empty columns",
      "topics": [
        "check_empty_column"
      ]
    },
    {
      "page": "check_file_encoding",
      "title": "QC-16: File encoding sanity",
      "topics": [
        "check_file_encoding"
      ]
    },
    {
      "page": "check_inferred_types",
      "title": "QC-06: Report inferred column types",
      "topics": [
        "check_inferred_types"
      ]
    },
    {
      "page": "check_key_uniqueness",
      "title": "QC-12: Check uniqueness of key column(s)",
      "topics": [
        "check_key_uniqueness"
      ]
    },
    {
      "page": "check_min_row_count",
      "title": "QC-14: Check row count bounds and optional file size",
      "topics": [
        "check_min_row_count"
      ]
    },
    {
      "page": "check_missing_rate",
      "title": "QC-01: Check missing rate per column",
      "topics": [
        "check_missing_rate"
      ]
    },
    {
      "page": "check_non_numeric",
      "title": "QC-11: Check non-numeric rate in numeric columns",
      "topics": [
        "check_non_numeric"
      ]
    },
    {
      "page": "check_numeric_bounds",
      "title": "QC-10: Check for out-of-range numeric values",
      "topics": [
        "check_numeric_bounds"
      ]
    },
    {
      "page": "check_numeric_stats",
      "title": "QC-07: Report numeric summary statistics",
      "topics": [
        "check_numeric_stats"
      ]
    },
    {
      "page": "check_outliers",
      "title": "QC-15: Detect statistical outliers in numeric columns",
      "topics": [
        "check_outliers"
      ]
    },
    {
      "page": "check_pattern",
      "title": "QC-13: Check values against a regex pattern",
      "topics": [
        "check_pattern"
      ]
    },
    {
      "page": "check_row_count",
      "title": "QC-04: Report row count",
      "topics": [
        "check_row_count"
      ]
    },
    {
      "page": "check_schema_contract",
      "title": "SC-01 / SC-02: Check columns against the expected schema contract",
      "topics": [
        "check_schema_contract"
      ]
    },
    {
      "page": "compare_snapshots",
      "title": "Compare two snapshots from the SQLite database",
      "topics": [
        "compare_snapshots"
      ]
    },
    {
      "page": "detect_files",
      "title": "Detect current and previous dataset files",
      "topics": [
        "detect_files"
      ]
    },
    {
      "page": "dq_result",
      "title": "Construct a data quality result object",
      "topics": [
        "dq_result"
      ]
    },
    {
      "page": "generate_dataset_config",
      "title": "Generate a dataset config from a delivery file",
      "topics": [
        "generate_dataset_config"
      ]
    },
    {
      "page": "generate_global_config",
      "title": "Generate the global configuration file",
      "topics": [
        "generate_global_config"
      ]
    },
    {
      "page": "infer_col_type",
      "title": "Infer the logical type of a character column",
      "topics": [
        "infer_col_type"
      ]
    },
    {
      "page": "list_runs",
      "title": "List recent runs for a dataset by name",
      "topics": [
        "list_runs"
      ]
    },
    {
      "page": "list_snapshots",
      "title": "List snapshots available in the database",
      "topics": [
        "list_snapshots"
      ]
    },
    {
      "page": "load_config",
      "title": "Load and merge dataset configuration",
      "topics": [
        "load_config"
      ]
    },
    {
      "page": "overall_status",
      "title": "Compute the worst status across a list of dq_result objects",
      "topics": [
        "overall_status"
      ]
    },
    {
      "page": "read_dataset",
      "title": "Read a dataset file into a data frame",
      "topics": [
        "read_dataset"
      ]
    },
    {
      "page": "read_recent_snapshots",
      "title": "Read recent snapshot history from the SQLite database",
      "topics": [
        "read_recent_snapshots"
      ]
    },
    {
      "page": "resolve_col_type",
      "title": "Resolve the effective type of a column, respecting config overrides",
      "topics": [
        "resolve_col_type"
      ]
    },
    {
      "page": "run_comparison_checks",
      "title": "Run all version comparison checks between two dataset snapshots",
      "topics": [
        "run_comparison_checks"
      ]
    },
    {
      "page": "run_custom_checks",
      "title": "Run organisation-specific custom checks",
      "topics": [
        "run_custom_checks"
      ]
    },
    {
      "page": "run_dq_check",
      "title": "Run a full data quality check pipeline",
      "topics": [
        "run_dq_check"
      ]
    },
    {
      "page": "run_qc_checks",
      "title": "Run all generic quality checks on a dataset",
      "topics": [
        "run_qc_checks"
      ]
    },
    {
      "page": "sniff_dataset",
      "title": "Sniff a delivery file's structure",
      "topics": [
        "sniff_dataset"
      ]
    },
    {
      "page": "validate_config",
      "title": "Validate a dataset's configuration",
      "topics": [
        "validate_config"
      ]
    }
  ],
  "_readme": "https://github.com/mickmioduszewski/dqcheckr/raw/HEAD/README.md",
  "_rundeps": [
    "base64enc",
    "bit",
    "bit64",
    "blob",
    "bslib",
    "cachem",
    "cli",
    "clipr",
    "cpp11",
    "crayon",
    "DBI",
    "digest",
    "dplyr",
    "evaluate",
    "farver",
    "fastmap",
    "fontawesome",
    "fs",
    "generics",
    "ggplot2",
    "glue",
    "gridExtra",
    "gtable",
    "highr",
    "hms",
    "htmltools",
    "isoband",
    "jquerylib",
    "jsonlite",
    "kableExtra",
    "knitr",
    "labeling",
    "later",
    "lifecycle",
    "magrittr",
    "memoise",
    "mime",
    "pillar",
    "pkgconfig",
    "prettyunits",
    "processx",
    "progress",
    "ps",
    "purrr",
    "quarto",
    "R6",
    "rappdirs",
    "RColorBrewer",
    "Rcpp",
    "readr",
    "rlang",
    "rmarkdown",
    "RSQLite",
    "rstudioapi",
    "S7",
    "sass",
    "scales",
    "stringi",
    "stringr",
    "svglite",
    "systemfonts",
    "textshaping",
    "tibble",
    "tidyr",
    "tidyselect",
    "tinytex",
    "tzdb",
    "utf8",
    "vctrs",
    "viridisLite",
    "vroom",
    "withr",
    "xfun",
    "xml2",
    "yaml"
  ],
  "_vignettes": [
    {
      "source": "specification.Rmd",
      "filename": "specification.html",
      "title": "dqcheckr — Software Specification",
      "author": "Mick Mioduszewski",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Part A — Purpose and Intent",
        "Why this exists",
        "What we are building",
        "Design principles",
        "Part B — Business-Level Description",
        "B.1 How it is used",
        "B.2 What is checked",
        "B.3 What is compared to the previous delivery",
        "B.4 What is produced",
        "Part C — Technical Specification",
        "C.1 Package structure",
        "C.2 Configuration",
        "C.3 File version detection",
        "C.4 Ingestion and whitespace trimming",
        "C.5 Type inference",
        "C.6 Quality checks",
        "C.7 Custom checks",
        "C.8 SQLite schema",
        "C.9 Main entry points",
        "C.10 Error handling",
        "C.11 Dependencies",
        "Part D — Unresolved and Deferred Issues",
        "D.1 Needs design before implementation",
        "D.2 Backlog — agreed",
        "D.3 Known limitations",
        "D.4 Accepted design decisions (rare-risk trade-offs)"
      ],
      "created": "2026-06-01 05:33:41",
      "modified": "2026-07-24 00:00:48",
      "commits": 11
    },
    {
      "source": "dqcheckr.Rmd",
      "filename": "dqcheckr.html",
      "title": "Getting started with dqcheckr",
      "engine": "knitr::rmarkdown",
      "headings": [
        "How it works",
        "Installation",
        "Configuration",
        "Global config — dqcheckr.yml",
        "Per-dataset config — .yml",
        "What is required vs optional",
        "Fixed-width files",
        "CSV files with an unusable header row",
        "The quality checks",
        "Single-snapshot checks (QC series)",
        "Schema contract checks (SC series)",
        "Version comparison checks (CP series)",
        "Type inference",
        "Running a check",
        "Calling individual checks",
        "Custom checks",
        "The snapshot database",
        "Worked example — Star Wars dataset",
        "Error handling",
        "Design principles"
      ],
      "created": "2026-06-01 05:33:41",
      "modified": "2026-07-23 19:45:24",
      "commits": 5
    },
    {
      "source": "workflow.Rmd",
      "filename": "workflow.html",
      "title": "The dqcheckr workflow: generate, edit, validate, run",
      "engine": "knitr::rmarkdown",
      "headings": [
        "A delivery arrives",
        "Bootstrap: two generator calls",
        "Read what was generated",
        "Edit a rule",
        "Validate after every edit",
        "Run the check",
        "The run history",
        "A second delivery, and drift",
        "Judging spread changes",
        "Special cases worth knowing",
        "Where everything lives"
      ],
      "created": "2026-07-19 08:54:13",
      "modified": "2026-07-24 00:10:26",
      "commits": 4
    }
  ],
  "_score": 5.431363764158987,
  "_indexed": true,
  "_nocasepkg": "dqcheckr",
  "_universes": [
    "mickmioduszewski"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.3.0",
      "date": "2026-10-08T11:42:04.000Z",
      "distro": "resolute",
      "commit": "154458505951d7260350b40ce25015544c2f894f",
      "fileid": "https://r2.ropensci.org/add92821feeb600b71641c3d9580bb46bd5a93910ffbab5295a388a10759f2e2",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/mickmioduszewski/actions/runs/37770985078"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.3.0",
      "date": "2026-10-08T11:42:12.000Z",
      "distro": "resolute",
      "commit": "154458505951d7260350b40ce25015544c2f894f",
      "fileid": "https://r2.ropensci.org/ce89d090765e205f0b96efb7c44619340bdf782a2ceb9c9429ab900484a9de04",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/mickmioduszewski/actions/runs/37770985078"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.3.0",
      "date": "2026-10-08T12:06:57.000Z",
      "commit": "154458505951d7260350b40ce25015544c2f894f",
      "fileid": "https://r2.ropensci.org/45e0b8f76f3aa7194098d615bdd2a88b2937d7d7e953f077876c9ca4ce4f99bd",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/mickmioduszewski/actions/runs/37770985078"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.3.0",
      "date": "2026-10-08T12:02:34.000Z",
      "commit": "154458505951d7260350b40ce25015544c2f894f",
      "fileid": "https://r2.ropensci.org/4339070dc1587c009d49f8ad95c177dfda9d7ea12f1f729b6d309e4b964e3471",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/mickmioduszewski/actions/runs/37770985078"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.3.0",
      "date": "2026-10-08T11:41:55.000Z",
      "commit": "154458505951d7260350b40ce25015544c2f894f",
      "fileid": "https://r2.ropensci.org/219f304fb3f58d0a21386acc06364efaa4b50c8b31f03ceb83135778e547080f",
      "status": "success",
      "buildurl": "https://github.com/r-universe/mickmioduszewski/actions/runs/37770985078"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.3.0",
      "date": "2026-10-08T11:41:25.000Z",
      "commit": "154458505951d7260350b40ce25015544c2f894f",
      "fileid": "https://r2.ropensci.org/5fce9149cf66a15399b218a8f95123502f841671b38fd1a0da614d7ef21a0746",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/mickmioduszewski/actions/runs/37770985078"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.3.0",
      "date": "2026-10-08T11:41:36.000Z",
      "commit": "154458505951d7260350b40ce25015544c2f894f",
      "fileid": "https://r2.ropensci.org/67c914bd43158c598e14b8a870d7ad5fae981e17bb3f38b0b3cc290f4a820446",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/mickmioduszewski/actions/runs/37770985078"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.3.0",
      "date": "2026-10-08T11:41:23.000Z",
      "commit": "154458505951d7260350b40ce25015544c2f894f",
      "fileid": "https://r2.ropensci.org/fb61132ac5d547eba0ee344cb9f6b8a5bc3e597453b08415a85cdb963036f61f",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/mickmioduszewski/actions/runs/37770985078"
    }
  ]
}