As far as I have been exposed to, reporting has been binary. Either static with developers receiving or anticipating the specifications of the report (subset criteria, list of fields to be displayed, derivation rules, etc.). Or fully dynamic with a dashboard allowing versatility in the report generated.The first option leads to many ‘back and forth’ in case the specifications change over time/situations or if they were ill-anticipated by the developer.
The second option seems ideal but often lacks of traceability as the report is generated from tedious copy-paste from the dashboard and the selections of the users might be lost or erroneously referred to.
On the other hand, R markdown reports can be triggered within a dashboard (shiny app) with the user selecting input parameters, visualizing the result of its selection in the dashboard where figures, tables and listings dynamically update. Once satisfied with its selection, the user can click on a button referring to a R markdown program that works as a template and automatically copies and pastes relevant information from the dashboard at a pre-defined location in the report. As long as the template has been designed for capturing the input parameters selected by the user that ensures full traceability and internal consistency of the report.
The outputs generated by R markdowns can be slides for executive summary, word documents allowing further editing, pdf documents, html pages requiring only an internet browser. The output can be based on a template including text, specific location for TFLs, ad hoc statistics that will be included within the standardized text. Beyond full traceability, internal consistency and dynamism another potential for R markdown is breaking silos between reporting, analytics, writers and quality assurance.
Indeed, in large organizations, roles are overspecialized with departments focusing on some activities only and overview from quality assurance to make sure that the activities are consistent with the defined process. With R markdown, the template (reflecting process), reporting and analysis is merged into a single file that generated updated results when data are updated or when the template is. Validation occurs at the program level and only once instead of being spread at multiple stages.