Opens in a new tab

Shiny apps and interactive tools

Analytical models within reach of the people who decide with them

What it is

We develop interactive web applications in R/Shiny that give you direct access to your own analyses: explore scenarios, filter results, browse maps and download tables without relying on a static report or on whoever ran the analysis.

The app encapsulates the statistical model and puts it behind an interface that anyone on the team can use. The output of a project stops being a PDF and becomes a decision-making tool.

Objectives

  • Turn a statistical analysis or a simulation model into a web application that users operate on their own.
  • Enable interactive exploration of scenarios, with results that recalculate when the input parameters change.
  • Bring maps, charts and dynamic tables together in a single coherent, navigable interface.
  • Let users download results in working formats (XLSX, CSV, figures) straight from the app.
  • Deliver the app deployed, documented and reproducible, with version-controlled code built to an audit-ready standard.
Key points

Dashboards for decision-making

  • Dashboards that combine indicators, time series and subgroup breakdowns in a single navigable view.
  • Monitoring tools that keep continuous track of clinical, operational or population metrics.
  • Interfaces that expose a statistical model: the user adjusts the assumptions and the app returns the recalculated prediction.

Multidimensional exploration and simulation

  • Filters that combine across several dimensions (geography, time, scenario, subgroup), with visualisations that update dynamically.
  • "What-if" simulators for cohorts, populations or interventions, with direct comparison between alternatives.
  • Switching between methodological approaches or sets of assumptions within the same app.

Geospatial and interactive visualisation

  • Navigable choropleth maps with data aggregated by region, province or administrative area.
  • Interactive plotly charts: zoom, tooltips, selection and linked panels.
  • Dynamic tables with filtering, sorting and column grouping, which users can export.

Performance and code that lasts

  • Precomputed aggregations so the app responds instantly even when the underlying analysis is heavy.
  • Modular architecture that keeps interface logic and server logic apart, ready to grow without rewrites.
  • Audit-ready standard: documented code, version-controlled in Git, with pinned package versions to ensure reproducibility.

What it is for

  • Your team needs to check the results of an analysis again and again, with different data or assumptions, and ordering a new report each time is slow and expensive.
  • Several of you, in different roles, work on the same database, and each of you needs to explore a different slice of the information.
  • You want to present evidence convincingly to funders, managers or partners, and a static document does not convey the depth of the analysis behind it.
Why choose this service

An analysis that only its author understands is not an asset. It's a dependency

The value of a statistical model lies not only in the result it produces today, but in the questions it lets you answer tomorrow. A Shiny app turns that model into a tool your team consults when it needs to, with its own data and no intermediaries. The app opens up the full analysis to whoever needs to use it, whenever they need it.

The analyst designs the interface

We build the app from the statistical model behind it, not from an empty interface. The person who understands the methodology is the one who designs how it is exposed to the user, which keeps the tool from simplifying or distorting what the analysis actually says.

Analytical complexity, accessible interface

We develop apps that switch between methodological approaches, recalculate dozens of scenarios and combine maps, indicators and downloadable tables in a single interface. The sophistication lives on the server; the user only sees clear controls.

Built for several kinds of user at once

One app serves users with different needs, with panels and views that adapt to each person's role or area of interest. The whole team works from the same data source without getting in each other's way and without parallel versions.

Development, deployment and maintenance

We deploy the app, make it accessible to your team and take care of its maintenance. Our support covers the tool's whole life cycle, from the first prototype to later updates.

Our process

What working with us looks like

We apply our D²I (Data to Insights) methodology to every service. A structured, iterative and transparent process that turns complex data into actionable knowledge.

01

Kick-off and problem definition

We meet with you to understand the clinical problem, the data available and the objectives of the project. We agree on deliverables, timelines and communication channels, and we sign whatever confidentiality agreements you need to protect your data.

02

Data review and preparation

We assess the quality of your data, identify inconsistencies and limitations, and structure the data for analysis. If critical information is missing, we tell you before going any further. We document every cleaning decision so that the process is traceable and reproducible. We define which decisions the app has to support, which results it will expose, which parameters the user will control and at what granularity, and we prepare the data and aggregations so that they respond smoothly to real-time interaction.

03

Analysis and modelling

We apply the statistical methodology that fits your questions. We work iteratively: we share preliminary results with you, discuss the findings and adjust the approach where needed. We do not work in the dark until the final delivery. We build the app with a modular architecture, integrate the analytical logic on the server and design an interface that non-technical users can operate on their own, validating every view against the results of the original analysis.

04

Communicating results

We turn the findings into the format you need: a technical report, tables and figures for publication, an interactive dashboard or an executive presentation. We always include the clinical interpretation, not just the figures.

05

Impact review session

30 days after delivery we meet with you again for a 60-minute strategy session. By then you have had time to present the results internally, the real implementation questions have come up and you can assess the impact of the work with some perspective. We answer your questions, adjust interpretations where necessary and agree together on the way forward.

This is our general process. If you want to understand how we apply it technically to each type of analysis, see our full D²I methodology.

Have a data project on your hands?

Tell us about your case and we will work out together how to approach it.

Book a session
FAQs

Frequently asked questions

When do I need a Shiny app rather than a report or a static dashboard?

You need a Shiny app when your team has to operate the analysis, not just read it: change parameters, explore scenarios, filter results or download tables. It applies when the same results are consulted again and again with different data or assumptions, when several people in different roles need to explore different slices of the same database, or when ordering a new report at every iteration is slow and expensive. A static document answers the questions anticipated on the day it was written. An interactive app lets you explore new questions within the space of data, parameters and scenarios that has been defined, because it encapsulates the model and lets the user interrogate it. The difference is operating versus reading. If the result is consulted once and filed away, a report is enough; if you keep coming back to it to decide with changing data, the interactive tool is what stops you depending on whoever ran the analysis.

What kinds of apps and tools do you develop?

We develop interactive web applications in R/Shiny that expose an analysis or a model so that users can operate it on their own. The format depends on the decision the app has to support: dashboards that combine indicators, time series and subgroup breakdowns; tools for continuous monitoring of clinical, operational or population metrics; "what-if" simulators for cohorts, populations or interventions, with comparison between alternatives; and interfaces that expose a statistical model so that users can adjust assumptions and get the recalculated prediction. They integrate navigable choropleth maps, interactive plotly charts (zoom, tooltips, linked panels) and exportable dynamic tables. The common denominator is not the visual format but the fact that the user controls the input and the app recalculates the output. What you get is a tool you can operate, not a fixed image of an analysis.

I have an analysis done in R. Can you turn it into an app, or does it have to be redone?

If the analysis is well defined, it is not redone from scratch: the app is built by encapsulating the existing statistical model and placing it behind an interface you can operate. This applies to anyone who already has an analysis or a simulation model in R and wants their team to use it without depending on whoever programmed it. The interface is designed by someone who understands the methodology, so that the tool does not simplify or distort what the analysis actually says, and every view is validated against the results of the original analysis. One caveat: moving an analysis into an interactive app is not just "wrapping" it. It has to be structured to recalculate in real time, which may mean reorganising the logic or precomputing aggregations. What is kept is the analysis; what is built is the layer that makes it operable by the team, with no loss of methodological fidelity.

The app will handle a lot of data or heavy computations. Will it run smoothly?

Performance is designed in from the start, so that the app responds smoothly even when the underlying analysis is heavy. This matters when the model is costly to compute or the data volume is large, which is when a poorly architected app becomes slow and unusable. The usual strategy is to precompute aggregations and scenarios outside the user's session, so that each interaction queries results already calculated instead of recalculating them live, combined with a modular architecture that keeps interface logic and server logic apart. The sophistication lives on the server; the user only sees clear controls, with response times that suit the intended use. The limit: smoothness depends on the analysis allowing what the user will explore to be precomputed. If every interaction demands a new and unpredictable computation, the app is sized accordingly. The aim is that analytical complexity is not paid for in waiting time.

Do you also handle deployment and maintenance, or do you just hand over the code?

ADI develops, deploys and maintains the app: it is delivered deployed and accessible to your team, and our support covers the life cycle agreed for the tool, from the first prototype to the planned updates. This applies to any client who needs a working tool, not just a code repository that someone would then have to get running. The code is delivered documented, version-controlled in Git and with pinned package versions, to an audit-ready standard, so that the app remains reproducible and maintainable over time. That means the tool is not tied to a single person: its modular architecture and its documentation allow it to be reviewed and extended without rewriting it. What you get is a working app, deployed and maintainable, not a file you have to deploy and maintain on your own.

Do I need an app, or is a good figure enough?

A Shiny app fits when the user operates the artefact: entering parameters, recalculating scenarios, filtering and downloading results. Scientific visualisation and data storytelling fit when the user reads the artefact: a figure, a chart or a visual narrative designed to communicate a specific finding, with no interaction. They do not answer the same question. The Shiny app provides a tool that the team interrogates with its own data; visualisation delivers a communication piece designed to convey a finding or a narrative that is already defined. The two can be combined in the same project, since an app can include carefully designed visualisations, but the deciding criterion is whether the client will operate the result or only read it. If you operate it, it's Shiny; if you read it, it's visualisation.

How is a Shiny app different from a reproducible report or a reporting dashboard?

A Shiny app is used when the team needs to control the input and get recalculated outputs in real time. A reproducible report or a reporting dashboard fits when what you need is a document or a panel that regenerates automatically and consistently every time the data are updated, but which the user consults rather than manipulates. The difference lies in the interaction. A reproducible report ensures that the same data and the same code produce the same document, traceable and auditable; a Shiny app lets the user change the data or an assumption and see the new result. They can be stages of the same project, for example an analysis that is first reported and later made explorable, but they meet different needs: reproducing a result reliably versus exploring it autonomously.

Does developing a Shiny app include cleaning and preparing my data?

Not as a core part: developing a Shiny app means building the interactive tool on data that are already prepared, not cleaning the source database. The limit is worth spelling out because "building the app" is often assumed to include getting the data ready, and they are two different jobs. Data preparation, meaning a review of quality, structure, coding and missing data, belongs to the preparation phase of the project or to a dedicated data quality service, and is scoped separately when the database needs it. What is included here is defining which data and which aggregations the app needs in order to respond smoothly, and preparing them with that in mind. Keeping the two apart protects the scope: the app exposes an analysis built on reliable data and makes it operable; ensuring that reliability in the first place is a prior or parallel phase, not an interface task.

Shall we talk?

Tell us what you are working on and we will give you a straight answer on how we can help.