Linkr
Home Resources Tools Documentation Blog Demo
FR
  • What is Linkr?
  • Deployment modes
  • Quick start
  • Local install
  • With Docker
  • Manual install
  • Client-only
  • Install LibreChat
  • Your first project
  • Linkr in a clinical data warehouse
  • Workspaces and projects
  • The data pipeline
  • Entities and sharing
  • Versioning and collaboration
  • Overview
  • Projects
  • Wiki
  • Plugins
  • Members and roles
  • Settings
  • Schemas
  • Getting and exploring
  • Mapping
  • Databases
  • Derived sub-databases
  • Data quality
  • Data catalog
  • Build and publish
  • Anonymize
  • SQL script collections
  • ETL pipelines
  • Building and running
  • Generating the scripts
  • Overview
  • Mapping projects
  • Global view
  • Target concepts
  • Mapping editor
  • Suggestions
  • AI agent
  • Evaluation
  • Export
  • Overview
  • Databases
  • Concepts
  • Cohorts
  • Building
  • Results, SQL and report
  • Patient data
  • Pipeline
  • Datasets
  • IDE
  • Web apps
  • Versioning
  • Overview
  • Tabs and widgets
  • Built-in widgets
  • Analysis widgets
  • Control charts (SPC)
  • Surveys and eCRF
  • R and Python code
  • Filters, settings and export
  • Overview
  • Presentation mode
  • Exporting a report
  • Agents
  • MCP server
  • Skills
  • Import and export
  • Git versioning
  • Community catalog
  • Publishing content
  • Production install
  • Configuration
  • Database connectors
  • Authentication and permissions
  • Files on the server
  • Backup and restore
  • Contributing code
  • Glossary
  • Keyboard shortcuts
  • Release notes
Documentation Dashboards Control charts (SPC)

Control charts (SPC)

Tracking an indicator over time without mistaking noise for change: chart types, denominators, signal rules and warnings.

In short

A control chart tracks an indicator period after period and separates ordinary variation from real change. You point at a date, a variable and a denominator; the widget picks the fitting chart, draws its limits, and flags in red whatever falls outside the ordinary.

Client Available in client-only mode — runs entirely in the browser, no backend. Backend Available with the FastAPI backend.

Why not a month-on-month comparison

“Infections are up 20% this month”: on small numbers that sentence is almost always noise. Comparing two consecutive points, or a month against last year, produces constant alarms and reactions to variation that means nothing.

A control chart answers differently. It establishes what the process usually does, draws limits around that habit, and flags only what falls outside. It is the reference method for hospital quality monitoring.

What is being charted

This is the panel’s first field, and the only one that changes what the limits mean: it sets the variance model — binomial for a proportion, Poisson for a rate, Gaussian for a measurement. Five choices: Auto-detect, Proportion of cases, Rate per exposure time, Measured quantity, Time between rare events. Left on auto-detect, the widget infers the nature of the indicator and says what it inferred.

The fields that follow depend on it: a measured quantity takes an Aggregation instead of values to count, and has no denominator; time between rare events has none either.

demo.linkr.interhop.org
What is being chartedrequiredThis choice sets the variance model, and so the control limits themselves: binomial for a proportion, Poisson for a rate, Gaussian for a measurement.
Period
Daterequired
Variablerequired
Values counted as the event
One row per
DenominatorThe population at risk. For a device-associated infection this is device-days, not admissions.
Chart
Limit width (sigma)
Target centre line
Freeze limits after (YYYY-MM-DD)
The control chart's configuration panel, in the widget's order. Change what is being charted or the denominator: fields that do not apply disappear. Hover an ⓘ icon to read the field's help.

Choosing the chart

You can leave the Chart setting on Auto: the widget infers the chart from the nature of the indicator and the shape of the data. Eleven choices are offered.

ChartFor which indicator
p, P′A proportion of cases. The P′ variant widens the limits when the data vary more than the model predicts.
npA count of events, when denominators are equal from one period to the next.
u, U′A rate against an exposure — per 1,000 patient-days, for instance.
cA count with a constant denominator.
IA measured quantity: a length of stay, a delay, a score.
EWMASlow drifts, which a classic chart takes a long time to see.
g, tRare events: you track the number of days or the time between two occurrences.

Rare events are the classic trap

In a unit where an infection occurs twice a quarter, a monthly rate is almost entirely noise. The g and t charts answer the right question — “how long without an event?” — and read the opposite way round: a rising line is an improvement.

The denominator

This is the setting that deserves the most attention, because it decides what the indicator means. It only appears for a proportion, a rate, or on auto-detect. Four possibilities:

  • Cases (one per row) — one row, one case.
  • A duration column — when the exposure is already computed in your data.
  • Patient-days (overlap) — computed by overlapping stays across the period, from admission and discharge dates: a 90-day stay counts in all three months it spans.
  • Device-days (overlap) — the same principle, between insertion and removal.

For the last three, Rate per sets the scale: 1000 by default, as NHSN and ECDC report.

One row per stay, not per measurement

The One row per setting deduplicates the data before computing. Without it, a patient with ten samples would count ten times in the denominator.

Reading the chart

The centre line is what the process usually does; the limits bound its ordinary variation. Flagged points appear in red, and a counter summarises them under the chart.

Limits
demo.linkr.interhop.org
30-day readmissions
0.000.100.200.302024-01-012024-07-012025-01-012025-07-01
Chart: p (proportion)Centre: 0.152 signals
A monthly p-chart: the dashed limits widen on low-volume months and tighten on busy ones. Two busy months cross their limits. Switch to flat limits: those two signals vanish, and a 60-stay month raises a false alarm.

Staircase limits are normal

When the denominator changes from one period to the next — 80 patients one month, 300 the next — the limits tighten on large periods and widen on small ones. A proportion computed on 300 cases is far more precise than on 80, and the chart shows it.

Flat limits over a varying denominator are the single most common error in hand-made charts.

The signal rules

Three sets of rules are offered.

Anhøj — recommended

Two rules whose threshold adapts to the length of the series: a run that stays too long on one side of the centre line, and too few crossings of it.

Fixed run length

A threshold you set, plus a monotone trend rule. Pick this to reproduce an existing chart.

Out-of-limit points only

The minimum. A point beyond the limits is flagged whatever the setting: that is the chart itself, not an added rule.

Why not the eight classic rules

Stacking all the Western Electric rules makes a perfectly stable process alarm constantly — and mostly teaches teams to ignore the chart. The rules kept by default were calibrated to avoid that.

A signal means "look", not "act"

It says the variation observed is probably not due to chance. What caused it — a change of practice, a change of coding, an outbreak, a new clinician — requires going back to the data.

Freezing the limits

The Freeze limits after setting defines a baseline period: limits are computed up to that date and then carried forward unchanged. This is the clean way to show the effect of an intervention — the limits describe the “before”, and the “after” reads against it.

A vertical line marks the split on the chart.

The warnings

The widget shows above the chart whatever could mislead the reading, rather than letting a misleading chart through:

demo.linkr.interhop.org
30-day readmissions
Only 8 periods: the limits are provisional. A control chart usually needs about 20.
0.000.100.200.302024-01-012024-04-012024-07-01
Chart: p (proportion)Centre: 0.130 signals
The same chart cut down to eight months: the widget draws it, but warns above it that its limits are provisional.
  • Too few periods — the limits are provisional; about twenty are needed.
  • Events too rare — a g-chart would read better.
  • Overdispersion — the data vary more than the model predicts, and a P′ or U′ chart will raise fewer false alarms.
  • Baseline too short — every period was used instead.
  • Option ignored — a setting does not apply to the nature of the indicator chosen.

What does not exist yet

  • Annotations — marking an intervention on the chart.
  • Several phases — only one baseline split is possible.
  • XbarS, CUSUM, funnel plots and risk adjustment are under consideration, with no timeline.

A recent feature

This analysis is complete and covered by its tests, but it has not yet been exercised by real use in the application. If its behaviour surprises you, that is a useful thing to report.

Going further

  • Analysis widgets — comparing groups rather than tracking time.
  • Built-in widgets — charts and indicators without statistics.
  • Datasets — preparing the table a control chart expects.
PreviousAnalysis widgetsNextSurveys and eCRF

Product

  • Home
  • Demo

Resources

  • Documentation
  • Resources
  • Tools
  • Blog

Community

  • Framagit source code
  • Github source code

About

  • InterHop.org
  • Contact

2021–2026 InterHop — CC BY-NC-SA 4.0 (site) · AGPLv3 (software)