Skip to main content
The Events table in a project’s Data Inputs section lists your collected data one data point at a time. Each row is a single measured value with its own type, status, and alerts. Because each value gets its own row, a data point that arrives from a data feed or the API with no value still appears in the table, showing as Missing with a status of Incomplete. A reading that was never submitted has no row at all, and clearing a value on an existing event removes its row.

Reading the table

Source, Tracking ID, Feedstock, Asset and Created by are hidden until you turn them on. Use Columns to show or hide them. Your choice is remembered per project in the browser you set it in. You can also filter by event ID without showing it as a column. Substituted values all carry the same marker. Hover one to see how it was derived: the original reading, the method, and either the rule that wrote it or the source it came from.
On large projects the row count reads of over N rather than an exact total. Mangrove stops counting once it can tell the result set is large, which keeps the table responsive. Narrow the filters to get an exact count.

Filtering and sorting

Start with the Event / data point type quick filter at the top to narrow to the event type or data point type you care about. Add column filters for anything more specific, and combine them freely. Filtering the Origin column offers four options. Substituted covers every value that has been changed, with Value was missing underneath it narrowing to the gaps that have since been filled. Reverted finds values that have been restored, and Original finds the ones never touched. To find the gaps that are still empty, filter Status to Incomplete, which also returns values marked incomplete for other reasons. Filter by AI takes a plain-language request instead of a filter stack. Ask for “anomalous data points from the last month”, “data points pending review”, or “data points from this month” and it builds the filter for you. Sorting and filtering by Value is switched off until the table holds a single numeric data point type, because comparing values from different types is meaningless. The Event / data point type quick filter does not switch it on, so use a column filter:
  1. Open Filters and add a filter on the Data Point Type column.
  2. Set its operator to is or is any of, and pick one numeric type.
The Value filter input and the Value column sort both come alive at that point, and both tell you what to add while they are switched off. If you add other filters alongside it, keep the filter panel on And.

Checking health

Health Check narrows the table to the values that already need attention: those whose status is Anomalous or Incomplete, and those carrying a rule alert. On accounts with evidence checks enabled it also picks up values carrying an evidence alert. It runs no new checks of its own. When nothing in the current view qualifies you get a straight confirmation: Data checked: no issues detected. The button appears for users with write access. Values carrying an alert show it in the Status column. Alerts are raised per data point, and by default a rule that reads several values can flag any of them. A rule can be set to flag only the values it is really about, which keeps triage on the value that breached. See Managing alerts for how to triage them, and Create a Data Rule for choosing which value an alert lands on.

Exporting

Click Export and pick CSV (.csv) or Excel (.xlsx). The export is flat, one row per data point, and it honours the filters you have applied, so you can scope the file by narrowing the table first. An Excel export is capped at 100,000 rows and a CSV at 1,000,000. Over the Excel cap the export fails and tells you the row count, so switch to CSV or narrow the filters. Over the CSV cap it reports a generic failure, so if a very large CSV fails, narrow the filters and try again. The Origin column in the file reads Substituted, Substituted (value was missing), or Original. The two substituted labels sort together, and the longer one marks the values that were empty before they were filled in. Exports are prepared in the background. Stay on the page until the file is ready, because the download link is held by the page and is lost if you navigate away.

Deleting data points

Select rows and click Delete. Because data points live inside events, the dialog asks which you meant to remove and previews the effect before anything is deleted: The dialog counts the events and data points each choice would affect, and calls out cases where the choice is made for you. An event cannot exist without data points, so deleting the last value in an event removes the event as well. When both choices would delete exactly the same rows, the choice disappears. Values already used by a model run are locked, and they are skipped and reported as skipped.
A selection larger than 200 data points is deleted in passes of 200. The dialog tells you how many rows this pass covers; re-select the remainder afterwards to continue.

Substituting a value

A substitution replaces a data point’s value without touching the original record, which stays visible with its full lineage. Substitutions are enabled per account, so ask your Mangrove account team to switch them on. A value’s first substitution is written through the API or from a data feed transformation, not from this table. See Correct a data point value for the API surface. Editing a value in the app that already carries correction history records that edit as a manual override and appends it to the history. Editing a value that has never been corrected is an ordinary edit and starts no history. To undo a substitution, click the row to open the Event Detail drawer, click the data point’s name to expand its correction history, and click Restore to original. That puts back the value in place before the most recent substitution, and the row’s Origin becomes Reverted. A restore cannot itself be restored, though a later substitution on the same value can be. Substituting a value does not recalculate anything downstream. A batch that was already generated keeps the value it was generated with.