11  Ethics Approval Check

11.1 What it checks

The ethics_check module searches a paper for a statement that the research received ethics approval — for example from an Institutional Review Board (IRB), a Research Ethics Committee, or an animal-care committee — or that it was explicitly exempted or waived. Reporting ethics approval is expected for studies involving human or animal participants.

The module recognises a wide range of committee names and approval phrasing across several languages and conventions, including:

  • Human research committees — Institutional Review Board (IRB), Independent Ethics Committee (IEC), Research/Medical Ethics Committee, and abbreviations such as REC, REB, ERB, METC, DEC.
  • Animal research committees — IACUC, Animal Welfare Ethical Review Body (AWERB), and language variants.
  • Approval phrasing — “approved by the … ethics committee”, “ethically approved”, “approved under protocol …”.
  • Waivers and exemptions — “ethics waiver”, “deemed exempt”, “IRB exemption”.
  • Declaration of Helsinki statements.

11.1.1 How it decides whether ethics approval is needed

Not every paper needs an ethics statement — theoretical work, simulations, reviews, meta-analyses, and secondary analyses of existing data usually do not. So the module does not simply flag every paper that lacks an approval statement. Instead it first judges whether the paper appears to involve live data collection from human or animal participants, and only flags a missing statement for those papers.

This judgment is made by an internal helper that searches the text for sentences signalling that data were collected directly from participants — for example:

  • participant actions — “participants were recruited / randomly assigned / debriefed”, “subjects gave informed consent”;
  • researcher actions — “we recruited / enrolled / ran participants”, “we conducted the study / survey / clinical trial”;
  • consent and recruitment — “informed consent was obtained”, a “participant pool” or “research participation scheme”;
  • sample descriptions — “our participants”, student samples, or participant/patient inclusion and exclusion criteria;
  • animal data collection — equivalent phrasing for animal subjects.

The patterns are deliberately conservative: they require explicit participant- or recruitment-language rather than generic words like “sample”, so that papers re-analysing existing survey data or running computational experiments are not mistakenly flagged. The result is stored in the needs_ethics column of the summary table, and the traffic light only turns red for papers where needs_ethics is TRUE and no approval statement was found.

This module is fully offline — it uses only regular expressions, so all the code below runs with just the Metacheck package.

11.2 Running the module

The module only flags a missing statement when a paper appears to involve live data collection (so re-analyses of existing data are not penalised). We run it across the first ten papers of the built-in psychsci dataset.

mo <- module_run(psychsci[1:10], "ethics_check")
mo$traffic_light
#> [1] "red"
mo$summary_text
#> [1] "3 of 10 papers appeared to involve live data collection and lacked an ethics approval statement."

The summary_table has one row per paper, with an ethics_approved flag and the matched statement(s):

mo$summary_table[, c("paper_id", "ethics_approved")] |>
  knitr::kable()
paper_id ethics_approved
0956797613520608 TRUE
0956797614522816 FALSE
0956797614527830 TRUE
0956797614557697 TRUE
0956797614560771 FALSE
0956797614566469 FALSE
0956797615569001 FALSE
0956797615569889 TRUE
0956797615583071 TRUE
0956797615588467 TRUE

11.3 A clean example and one with problems

Papers that report approval show the exact sentence the module matched — useful for confirming it found a genuine statement:

approved <- mo$summary_table[mo$summary_table$ethics_approved %in% TRUE, ]
approved$ethics_statements[[1]]
#> [1] "The ethics committee for the region of Midtjylland, Denmark, approved the experiment."

Papers that appear to collect data but contain no approval statement are the ones to check. These are what turn the traffic light red:

mo$summary_table[mo$summary_table$needs_ethics %in% TRUE &
                 mo$summary_table$ethics_approved %in% FALSE, "paper_id"]
#> [1] "0956797614522816" "0956797614560771" "0956797615569001"

A missing statement is not proof that approval was never obtained — many authors simply omit it — but it flags papers where a reviewer should confirm the ethics reporting.

11.4 Options

ethics_check takes only the paper argument.

11.5 Notes

Because the module matches committee names and approval phrasing with regular expressions, it can miss unusually worded statements, and may occasionally match a sentence that mentions ethics for another reason. As with every module, treat the output as a prompt for human judgement rather than a verdict.