| Title: | Regulatory Authority Profiles for Submission Readiness |
|---|---|
| Description: | Defines submission profiles per regulatory authority with authority-specific pillar weights, decision thresholds, indicator requirements, and risk configuration. Supports the U.S. Food and Drug Administration (FDA), European Medicines Agency (EMA), Pharmaceuticals and Medical Devices Agency (PMDA), Health Canada, Therapeutic Goods Administration (TGA), and Medicines and Healthcare products Regulatory Agency (MHRA). Integrates with 'r4subscore' and 'r4subrisk' configuration systems. |
| Authors: | Pawan Rama Mali [aut, cre, cph] (ORCID: <https://orcid.org/0000-0001-7864-5819>) |
| Maintainer: | Pawan Rama Mali <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.3.0 |
| Built: | 2026-10-12 08:33:10 UTC |
| Source: | https://github.com/r4sub/r4subprofile |
Puts several regulatory authorities side by side so a sponsor filing in more than one region can see how the readiness bar differs: pillar weights, the score needed to be ready, the minimum traceability coverage, how many indicators are required, and the detectability default that feeds risk scoring. It answers "what changes if we also file with the EMA" without building and eyeballing each profile by hand.
compare_authorities(authorities = NULL, submission_types = NULL)compare_authorities(authorities = NULL, submission_types = NULL)
authorities |
Character vector of authority names, matched
case-insensitively (for example |
submission_types |
How to pick a submission type per authority. |
A tibble with one row per authority and columns authority,
full_name, country, submission_type, the four pillar weights
(w_quality, w_trace, w_risk, w_usability), ready_min (lowest SCI
in the ready band), minimum_coverage, n_required_indicators,
default_detectability, and required_asset_types.
compare_authorities(c("FDA", "EMA", "PMDA")) # A specific submission type where all three offer it is not guaranteed, so # select per authority: compare_authorities( c("FDA", "EMA"), submission_types = c(FDA = "NDA", EMA = "MAA") )compare_authorities(c("FDA", "EMA", "PMDA")) # A specific submission type where all three offer it is not guaranteed, so # select per authority: compare_authorities( c("FDA", "EMA"), submission_types = c(FDA = "NDA", EMA = "MAA") )
Returns a summary of all supported regulatory authorities with their full names, countries, and number of available submission types.
list_authorities()list_authorities()
A tibble with columns: authority, full_name, country,
n_submission_types.
list_authorities()list_authorities()
Returns the valid submission types for a given regulatory authority.
list_submission_types(authority)list_submission_types(authority)
authority |
Character. A supported authority name. |
A character vector of valid submission types.
list_submission_types("FDA") list_submission_types("EMA")list_submission_types("FDA") list_submission_types("EMA")
Returns the list of indicator IDs that are mandatory for the given submission profile.
profile_required_indicators(profile)profile_required_indicators(profile)
profile |
A |
A character vector of required indicator_id values.
prof <- submission_profile("FDA", "NDA") profile_required_indicators(prof) prof_ind <- submission_profile("FDA", "IND") profile_required_indicators(prof_ind)prof <- submission_profile("FDA", "NDA") profile_required_indicators(prof) prof_ind <- submission_profile("FDA", "IND") profile_required_indicators(prof_ind)
Returns a list with structure compatible with r4subrisk::risk_config_default().
Can be passed directly to risk assessment functions.
profile_risk_config(profile)profile_risk_config(profile)
profile |
A |
A list of class "risk_config" with rpn_bands,
evidence_severity_to_probability, evidence_severity_to_impact,
and default_detectability.
prof <- submission_profile("FDA", "NDA") cfg <- profile_risk_config(prof) cfg$rpn_bandsprof <- submission_profile("FDA", "NDA") cfg <- profile_risk_config(prof) cfg$rpn_bands
Returns a list with structure compatible with r4subscore::sci_config_default().
Can be passed directly to compute_pillar_scores() or compute_sci().
profile_sci_config(profile)profile_sci_config(profile)
profile |
A |
A list of class "sci_config" with pillar_weights and bands.
prof <- submission_profile("FDA", "NDA") cfg <- profile_sci_config(prof) cfg$pillar_weights cfg$bandsprof <- submission_profile("FDA", "NDA") cfg <- profile_sci_config(prof) cfg$pillar_weights cfg$bands
Prints a formatted summary of a regulatory submission profile including authority details, pillar weights, decision bands, and requirements.
profile_summary(profile)profile_summary(profile)
profile |
A |
The profile object, invisibly.
prof <- submission_profile("FDA", "NDA") profile_summary(prof)prof <- submission_profile("FDA", "NDA") profile_summary(prof)
Returns a rule pack by id (which encodes the authority and version, for
example "fda-2026.1"). Each indicator in the pack carries a source field
for the authoritative citation that motivates it.
rule_pack(id, sources = NULL) ## S3 method for class 'rule_pack' print(x, ...)rule_pack(id, sources = NULL) ## S3 method for class 'rule_pack' print(x, ...)
id |
A pack id from |
sources |
Optional named character vector mapping |
x |
A |
... |
Ignored. |
The built-in packs ship with source set to NA: the citations are pending
entry by someone with the regulatory references to hand, deliberately rather
than filled with unverified section numbers. Supply them with the sources
argument, or fill them from your own controlled reference list. This keeps the
pack mechanism, the versioning, and the provenance usable now, with the
citations added when they can be stated accurately.
An object of class "rule_pack" with id, authority, version,
effective_date, and an indicators tibble (indicator_id, source).
rule_packs(), rule_pack_provenance().
pack <- rule_pack("fda-2026.1") pack rule_pack_indicators(pack) # Supply citations for a controlled reference list: pack <- rule_pack("fda-2026.1", sources = c("Q-MISS-VAR" = "FDA Study Data Technical Conformance Guide"))pack <- rule_pack("fda-2026.1") pack rule_pack_indicators(pack) # Supply citations for a controlled reference list: pack <- rule_pack("fda-2026.1", sources = c("Q-MISS-VAR" = "FDA Study Data Technical Conformance Guide"))
Indicators in a Rule Pack
rule_pack_indicators(pack)rule_pack_indicators(pack)
pack |
A |
The pack's indicators tibble (indicator_id, source).
rule_pack_indicators(rule_pack("ema-2026.1"))rule_pack_indicators(rule_pack("ema-2026.1"))
Returns the identifying fields of a rule pack as a named character vector, to record on a scored result so the score can always be traced to the exact ruleset and version that produced it.
rule_pack_provenance(pack)rule_pack_provenance(pack)
pack |
A |
A named character vector: rule_pack, rule_pack_version,
effective_date.
rule_pack_provenance(rule_pack("fda-2026.1"))rule_pack_provenance(rule_pack("fda-2026.1"))
Lists the built-in rule packs. A rule pack is an identified, versioned set of the indicators an authority requires, so a submission can be scored against a named, dated ruleset and the result reproduced later.
rule_packs()rule_packs()
A tibble with one row per pack: id, authority, version,
effective_date, and n_indicators.
rule_packs()rule_packs()
Constructs a regulatory submission profile with authority-specific pillar weights, decision bands, required indicators, and risk configuration.
submission_profile(authority, submission_type, study_phase = NULL)submission_profile(authority, submission_type, study_phase = NULL)
authority |
Character. Regulatory authority name (e.g., |
submission_type |
Character. Submission type for the authority
(e.g., |
study_phase |
Character or |
A list of class "submission_profile" with elements:
authority, full_name, country, submission_type, study_phase,
pillar_weights, bands, required_indicators, required_asset_types,
minimum_coverage, rpn_bands, default_detectability.
prof <- submission_profile("FDA", "NDA") prof$pillar_weights prof$required_indicators prof_ema <- submission_profile("EMA", "MAA", study_phase = "Phase3") prof_ema$bandsprof <- submission_profile("FDA", "NDA") prof$pillar_weights prof$required_indicators prof_ema <- submission_profile("EMA", "MAA", study_phase = "Phase3") prof_ema$bands
Checks whether an evidence table meets the requirements specified by a regulatory submission profile: required indicators present, required asset types covered, and minimum indicator coverage met.
validate_against_profile(evidence, profile)validate_against_profile(evidence, profile)
evidence |
A validated evidence data.frame conforming to the r4subcore evidence schema. |
profile |
A |
A list of class "profile_validation" with elements:
is_compliant: logical; TRUE if all requirements are met
missing_indicators: character vector of missing required indicator IDs
missing_asset_types: character vector of missing required asset types
coverage: numeric; fraction of required indicators present (0-1)
coverage_met: logical; whether coverage meets the minimum threshold
details: tibble with per-requirement status
## Not run: prof <- submission_profile("FDA", "NDA") result <- validate_against_profile(evidence, prof) result$is_compliant result$missing_indicators ## End(Not run)## Not run: prof <- submission_profile("FDA", "NDA") result <- validate_against_profile(evidence, prof) result$is_compliant result$missing_indicators ## End(Not run)