Forms and Data Capture
Getting numbers and reasons out of people and into the model — the three form types and how to design one that gets filled in.
Most of what Infohub reports comes from machines. The parts that come from people — targets, lab results, downtime reasons, sign-offs — arrive through forms: chart types you can type into, placed on a dashboard like any other.
The technical side is simple. The design side determines whether the data actually gets captured, which is what this article is mostly about.
The three form types#
| Form | Captures |
|---|---|
| Time Based Form | Values for manual entry measures, by period |
| Event Based Form | Attribute values for events |
| Limit Based Form | Values in the context of their limits |
Time Based Form is the standard one: rows are periods, columns are measures, and users type into the cells. This is how monthly targets, daily lab results, and shift readings get entered.
Event Based Form is a table of events where the attribute columns are editable. This is how downtime reasons and batch quality results get captured — one row per stoppage, a reason dropdown to fill in.
Limit Based Form shows values against their limits, which suits exception review: the values that breached, with room to record what was done about them.
Building one#
Create the form with the constructor for its interval — or the Event Based constructor for an event form — then drop the measures or the event scheme onto it. Editable columns come from what you drop: manual entry measures are editable, and so are manually entered event attributes.
Place it on a dashboard where the people who fill it in already go. This is the single most important decision about a form, and it is a layout decision rather than a form one.
The coloured marks on a cell#
A small coloured disc in the top-left corner of a cell, or a triangle on it, is telling you something about that value. They are easy to overlook, and worth teaching to anyone who fills in a form regularly.
| Mark | Means |
|---|---|
| Red disc | Bad quality. The source returned a quality below 192 on the OPC scale Infohub uses. Anything entered by hand is recorded as good (192) |
| Amber disc | Changed since it was committed. The value has been edited, so it sits at version 2 or higher |
| Grey disc | A comment exists on this version of the value. Each version carries its own comments |
| Triangle, up or down | A limit exception — the value is outside its limit, in the direction the triangle points |
The triangle earns its place at data-entry time: it tells whoever is typing that the value is out of specification while they are still at the machine and can check it, rather than a week later when somebody queries the report.
The amber disc matters for a different reason. It is the visible trace of an edit, so a form full of amber discs is a form whose values have been revised — either careful correction, or a process problem worth asking about.
Read-only cells#
Not every cell on a form is editable, and the rules are worth knowing because they cause questions.
A cell is editable when the underlying thing is manually entered. A retrieved, aggregated, or calculated measure on a form is displayed but not editable — Infohub will not let a person overwrite a value the engine computes, because the next calculation pass would discard it.
This is often what you want: a form showing yesterday's actual production (read-only, calculated) beside today's target (editable, manual) gives the person entering the target the context to set it sensibly.
If a cell you expect to be editable is not, check the measure's retrieval type first.
Designing a form that gets filled in#
The technical part takes ten minutes. Completion rate is the whole game, and it is a design problem.
Put it where they already are. A form on the dashboard a supervisor opens at handover gets completed. The same form on a dashboard three clicks away does not. If necessary, put the form on the shift dashboard rather than in a tidy "Data Entry" section nobody visits.
Keep it short. Five fields get filled reliably. Twenty do not, and worse, a long form trains people to enter something plausible rather than something true.
Use enumerations for anything categorical. A dropdown is one click. Free text is typing, and it produces four spellings of one reason that no analysis can group. See Event Attributes and Enumerations.
Set limits on manual measures. A limit that flags an implausible entry catches the misplaced decimal point at the moment of entry, rather than after it has propagated into a monthly report. This is the cheapest validation available.
Set sensible defaults where a default is meaningful, so the common case is confirming rather than typing.
Order the fields as the person works. The sequence should match the order they encounter the information, not the order the measures happen to sit in the model.
Show them why it matters. A form beside the chart the data feeds is completed far more reliably than one that appears to send numbers into a void. Pair a downtime reason form with the Pareto chart it produces.
Measure the completion rate and show it. Build a measure counting how many events have their reason populated, as a percentage, and put it on the same dashboard. A visible "reasons captured: 62%" changes behaviour faster than any amount of asking, and it tells you whether your Pareto ranking is trustworthy yet.
Manual values cannot be regenerated#
Everything else in Infohub can be rebuilt from its source. A number a person typed cannot.
Exclude manual entry measures from any purge. Bulk deletes, recalculations, and housekeeping operations that are safe for Retrieved, Aggregated, Calculated, and Replicated measures are not safe for manually entered ones. Those four rebuild from their sources; manual values are the only copy. Confirm the scope of any bulk operation excludes them, and back up first.
The same applies to event attributes entered by hand, and to an event scheme's purge age. A purged event takes its manually entered reason with it. See Manual Entry Measures.
Spreadsheets versus forms#
When someone asks for a spreadsheet to be read into Infohub, ask where the numbers come from. If a person types them, a form is better in every respect that matters:
| Spreadsheet | Form | |
|---|---|---|
| Where the value lives | A file that can move or be locked | The Infohub database |
| Validation | None | Limits flag implausible values on entry |
| Categories | Free text | Enumerations |
| Audit | Whatever the file system records | In the model, per period |
| Backup | A separate concern | Covered by the database backup |
| Survives a column being inserted | No | Not applicable |
Handling gaps#
People forget, so decide what a blank means rather than discovering it later.
- Blank means no target — calculations guard for zero or null and produce no value, so the gap stays visible.
- Blank means carry forward — an expression reaches back:
Measure_<id>.Value ?? Measure_<id>[-1].Value. Reasonable for slow-moving reference values, dangerous for targets, because a stale target silently becomes the current one. - Blank means zero — right for counts of things that did not happen, wrong for most else.
The failure to avoid is not deciding, then finding months later that a chart has been comparing actuals against last year's target.
Diagnosing#
| Symptom | Cause |
|---|---|
| Cannot type into a cell | The measure is not a manual entry measure, or the attribute is not manually entered |
| Cannot type into a period | The period is outside the range the form offers, or permissions |
| Values entered but calculations ignore them | Interval mismatch — the calculation runs at a different interval |
| Free-text values will not group in analysis | No enumeration on a categorical field |
| Low completion rate | Form is not where the people are, or it is too long |
| A value disappeared | A purge or bulk operation included manual data — restore from backup |
| Implausible values reaching reports | No limit on the manual measure to flag them at entry |