{
  "_id": "6ab3b7c43d719c1f84092f89",
  "Package": "aftables",
  "Title": "Create Spreadsheet Publications Following Best Practice",
  "Version": "2.1.0",
  "Authors@R": "c(\nperson(\"Matt\", \"Dray\", , \"mwdray@gmail.com\", role = c(\"aut\")),\nperson(\"Tim\", \"Taylor\", role = \"ctb\"),\nperson(\"Matt\", \"Kerlogue\", role = \"ctb\"),\nperson(\"Crown Copyright\", role = c(\"cph\")),\nperson(\"Olivia\", \"Box Power\", , \"Olivia.BoxPower@dhsc.gov.uk\", role = c(\"cre\", \"ctb\")),\nperson(\"Zachary\", \"Gleisner\", , \"Zachary.Gleisner@dhsc.gov.uk\", role = \"ctb\")\n)",
  "Description": "Generate spreadsheet publications that follow best\npractice guidance from the UK government's Analysis Function,\navailable at\n<https://analysisfunction.civilservice.gov.uk/policy-store/releasing-statistics-in-spreadsheets/>,\nwith a focus on accessibility. See also the 'Python' package\n'gptables'.",
  "License": "MIT + file LICENSE",
  "URL": "https://best-practice-and-impact.github.io/aftables/,\nhttps://github.com/best-practice-and-impact/aftables",
  "BugReports": "https://github.com/best-practice-and-impact/aftables/issues",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "Encoding": "UTF-8",
  "LazyData": "true",
  "Roxygen": "list(markdown = TRUE)",
  "Config/roxygen2/version": "8.1.0",
  "Config/pak/sysreqs": "libicu-dev",
  "Repository": "https://best-practice-and-impact.r-universe.dev",
  "Date/Publication": "2026-08-18 10:50:30 UTC",
  "RemoteUrl": "https://github.com/best-practice-and-impact/aftables",
  "RemoteRef": "HEAD",
  "RemoteSha": "2055af367bff876ec06c78cedb046c268718c6c9",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-09-23 11:24:31 UTC",
    "User": "root"
  },
  "Author": "Matt Dray [aut],\nTim Taylor [ctb],\nMatt Kerlogue [ctb],\nCrown Copyright [cph],\nOlivia Box Power [cre, ctb],\nZachary Gleisner [ctb]",
  "Maintainer": "Olivia Box Power <Olivia.BoxPower@dhsc.gov.uk>",
  "_user": "best-practice-and-impact",
  "_type": "src",
  "_file": "aftables_2.1.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/28c073363ea0be5dd8f0bf76b2b99967f5657145edeceef5a891a6290998bd95",
  "_filesize": 1420254,
  "_sha256": "28c073363ea0be5dd8f0bf76b2b99967f5657145edeceef5a891a6290998bd95",
  "_expires": "2027-01-01T11:28:02.000Z",
  "_created": "2026-09-23T11:24:31.000Z",
  "_published": "2026-09-23T11:28:04.601Z",
  "_jobs": [
    {
      "job": 107159299127,
      "time": 156,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "10746927724"
    },
    {
      "job": 107159299077,
      "time": 153,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10746574320"
    },
    {
      "job": 107159299075,
      "time": 89,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "10746977102"
    },
    {
      "job": 107159299083,
      "time": 109,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10746569256"
    },
    {
      "job": 107158311957,
      "time": 188,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10746867290"
    },
    {
      "job": 107159299110,
      "time": 117,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "10746468078"
    },
    {
      "job": 107159299245,
      "time": 101,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "10747031805"
    },
    {
      "job": 107159299126,
      "time": 105,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "10746857803"
    },
    {
      "job": 107159299228,
      "time": 103,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10746907445"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/best-practice-and-impact/actions/runs/35854038355",
  "_status": "success",
  "_upstream": "https://github.com/best-practice-and-impact/aftables",
  "_commit": {
    "id": "2055af367bff876ec06c78cedb046c268718c6c9",
    "author": "Olivia Box Power <Olivia.BoxPower@dhsc.gov.uk>",
    "committer": "Olivia Box Power <Olivia.BoxPower@dhsc.gov.uk>",
    "message": "Update description and news file for release\n",
    "time": 1787050230
  },
  "_maintainer": {
    "name": "Olivia Box Power",
    "email": "olivia.boxpower@dhsc.gov.uk",
    "login": "olivia-box-power",
    "description": "",
    "uuid": 85562659
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "openxlsx2",
      "version": ">= 1.27",
      "role": "Imports"
    },
    {
      "package": "pillar",
      "role": "Imports"
    },
    {
      "package": "purrr",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "stringr",
      "role": "Imports"
    },
    {
      "package": "tidyselect",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "yaml",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "covr",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "rstudioapi",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    }
  ],
  "_owner": "best-practice-and-impact",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-07",
      "n": 1
    },
    {
      "week": "2026-09",
      "n": 2
    },
    {
      "week": "2026-11",
      "n": 1
    },
    {
      "week": "2026-12",
      "n": 4
    },
    {
      "week": "2026-13",
      "n": 1
    },
    {
      "week": "2026-17",
      "n": 3
    },
    {
      "week": "2026-19",
      "n": 1
    },
    {
      "week": "2026-25",
      "n": 1
    },
    {
      "week": "2026-26",
      "n": 2
    },
    {
      "week": "2026-27",
      "n": 6
    },
    {
      "week": "2026-28",
      "n": 11
    },
    {
      "week": "2026-30",
      "n": 5
    },
    {
      "week": "2026-34",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "v2.0.0",
      "date": "2026-03-20"
    },
    {
      "name": "v2.0.1",
      "date": "2026-04-22"
    },
    {
      "name": "v2.1.0",
      "date": "2026-08-18"
    }
  ],
  "_topics": [
    "accessibility",
    "openxlsx",
    "reproducible-analytical-pipeline",
    "spreadsheet",
    "uk-gov-data-science"
  ],
  "_stars": 55,
  "_contributors": [
    {
      "user": "olivia-box-power",
      "count": 127,
      "uuid": 85562659
    },
    {
      "user": "zac-gleisner",
      "count": 94,
      "uuid": 191228565
    },
    {
      "user": "matt-dray",
      "count": 62,
      "uuid": 18232097
    },
    {
      "user": "mattkerlogue",
      "count": 2,
      "uuid": 35345053
    }
  ],
  "_userbio": {
    "uuid": 53307888,
    "type": "organization",
    "name": "Analysis Function ",
    "followers": 117,
    "description": "The UK Government Analysis Function is a network for all civil servants working in UK government analysis."
  },
  "_downloads": {
    "count": 553,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/aftables"
  },
  "_devurl": "https://github.com/best-practice-and-impact/aftables",
  "_pkgdown": "https://best-practice-and-impact.github.io/aftables/",
  "_searchresults": 6,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/aftables.html",
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/best-practice-and-impact/aftables",
  "_realowner": "best-practice-and-impact",
  "_cranurl": true,
  "_releases": [
    {
      "version": "1.0.1",
      "date": "2025-02-19"
    },
    {
      "version": "1.0.2",
      "date": "2025-02-19"
    },
    {
      "version": "2.0.0",
      "date": "2026-03-20"
    },
    {
      "version": "2.0.1",
      "date": "2026-04-22"
    },
    {
      "version": "2.1.0",
      "date": "2026-08-24"
    }
  ],
  "_exports": [
    "as_aftable",
    "at_template_aftable",
    "at_template_workflow",
    "create_aftable",
    "create_config_yaml",
    "generate_workbook",
    "is_aftable",
    "number_formatter"
  ],
  "_datasets": [
    {
      "name": "demo_aftable",
      "title": "A Demo 'aftables' Object",
      "object": "demo_aftable",
      "class": [
        "aftable",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "tab_title",
        "sheet_type",
        "sheet_title",
        "blank_cells",
        "source",
        "custom_rows",
        "table"
      ],
      "rows": 5,
      "table": false,
      "tojson": true
    },
    {
      "name": "demo_df",
      "title": "A Demo 'data.frame' Object",
      "object": "demo_df",
      "class": [
        "data.frame"
      ],
      "fields": [
        "tab_title",
        "sheet_type",
        "sheet_title",
        "blank_cells",
        "source",
        "custom_rows",
        "table"
      ],
      "rows": 5,
      "table": false,
      "tojson": true
    },
    {
      "name": "demo_workbook",
      "title": "A Demo 'Workbook' Object",
      "object": "demo_workbook",
      "class": [
        "wbWorkbook",
        "R6"
      ],
      "fields": [],
      "table": false,
      "tojson": false
    }
  ],
  "_help": [
    {
      "page": "as_aftable",
      "title": "Coerce To An 'aftable' Object",
      "topics": [
        "as_aftable",
        "is_aftable"
      ]
    },
    {
      "page": "at_template_aftable",
      "title": "Insert 'create_aftable' template",
      "topics": [
        "at_template_aftable"
      ]
    },
    {
      "page": "at_template_workflow",
      "title": "Insert full 'aftables' template workflow",
      "topics": [
        "at_template_workflow"
      ]
    },
    {
      "page": "create_aftable",
      "title": "Create An 'aftable' Object",
      "topics": [
        "create_aftable"
      ]
    },
    {
      "page": "create_config_yaml",
      "title": "Create an aftables config.yaml",
      "topics": [
        "create_config_yaml"
      ]
    },
    {
      "page": "demo_aftable",
      "title": "A Demo 'aftables' Object",
      "topics": [
        "demo_aftable"
      ]
    },
    {
      "page": "demo_df",
      "title": "A Demo 'data.frame' Object",
      "topics": [
        "demo_df"
      ]
    },
    {
      "page": "demo_workbook",
      "title": "A Demo 'Workbook' Object",
      "topics": [
        "demo_workbook"
      ]
    },
    {
      "page": "generate_workbook",
      "title": "Generate A Workbook Object From An 'aftable'",
      "topics": [
        "generate_workbook"
      ]
    },
    {
      "page": "number_formatter",
      "title": "Helper function to specify how 'aftables' should display numeric data",
      "topics": [
        "number_formatter"
      ]
    },
    {
      "page": "summary.aftable",
      "title": "Summarise An 'aftable' Object",
      "topics": [
        "summary.aftable"
      ]
    },
    {
      "page": "tbl_sum.aftable",
      "title": "Provide A Succinct Summary Of An 'aftable' Object",
      "topics": [
        "tbl_sum.aftable"
      ]
    }
  ],
  "_pkglogo": "https://github.com/best-practice-and-impact/aftables/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/best-practice-and-impact/aftables/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "cpp11",
    "dplyr",
    "generics",
    "glue",
    "lifecycle",
    "magrittr",
    "openxlsx2",
    "pillar",
    "pkgconfig",
    "purrr",
    "R6",
    "Rcpp",
    "rlang",
    "stringi",
    "stringr",
    "tibble",
    "tidyr",
    "tidyselect",
    "utf8",
    "vctrs",
    "withr",
    "yaml"
  ],
  "_vignettes": [
    {
      "source": "checklist.Rmd",
      "filename": "checklist.html",
      "title": "Accessibility guidance checklist",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Purpose",
        "Checklists",
        "Tables",
        "Footnotes",
        "Formatting",
        "Structure",
        "Before publishing",
        "Contribute"
      ],
      "created": "2022-07-19 19:31:20",
      "modified": "2026-03-20 10:50:16",
      "commits": 7
    },
    {
      "source": "aftables.Rmd",
      "filename": "aftables.html",
      "title": "Introduction to {aftables}",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Purpose",
        "Installation",
        "Workflow",
        "1. Create an aftable",
        "Pre-prepare tables",
        "Meta-sheets",
        "Statistical tables",
        "Optional step: setting number formats with number_formatter function",
        "Create aftable",
        "2. Convert to a workbook",
        "3. Write to file",
        "Output",
        "Final tweaks",
        "Contribute"
      ],
      "created": "2025-02-18 11:52:28",
      "modified": "2026-07-24 11:16:09",
      "commits": 8
    },
    {
      "source": "configfiles.Rmd",
      "filename": "configfiles.html",
      "title": "Config files",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Purpose",
        "Workbook properties and formatting which can be set in a config file",
        "Structure of a config file",
        "Applying a config file with generate_workbook()",
        "Example 1: No config arguments in generate_workbook",
        "Example 2: Using a custom config",
        "Example 3: Using a custom config file",
        "Example 4: Using a custom config file with a custom config"
      ],
      "created": "2026-03-20 10:50:16",
      "modified": "2026-03-20 10:50:16",
      "commits": 1
    },
    {
      "source": "structure.Rmd",
      "filename": "structure.html",
      "title": "Package structure",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Purpose",
        "Overview",
        "Files",
        "Code",
        "To create aftables",
        "Methods",
        "To create workbooks",
        "Add sheets",
        "Insert sheet elements",
        "Apply styles",
        "Contribute"
      ],
      "created": "2022-07-19 19:31:20",
      "modified": "2025-08-13 15:21:42",
      "commits": 6
    },
    {
      "source": "terminology.Rmd",
      "filename": "terminology.html",
      "title": "Spreadsheet terminology",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Purpose",
        "Terminology",
        "Example",
        "Contribute"
      ],
      "created": "2022-07-19 19:31:20",
      "modified": "2025-02-18 14:26:28",
      "commits": 4
    }
  ],
  "_score": 7.729367305192781,
  "_indexed": true,
  "_nocasepkg": "aftables",
  "_universes": [
    "best-practice-and-impact",
    "olivia-box-power"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "2.1.0",
      "date": "2026-09-23T11:26:47.000Z",
      "distro": "resolute",
      "commit": "2055af367bff876ec06c78cedb046c268718c6c9",
      "fileid": "https://r2.ropensci.org/53ba0c3545b0f79453519227695a3f8e57bbbfdcfca05ec3de060ccd7c2bd7fd",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/best-practice-and-impact/actions/runs/35854038355"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "2.1.0",
      "date": "2026-09-23T11:26:47.000Z",
      "distro": "resolute",
      "commit": "2055af367bff876ec06c78cedb046c268718c6c9",
      "fileid": "https://r2.ropensci.org/3b864794258c855f3c93d636dfbe16605d65208a449a201cbf2c72674904b22d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/best-practice-and-impact/actions/runs/35854038355"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "2.1.0",
      "date": "2026-09-23T11:25:59.000Z",
      "commit": "2055af367bff876ec06c78cedb046c268718c6c9",
      "fileid": "https://r2.ropensci.org/0dee62910295015a6c77d4e41d1d89af0a48149e6345442ca74d7960255cdf38",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/best-practice-and-impact/actions/runs/35854038355"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "2.1.0",
      "date": "2026-09-23T11:26:17.000Z",
      "commit": "2055af367bff876ec06c78cedb046c268718c6c9",
      "fileid": "https://r2.ropensci.org/dc4e285621062f67dd5f695b550a8286cf05ef3dadcbcbab7df1c174cf0fac4f",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/best-practice-and-impact/actions/runs/35854038355"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "2.1.0",
      "date": "2026-09-23T11:26:45.000Z",
      "commit": "2055af367bff876ec06c78cedb046c268718c6c9",
      "fileid": "https://r2.ropensci.org/6de664e5c615d6a5ff157eedcf5b7a48167582fe729217bcf4f45beb2930b86c",
      "status": "success",
      "buildurl": "https://github.com/r-universe/best-practice-and-impact/actions/runs/35854038355"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "2.1.0",
      "date": "2026-09-23T11:25:41.000Z",
      "commit": "2055af367bff876ec06c78cedb046c268718c6c9",
      "fileid": "https://r2.ropensci.org/612d455c9131611906bd1b070dc0846bb4638a45582621982c1808867109c091",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/best-practice-and-impact/actions/runs/35854038355"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "2.1.0",
      "date": "2026-09-23T11:25:57.000Z",
      "commit": "2055af367bff876ec06c78cedb046c268718c6c9",
      "fileid": "https://r2.ropensci.org/4b79543e6899ba1508c4ed87f7e7a0874f719cf23b4e1739bac0b1b4c3d07cab",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/best-practice-and-impact/actions/runs/35854038355"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "2.1.0",
      "date": "2026-09-23T11:25:51.000Z",
      "commit": "2055af367bff876ec06c78cedb046c268718c6c9",
      "fileid": "https://r2.ropensci.org/106d8f6ecbbf78e09683b66320749d151092d3b193edf5f735ba9f0b01c3027b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/best-practice-and-impact/actions/runs/35854038355"
    }
  ]
}