{
  "_id": "6abe4b1499f7aa8c6aa54ef8",
  "Package": "searchlight",
  "Title": "Audited Analysis of Police Stop and Search Records",
  "Version": "0.1.0",
  "Authors@R": "c(person(\"Mustapha\", \"Wasseja\", email = \"mustapha.wasseja.mohammed@gmail.com\",\nrole = c(\"aut\", \"cre\")),\nperson(\"Sarah\", \"Hamed\", email = \"Sarah.Hamed@blackthrive.org\",\nrole = \"aut\"),\nperson(\"Souci\", \"Frissa\", email = \"Souci.Frissa@blackthrive.org\",\nrole = \"aut\"),\nperson(\"Black Thrive Global\", role = c(\"cph\", \"fnd\")))",
  "Description": "Acquire and audit public police stop and search archives\nfor England and Wales, retaining provenance and explicit\ncoverage information. Designed for exposure-based ethnic\ndisparity analysis with separately reported sampling and\nassumption uncertainty. Contains public sector information\nlicensed under the Open Government Licence v3.0.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "Language": "en-GB",
  "URL": "https://github.com/BlackThrive/searchlight,\nhttps://blackthrive.github.io/searchlight/",
  "BugReports": "https://github.com/BlackThrive/searchlight/issues",
  "RoxygenNote": "7.3.3",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-09-30 14:12:25 UTC",
    "User": "root"
  },
  "Author": "Mustapha Wasseja [aut, cre], Sarah Hamed [aut], Souci Frissa\n[aut], Black Thrive Global [cph, fnd]",
  "Maintainer": "Mustapha Wasseja <mustapha.wasseja.mohammed@gmail.com>",
  "Repository": "https://cran.r-universe.dev",
  "Date/Publication": "2026-09-30 13:56:10 UTC",
  "RemoteUrl": "https://github.com/cran/searchlight",
  "RemoteRef": "HEAD",
  "RemoteSha": "5a690fcaa6161abeff2d763f5bf02c2c402c974a",
  "_user": "cran",
  "_type": "src",
  "_file": "searchlight_0.1.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/cc73b17f3992db564ce903925bdc9079334b8e05ad46a434e38ce17d5045cf1e",
  "_filesize": 1872115,
  "_sha256": "cc73b17f3992db564ce903925bdc9079334b8e05ad46a434e38ce17d5045cf1e",
  "_expires": "2027-01-09T11:59:14.000Z",
  "_created": "2026-09-30T14:12:25.000Z",
  "_published": "2026-10-07T08:58:54.343Z",
  "_jobs": [
    {
      "job": 110357470808,
      "time": 192,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11103917022"
    },
    {
      "job": 110357470445,
      "time": 219,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11103622535"
    },
    {
      "job": 110357470078,
      "time": 253,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11102762507"
    },
    {
      "job": 110357470613,
      "time": 193,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "11103602185"
    },
    {
      "job": 110357470715,
      "time": 127,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11103232830"
    },
    {
      "job": 110357470616,
      "time": 137,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11103612158"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/cran/actions/runs/36726805545",
  "_status": "success",
  "_upstream": "https://github.com/cran/searchlight",
  "_commit": {
    "id": "5a690fcaa6161abeff2d763f5bf02c2c402c974a",
    "author": "Mustapha Wasseja <mustapha.wasseja.mohammed@gmail.com>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 0.1.0\n",
    "time": 1790776570
  },
  "_maintainer": {
    "name": "Mustapha Wasseja",
    "email": "mustapha.wasseja.mohammed@gmail.com",
    "login": "mustapha-wasseja",
    "description": "Research Fellow | Statistician with interest in \n Spatial Econometrics, Macroeconometrics, Bayesian Statistics, Health Econometrics and Medical Statistics",
    "uuid": 51772479
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "CARBayes",
      "version": ">= 6.1.1",
      "role": "Imports"
    },
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "commonmark",
      "role": "Imports"
    },
    {
      "package": "digest",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "version": ">= 1.1.1",
      "role": "Imports"
    },
    {
      "package": "httr2",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "MASS",
      "role": "Imports"
    },
    {
      "package": "readr",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "sf",
      "role": "Imports"
    },
    {
      "package": "spdep",
      "role": "Imports"
    },
    {
      "package": "splines",
      "role": "Imports"
    },
    {
      "package": "suncalc",
      "role": "Imports"
    },
    {
      "package": "posterior",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "withr",
      "role": "Imports"
    },
    {
      "package": "xml2",
      "role": "Imports"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "httptest2",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "lme4",
      "role": "Suggests"
    },
    {
      "package": "lintr",
      "role": "Suggests"
    },
    {
      "package": "spelling",
      "role": "Suggests"
    },
    {
      "package": "vdiffr",
      "role": "Suggests"
    },
    {
      "package": "zip",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": false,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-40",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "0.1.0",
      "date": "2026-09-30"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "mustapha-wasseja",
      "count": 1,
      "uuid": 51772479
    }
  ],
  "_userbio": {
    "uuid": 6899542,
    "type": "organization",
    "name": "cran",
    "followers": 630,
    "description": "Unofficial read-only mirror of all CRAN R packages"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/searchlight"
  },
  "_devurl": "https://github.com/blackthrive/searchlight",
  "_pkgdown": "https://blackthrive.github.io/searchlight/",
  "_rbuild": "4.6.1",
  "_assets": [
    "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",
    "extra/searchlight.html",
    "LICENSE"
  ],
  "_cranurl": false,
  "_exports": [
    "sl_archive_download",
    "sl_archive_index",
    "sl_archive_snapshot",
    "sl_assign_geography",
    "sl_benchmark",
    "sl_boundaries",
    "sl_cache_clear",
    "sl_cache_dir",
    "sl_contract",
    "sl_count_model",
    "sl_counts",
    "sl_coverage",
    "sl_coverage_compare",
    "sl_denominator_scenarios",
    "sl_exposure",
    "sl_hit_rates",
    "sl_list_versions",
    "sl_location_quality",
    "sl_missing_ethnicity_bounds",
    "sl_population",
    "sl_population_crosstab",
    "sl_quality",
    "sl_ranking_stability",
    "sl_rate_ratio",
    "sl_rates",
    "sl_read_records",
    "sl_report",
    "sl_sample",
    "sl_select_version",
    "sl_simulate",
    "sl_spatial_disparity",
    "sl_spatial_map",
    "sl_standardise",
    "sl_timestamp_quality",
    "sl_veil_of_darkness"
  ],
  "_help": [
    {
      "page": "sl_archive_download",
      "title": "Download and verify the necessary archive snapshots",
      "concept": [
        "ingest"
      ],
      "topics": [
        "sl_archive_download"
      ]
    },
    {
      "page": "sl_archive_index",
      "title": "List available bulk archive snapshots",
      "concept": [
        "ingest"
      ],
      "topics": [
        "sl_archive_index"
      ]
    },
    {
      "page": "sl_archive_snapshot",
      "title": "Extract immutable stop and search CSV snapshots",
      "concept": [
        "ingest"
      ],
      "topics": [
        "sl_archive_snapshot"
      ]
    },
    {
      "page": "sl_assign_geography",
      "title": "Assign anonymised points to local geographies",
      "concept": [
        "ingest"
      ],
      "topics": [
        "sl_assign_geography"
      ]
    },
    {
      "page": "sl_benchmark",
      "title": "Cross-check annual totals against the Home Office",
      "concept": [
        "audit"
      ],
      "topics": [
        "sl_benchmark"
      ]
    },
    {
      "page": "sl_boundaries",
      "title": "Fetch a versioned ONS boundary layer",
      "concept": [
        "ingest"
      ],
      "topics": [
        "sl_boundaries"
      ]
    },
    {
      "page": "sl_cache_clear",
      "title": "Clear a marked searchlight cache",
      "concept": [
        "ingest"
      ],
      "topics": [
        "sl_cache_clear"
      ]
    },
    {
      "page": "sl_cache_dir",
      "title": "Locate the searchlight cache",
      "concept": [
        "ingest"
      ],
      "topics": [
        "sl_cache_dir"
      ]
    },
    {
      "page": "sl_contract",
      "title": "Inspect an ingestion contract",
      "concept": [
        "ingest"
      ],
      "topics": [
        "sl_contract"
      ]
    },
    {
      "page": "sl_count_model",
      "title": "Fit count models with population-time exposure",
      "concept": [
        "inference"
      ],
      "topics": [
        "sl_count_model"
      ]
    },
    {
      "page": "sl_counts",
      "title": "Count events while preserving submission strata",
      "concept": [
        "rates"
      ],
      "topics": [
        "sl_counts"
      ]
    },
    {
      "page": "sl_coverage",
      "title": "Audit submission coverage on a full force-month grid",
      "concept": [
        "audit"
      ],
      "topics": [
        "sl_coverage"
      ]
    },
    {
      "page": "sl_coverage_compare",
      "title": "Compare coverage patterns across two periods",
      "concept": [
        "audit"
      ],
      "topics": [
        "sl_coverage_compare"
      ]
    },
    {
      "page": "sl_denominator_scenarios",
      "title": "Compare compatible population denominator scenarios",
      "concept": [
        "sensitivity"
      ],
      "topics": [
        "sl_denominator_scenarios"
      ]
    },
    {
      "page": "sl_exposure",
      "title": "Construct an explicit exposure table",
      "concept": [
        "ingest"
      ],
      "topics": [
        "sl_exposure"
      ]
    },
    {
      "page": "sl_hit_rates",
      "title": "Describe three separate outcomes conditional on being searched",
      "concept": [
        "inference"
      ],
      "topics": [
        "sl_hit_rates"
      ]
    },
    {
      "page": "sl_list_versions",
      "title": "List force-month archive versions",
      "concept": [
        "ingest"
      ],
      "topics": [
        "sl_list_versions"
      ]
    },
    {
      "page": "sl_location_quality",
      "title": "Diagnose anonymised location quality",
      "concept": [
        "audit"
      ],
      "topics": [
        "sl_location_quality"
      ]
    },
    {
      "page": "sl_missing_ethnicity_bounds",
      "title": "Bound disparity under allocations of Unknown ethnicity",
      "concept": [
        "sensitivity"
      ],
      "topics": [
        "sl_missing_ethnicity_bounds"
      ]
    },
    {
      "page": "sl_population",
      "title": "Census 2021 ethnicity populations",
      "concept": [
        "ingest"
      ],
      "topics": [
        "sl_population"
      ]
    },
    {
      "page": "sl_population_crosstab",
      "title": "Census ethnicity by age and sex",
      "concept": [
        "ingest"
      ],
      "topics": [
        "sl_population_crosstab"
      ]
    },
    {
      "page": "sl_quality",
      "title": "Attach submission, timestamp and location diagnostics",
      "concept": [
        "audit"
      ],
      "topics": [
        "sl_quality"
      ]
    },
    {
      "page": "sl_ranking_stability",
      "title": "Assess area rank uncertainty under count models or posterior draws",
      "concept": [
        "sensitivity"
      ],
      "topics": [
        "sl_ranking_stability"
      ]
    },
    {
      "page": "sl_rate_ratio",
      "title": "Estimate an event stop-rate ratio with exposure offsets",
      "concept": [
        "rates"
      ],
      "topics": [
        "sl_rate_ratio"
      ]
    },
    {
      "page": "sl_rates",
      "title": "Calculate rates using observed population-time exposure",
      "concept": [
        "rates"
      ],
      "topics": [
        "sl_rates"
      ]
    },
    {
      "page": "sl_read_records",
      "title": "Read selected immutable archive records",
      "concept": [
        "ingest"
      ],
      "topics": [
        "sl_read_records"
      ]
    },
    {
      "page": "sl_report",
      "title": "Write an offline report of audited records and analysis results",
      "concept": [
        "reporting"
      ],
      "topics": [
        "sl_report"
      ]
    },
    {
      "page": "sl_sample",
      "title": "Load the bundled real archive sample",
      "concept": [
        "ingest"
      ],
      "topics": [
        "sl_sample"
      ]
    },
    {
      "page": "sl_select_version",
      "title": "Select one complete version per force-month",
      "concept": [
        "ingest"
      ],
      "topics": [
        "sl_select_version"
      ]
    },
    {
      "page": "sl_simulate",
      "title": "Simulate event counts with independent disparity and total intensity",
      "concept": [
        "inference"
      ],
      "topics": [
        "sl_simulate"
      ]
    },
    {
      "page": "sl_spatial_disparity",
      "title": "Estimate a multivariate spatial stop-rate disparity surface",
      "concept": [
        "inference"
      ],
      "topics": [
        "sl_spatial_disparity"
      ]
    },
    {
      "page": "sl_spatial_map",
      "title": "Join spatial posterior summaries to their polygons",
      "concept": [
        "inference"
      ],
      "topics": [
        "sl_spatial_map"
      ]
    },
    {
      "page": "sl_standardise",
      "title": "Directly standardise age-sex stop-event rates",
      "concept": [
        "sensitivity"
      ],
      "topics": [
        "sl_standardise"
      ]
    },
    {
      "page": "sl_timestamp_quality",
      "title": "Diagnose timestamp completeness and midnight heaping",
      "concept": [
        "audit"
      ],
      "topics": [
        "sl_timestamp_quality"
      ]
    },
    {
      "page": "sl_veil_of_darkness",
      "title": "Diagnose ethnicity composition in daylight and darkness",
      "concept": [
        "inference"
      ],
      "topics": [
        "sl_veil_of_darkness"
      ]
    }
  ],
  "_readme": "https://github.com/cran/searchlight/raw/HEAD/README.md",
  "_rundeps": [
    "abind",
    "askpass",
    "backports",
    "base64enc",
    "bit",
    "bit64",
    "boot",
    "brew",
    "bslib",
    "cachem",
    "CARBayes",
    "CARBayesdata",
    "checkmate",
    "class",
    "classInt",
    "cli",
    "clipr",
    "coda",
    "codetools",
    "commonmark",
    "cpp11",
    "crayon",
    "crosstalk",
    "curl",
    "data.table",
    "DBI",
    "deldir",
    "digest",
    "distributional",
    "dotCall64",
    "dplyr",
    "e1071",
    "evaluate",
    "farver",
    "fastmap",
    "fontawesome",
    "forcats",
    "foreach",
    "fs",
    "generics",
    "geojsonsf",
    "geometries",
    "GGally",
    "ggplot2",
    "ggstats",
    "glmnet",
    "glue",
    "gtable",
    "highr",
    "hms",
    "htmltools",
    "htmlwidgets",
    "httpuv",
    "httr2",
    "igraph",
    "isoband",
    "iterators",
    "jquerylib",
    "jsonify",
    "jsonlite",
    "KernSmooth",
    "knitr",
    "labeling",
    "later",
    "lattice",
    "lazyeval",
    "leafem",
    "leaflet",
    "leaflet.providers",
    "leafpop",
    "lifecycle",
    "lubridate",
    "magrittr",
    "mapview",
    "MASS",
    "Matrix",
    "MatrixModels",
    "matrixStats",
    "mcmc",
    "MCMCpack",
    "memoise",
    "mime",
    "numDeriv",
    "openssl",
    "otel",
    "patchwork",
    "pillar",
    "pkgconfig",
    "plyr",
    "png",
    "posterior",
    "prettyunits",
    "progress",
    "promises",
    "proxy",
    "purrr",
    "quantreg",
    "R6",
    "rapidjsonr",
    "rappdirs",
    "raster",
    "RColorBrewer",
    "Rcpp",
    "RcppEigen",
    "readr",
    "rlang",
    "rmarkdown",
    "s2",
    "S7",
    "sass",
    "satellite",
    "scales",
    "servr",
    "sf",
    "sfheaders",
    "shape",
    "sp",
    "spam",
    "SparseM",
    "spData",
    "spdep",
    "stringi",
    "stringr",
    "suncalc",
    "survival",
    "svglite",
    "sys",
    "systemfonts",
    "tensorA",
    "terra",
    "textshaping",
    "tibble",
    "tidyr",
    "tidyselect",
    "timechange",
    "tinytex",
    "truncnorm",
    "tzdb",
    "units",
    "utf8",
    "uuid",
    "vctrs",
    "viridisLite",
    "vroom",
    "withr",
    "wk",
    "xfun",
    "xml2",
    "yaml"
  ],
  "_vignettes": [
    {
      "source": "estimating-disparity.Rmd",
      "filename": "estimating-disparity.html",
      "title": "Estimating disparity with explicit assumptions",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Events, reporting coverage and exposure",
        "Missing ethnicity changes the estimand",
        "Denominator scenarios require comparable cells",
        "Direct age-sex standardisation",
        "Rankings need uncertainty, too",
        "Validation and limits"
      ],
      "created": "2026-09-30 13:56:10",
      "modified": "2026-09-30 13:56:10",
      "commits": 1
    },
    {
      "source": "archive-to-audit.Rmd",
      "filename": "archive-to-audit.html",
      "title": "From archive to audited dataset",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Acquire a snapshot, then choose whole files",
        "Coverage comes before comparison",
        "Attach geography locally",
        "Inspect timestamp quality and exposures",
        "Export a reviewable report"
      ],
      "created": "2026-09-30 13:56:10",
      "modified": "2026-09-30 13:56:10",
      "commits": 1
    },
    {
      "source": "outcomes-and-darkness.Rmd",
      "filename": "outcomes-and-darkness.html",
      "title": "Outcome tests and veil of darkness",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Three separate meanings of an outcome",
        "A time-quality screen is mandatory",
        "Local clock time, sunset and civil twilight"
      ],
      "created": "2026-09-30 13:56:10",
      "modified": "2026-09-30 13:56:10",
      "commits": 1
    },
    {
      "source": "spatial-simulation.Rmd",
      "filename": "spatial-simulation.html",
      "title": "Small-area disparity with spatial smoothing: simulation evidence",
      "engine": "knitr::rmarkdown",
      "headings": [
        "A spatial model of disparity",
        "Recovery independent of total intensity",
        "Replicated evidence, including failure modes"
      ],
      "created": "2026-09-30 13:56:10",
      "modified": "2026-09-30 13:56:10",
      "commits": 1
    }
  ],
  "_score": 3.3010299956639813,
  "_indexed": true,
  "_nocasepkg": "searchlight",
  "_universes": [
    "cran",
    "mustapha-wasseja",
    "blackthrive"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.1.0",
      "date": "2026-09-30T14:15:07.000Z",
      "distro": "resolute",
      "commit": "5a690fcaa6161abeff2d763f5bf02c2c402c974a",
      "fileid": "https://r2.ropensci.org/e6ce3fd65749d55e150c302adc571c20cf7d6f2b2ea18c4e510fadb8ac3478fe",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/36726805545"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.1.0",
      "date": "2026-09-30T14:15:21.000Z",
      "distro": "resolute",
      "commit": "5a690fcaa6161abeff2d763f5bf02c2c402c974a",
      "fileid": "https://r2.ropensci.org/adf1b81b2cca116588183e5a1e9c54afa2f070b0078a31e55930aafc326e3f67",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/36726805545"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.1.0",
      "date": "2026-09-30T14:15:53.000Z",
      "commit": "5a690fcaa6161abeff2d763f5bf02c2c402c974a",
      "fileid": "https://r2.ropensci.org/8cc250fcc317fbc0013a4ca9520fbf622da83502ce3e02639c2246e1eee01d89",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/36726805545"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.1.0",
      "date": "2026-09-30T14:13:45.000Z",
      "commit": "5a690fcaa6161abeff2d763f5bf02c2c402c974a",
      "fileid": "https://r2.ropensci.org/21c3627034af03bd74061e7f4ff5552f628c0b8fa5e61019e3f43fb9935c9d70",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/36726805545"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.1.0",
      "date": "2026-09-30T14:13:49.000Z",
      "commit": "5a690fcaa6161abeff2d763f5bf02c2c402c974a",
      "fileid": "https://r2.ropensci.org/01affc6c04d2774ff26507b657ac173e78a659cfe7f6af6be9745636687d260d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/36726805545"
    }
  ]
}