{
  "_id": "6acb4496fe5cc25786e8d22e",
  "Package": "starling",
  "Title": "Record Linkage for Public Health Surveillance",
  "Version": "1.1.0",
  "Description": "Record linkage for public health surveillance datasets\nusing either the Fellegi-Sunter probabilistic framework (via\nreclin2) or deterministic exact-key matching. Provides\npre-linkage data quality auditing (preflight()), Medicare\nnumber checksum validation (check_medicare()), blocking\nvariable construction (flock()), and the murmuration() linkage\nengine. murmuration() expresses linkage as a single\ncohort-to-event concept (linking a linelist of people to a\ndated stream of vaccination, hospitalisation, or case events\nwithin a before/during/after time window), with the historical\nfour-code taxonomy (case-to-hospitalisation,\nvaccination-to-case, vaccination-to-hospitalisation,\nvaccination-to-event) retained as deprecated aliases. Also\nprovides linkage weight distribution visualisation\n(murmuration_plot()) and threshold sensitivity analysis\n(perch()) with annotated AIHW, WA Data Linkage Unit, and PHRN\nreference benchmarks. perch() can be called standalone or\ntriggered automatically mid-linkage via\nmurmuration(perch_before_linking = TRUE). Includes synthetic\ndatasets (cases_notifiable, vax_air) and three vignettes\ndemonstrating the complete linkage workflow. Part of the aviary\npublic health surveillance ecosystem.",
  "Authors@R": "person(\"Nicolas\", \"Smoll\", email = \"nicolas.smoll@health.qld.gov.au\",\nrole = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0000-0002-6923-9701\"))",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "VignetteBuilder": "knitr",
  "URL": "https://github.com/nrsmoll/starling",
  "BugReports": "https://github.com/nrsmoll/starling/issues",
  "Config/roxygen2/version": "8.0.0",
  "Config/pak/sysreqs": "libicu-dev",
  "Repository": "https://nrsmoll.r-universe.dev",
  "Date/Publication": "2026-07-13 03:01:18 UTC",
  "RemoteUrl": "https://github.com/nrsmoll/starling",
  "RemoteRef": "HEAD",
  "RemoteSha": "e2fd02791b2cc110c3cfd88993571ccb852aeea1",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-11 07:47:17 UTC",
    "User": "root"
  },
  "Author": "Nicolas Smoll [aut, cre] (ORCID:\n<https://orcid.org/0000-0002-6923-9701>)",
  "Maintainer": "Nicolas Smoll <nicolas.smoll@health.qld.gov.au>",
  "_user": "nrsmoll",
  "_type": "src",
  "_file": "starling_1.1.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/a2d30e4d155469411c7c82a2f6582394b19cb63d964f3c7b68d6e786a718d204",
  "_filesize": 431103,
  "_sha256": "a2d30e4d155469411c7c82a2f6582394b19cb63d964f3c7b68d6e786a718d204",
  "_expires": "2027-01-19T08:11:00.000Z",
  "_created": "2026-10-11T07:47:17.000Z",
  "_published": "2026-10-11T08:11:02.022Z",
  "_buildurl": "https://github.com/r-universe/nrsmoll/actions/runs/38122377150",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 114420145541,
      "time": 136,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11696185574"
    },
    {
      "job": 114420145577,
      "time": 125,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11695203558"
    },
    {
      "job": 114420145590,
      "time": 197,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11696112795"
    },
    {
      "job": 114420145581,
      "time": 180,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11696097769"
    },
    {
      "job": 114419646254,
      "time": 178,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11695832520"
    },
    {
      "job": 114420145556,
      "time": 108,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "11695223452"
    },
    {
      "job": 114420145613,
      "time": 106,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11695494742"
    },
    {
      "job": 114420145560,
      "time": 107,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11696395128"
    },
    {
      "job": 114420145607,
      "time": 74,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11695702946"
    }
  ],
  "_upstream": "https://github.com/nrsmoll/starling",
  "_commit": {
    "id": "e2fd02791b2cc110c3cfd88993571ccb852aeea1",
    "author": "Nicolas Smoll <nrsmoll@gmail.com>",
    "committer": "GitHub <noreply@github.com>",
    "message": "adding a logo",
    "time": 1783911678
  },
  "_maintainer": {
    "name": "Nicolas Smoll",
    "email": "nicolas.smoll@health.qld.gov.au",
    "orcid": "0000-0002-6923-9701"
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1",
      "role": "Depends"
    },
    {
      "package": "reclin2",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "stringr",
      "role": "Imports"
    },
    {
      "package": "lubridate",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "role": "Imports"
    },
    {
      "package": "patchwork",
      "role": "Suggests"
    },
    {
      "package": "plotly",
      "role": "Suggests"
    },
    {
      "package": "phonics",
      "role": "Suggests"
    },
    {
      "package": "mudnester",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    }
  ],
  "_owner": "nrsmoll",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-29",
      "n": 2
    }
  ],
  "_tags": [],
  "_stars": 0,
  "_contributors": [
    {
      "user": "nrsmoll",
      "count": 1,
      "uuid": 28223011
    }
  ],
  "_userbio": {
    "uuid": 28223011,
    "type": "user",
    "name": "Nicolas Smoll",
    "followers": 6,
    "description": "Medical Doctor\r\nPublic Health Physician\r\nBiostatistics and programming"
  },
  "_downloads": {
    "count": 306,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/starling"
  },
  "_devurl": "https://github.com/nrsmoll/starling",
  "_searchresults": 0,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/readme.html",
    "extra/readme.md",
    "extra/starling.html",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/nrsmoll/starling",
  "_realowner": "nrsmoll",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.6.5",
      "date": "2026-01-26"
    },
    {
      "version": "1.1.0",
      "date": "2026-07-10"
    }
  ],
  "_exports": [
    "check_medicare",
    "flock",
    "murmuration",
    "murmuration_plot",
    "perch",
    "preflight"
  ],
  "_datasets": [
    {
      "name": "cases_notifiable",
      "title": "Synthetic Notifiable Disease Case Linelist",
      "object": "cases_notifiable",
      "file": "cases_notifiable.rda",
      "class": [
        "data.frame"
      ],
      "fields": [
        "id_var",
        "true_link_id",
        "lettername1",
        "lettername2",
        "dob",
        "gender",
        "postcode",
        "medicare10",
        "onset_date",
        "pathogen"
      ],
      "rows": 300,
      "table": true,
      "tojson": true
    },
    {
      "name": "vax_air",
      "title": "Synthetic Australian Immunisation Register Extract",
      "object": "vax_air",
      "file": "vax_air.rda",
      "class": [
        "data.frame"
      ],
      "fields": [
        "id_var",
        "lettername1",
        "lettername2",
        "dob",
        "gender",
        "postcode",
        "medicare10",
        "vax_date_1",
        "vax_type_1",
        "vax_date_2",
        "vax_type_2",
        "vax_date_3",
        "vax_type_3",
        "vax_date_4",
        "vax_type_4"
      ],
      "rows": 400,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "cases_notifiable",
      "title": "Synthetic Notifiable Disease Case Linelist",
      "topics": [
        "cases_notifiable"
      ]
    },
    {
      "page": "check_medicare",
      "title": "Validate Australian Medicare Numbers Using the Modulus 10 Checksum",
      "topics": [
        "check_medicare"
      ]
    },
    {
      "page": "flock",
      "title": "Create Blocking Variables for Probabilistic Record Linkage",
      "topics": [
        "flock"
      ]
    },
    {
      "page": "murmuration",
      "title": "Links case, hospital, outbreak, event linelists, vaccination datasets",
      "topics": [
        "murmuration"
      ]
    },
    {
      "page": "murmuration_plot",
      "title": "Visualise Linkage Weight Distribution with Threshold Overlay",
      "topics": [
        "murmuration_plot"
      ]
    },
    {
      "page": "perch",
      "title": "Threshold Sensitivity Analysis for Linkage Score Cutoff Selection",
      "topics": [
        "perch"
      ]
    },
    {
      "page": "preflight",
      "title": "Pre-Linkage Data Quality Checks",
      "topics": [
        "preflight"
      ]
    },
    {
      "page": "vax_air",
      "title": "Synthetic Australian Immunisation Register Extract",
      "topics": [
        "vax_air"
      ]
    }
  ],
  "_readme": "https://github.com/nrsmoll/starling/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "cpp11",
    "data.table",
    "dplyr",
    "farver",
    "generics",
    "ggplot2",
    "glue",
    "gtable",
    "isoband",
    "labeling",
    "lifecycle",
    "lpSolve",
    "lubridate",
    "magrittr",
    "pillar",
    "pkgconfig",
    "R6",
    "RColorBrewer",
    "Rcpp",
    "reclin2",
    "rlang",
    "S7",
    "scales",
    "stringdist",
    "stringi",
    "stringr",
    "tibble",
    "tidyselect",
    "timechange",
    "utf8",
    "vctrs",
    "viridisLite",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "linked-cohort.Rmd",
      "filename": "linked-cohort.html",
      "title": "Linked Cohort Analysis: Linking Case Records to Vaccination History",
      "author": "Dr Nicolas Smoll, SCPHU, Sunshine Coast Hospital and Health Service",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Step 1: Pre-linkage audit with preflight()",
        "Step 2: Medicare checksum validation with check_medicare()",
        "Step 3: Blocking variable construction with flock()",
        "Step 4: Threshold sensitivity analysis with perch()",
        "Step 5: Probabilistic linkage with murmuration()",
        "Step 6: Visualise the score distribution with murmuration_plot()",
        "Step 7: Post-linkage validation",
        "Summary: the complete starling workflow",
        "Session information"
      ],
      "created": "2026-07-13 00:36:21",
      "modified": "2026-07-13 00:36:21",
      "commits": 1
    },
    {
      "source": "pre-linkage-quality.Rmd",
      "filename": "pre-linkage-quality.html",
      "title": "Pre-Linkage Data Quality: preflight(), check_medicare(), and flock()",
      "author": "Dr Nicolas Smoll, SCPHU, Sunshine Coast Hospital and Health Service",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Why pre-linkage quality matters",
        "preflight() — structured pre-linkage audit",
        "check_medicare() — Modulus 10 checksum validation",
        "What to do with invalid Medicare numbers",
        "flock() — blocking variable construction",
        "Choosing blocking variables for Australian datasets",
        "Putting it together",
        "Session information"
      ],
      "created": "2026-07-13 00:36:21",
      "modified": "2026-07-13 00:36:21",
      "commits": 1
    },
    {
      "source": "threshold-selection.Rmd",
      "filename": "threshold-selection.html",
      "title": "Threshold Selection: Using perch() and murmuration_plot()",
      "author": "Dr Nicolas Smoll, SCPHU, Sunshine Coast Hospital and Health Service",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Why the threshold matters",
        "Australian linkage authority benchmarks",
        "Example: running perch() on scored pairs",
        "Example: visualising the score distribution",
        "Using perch_before_linking = TRUE inside murmuration()",
        "Clerical review zone",
        "Session information"
      ],
      "created": "2026-07-13 00:36:21",
      "modified": "2026-07-13 00:36:21",
      "commits": 1
    }
  ],
  "_score": 4.176091259055681,
  "_indexed": true,
  "_nocasepkg": "starling",
  "_universes": [
    "nrsmoll"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.1.0",
      "date": "2026-10-11T07:49:15.000Z",
      "distro": "resolute",
      "commit": "e2fd02791b2cc110c3cfd88993571ccb852aeea1",
      "fileid": "https://r2.ropensci.org/ffd085d9abc574a4d97e75af88e064cab2f9a63059f8820ba9d73356fdd84239",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/nrsmoll/actions/runs/38122377150"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "1.1.0",
      "date": "2026-10-11T07:49:15.000Z",
      "distro": "resolute",
      "commit": "e2fd02791b2cc110c3cfd88993571ccb852aeea1",
      "fileid": "https://r2.ropensci.org/0b458712a182cf713e97eaae0ef68c62b6bb5147d8cf2b6b2f23e89e3eed4525",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/nrsmoll/actions/runs/38122377150"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.1.0",
      "date": "2026-10-11T08:09:34.000Z",
      "commit": "e2fd02791b2cc110c3cfd88993571ccb852aeea1",
      "fileid": "https://r2.ropensci.org/e519d5143aa8955c1030b443de509a0411c5d7d60dec91eeb572c6fd71297107",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/nrsmoll/actions/runs/38122377150"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "1.1.0",
      "date": "2026-10-11T08:08:55.000Z",
      "commit": "e2fd02791b2cc110c3cfd88993571ccb852aeea1",
      "fileid": "https://r2.ropensci.org/f0de5bd783b9c5e36a246014863a45916efb64fd3b971101aa80cb2e333dcc86",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/nrsmoll/actions/runs/38122377150"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.1.0",
      "date": "2026-10-11T07:49:21.000Z",
      "commit": "e2fd02791b2cc110c3cfd88993571ccb852aeea1",
      "fileid": "https://r2.ropensci.org/02f131c6ae7ac10acb59db2e125601d5249547acf5dea13ef52f835de2e127e6",
      "status": "success",
      "buildurl": "https://github.com/r-universe/nrsmoll/actions/runs/38122377150"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.1.0",
      "date": "2026-10-11T07:48:42.000Z",
      "commit": "e2fd02791b2cc110c3cfd88993571ccb852aeea1",
      "fileid": "https://r2.ropensci.org/51ff048157ce9453cdb1fd77a71eb94fcde59dbe329ccfddc1b2c98e5fee83f0",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/nrsmoll/actions/runs/38122377150"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.1.0",
      "date": "2026-10-11T07:48:35.000Z",
      "commit": "e2fd02791b2cc110c3cfd88993571ccb852aeea1",
      "fileid": "https://r2.ropensci.org/0021b5692f82943f622c5f15cd034a4c63335c33ba5ae86e22b14c28ce983df5",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/nrsmoll/actions/runs/38122377150"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "1.1.0",
      "date": "2026-10-11T07:48:17.000Z",
      "commit": "e2fd02791b2cc110c3cfd88993571ccb852aeea1",
      "fileid": "https://r2.ropensci.org/4ac8b5f2201275fbf68ebfce110d48cb36aace192a819ffad672c9ec67a0f554",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/nrsmoll/actions/runs/38122377150"
    }
  ]
}