Skip to main content

Build a crosstab

A Crosstab pivots lab results into a sample-by-analyte table: each row is a sample context, each column is an Analyte, and cells that exceed a screening limit are colored. Use it to read many results at once and spot exceedances across Locations.

Before you start
  • Role required: any signed-in user with view access to the projects or sites you want to analyze. The service intersects your request against your authorized scope.
  • Prerequisites: committed Lab Results for the locations and analytes you want to pivot. To color exceedances, you also need a Screening Criteria Set; to control unit conversion and non-detect display, a Data Management Plan (DMP) on the selected projects.

Steps

  1. Go to Data Analysis → Crosstab (/data-analysis/crosstab). The page opens on Pick a project or site, then choose locations and analytes to generate the crosstab. with an Open Filters button.

  2. Select Open Filters to open the Analysis Filters panel, then set your scope and data in these sections:

    SectionFieldWhat to enter
    ScopeScope bySites / ProjectsUse the Scope by toggle to pick your primary axis (Sites by default), then choose one or more below. The other axis appears under Refine to narrow within the scope — it lists only options that share data, so you can't create an empty combination. Only sites/projects with committed lab results are listed.
    RefineTasks / Site AreasOptional. Narrow to project tasks or site areas.
    DataLab ReportsOptional. Restrict to specific Lab Reports.
    DataLocationsRequired. Pick one or more locations (columns and rows derive from these).
    DataMatricesOptional. Restrict to specific Matrices.
    DataAnalytesRequired. Pick one or more analytes to pivot into columns.
    Date RangeStart Date / End DateOptional. Filters on the sample date.

    Locations and Analytes are required (marked with a *) and start empty — a fresh scope selects nothing, so you choose what to pivot. Pick at least one of each, or use Select all in scope in the Data section header to select all locations and analytes at once.

  3. Apply a screening set to color exceedances. Under Data, open Screening and select one or more sets. Two checkboxes refine the comparison:

    ControlEffect
    Screen all matricesWidens matrix matching so a set's limits apply across matrices.
    Screen non-detect resultsAlso screens non-detects, against the DMP-preferred limit (detection or reporting limit), or a reported EMPC where it applies.
    info

    Only Normal and Field Duplicate samples, plus DMP-summed (Calculated) cells, are screenable. All other sample types — including Split, blanks, and lab QC — are never screened, and lab-QC and tentatively identified compound rows never appear in a crosstab.

  4. Open the Display section to refine the layout with two checkboxes, both checked by default:

    ControlEffect
    Show source rows alongside aggregated duplicatesWhen checked, each synthetic aggregated-duplicate row appears together with the underlying primary and field-duplicate sample rows it was computed from. Clear it to show one reportable row per duplicate cluster.
    Group analyte columns by analysis methodGroups analyte columns under a per-Method band, so an analyte measured by two methods gets its own column per method. Clear it for a flat, analyte-only layout.
  5. Select Generate. The button enables only once you have a scope, at least one Location, and at least one Analyte selected. The panel closes and the grid renders.

Result

The grid shows one row per sample context — grouped by Project, Site, Location, Sample, sample date, Matrix, and depth interval — and one column per analyte, unit, fraction, and reporting basis — a dry- or lipid-weight result gets its own column, labeled Dry Weight or Lipid Weight, rather than blending into the non-dry column. Location, Sample, Date, and Matrix are visible by default; use the Column Chooser toolbar button to also show Project, Site, Sample Type, Start Depth, End Depth, or Depth Unit.

When you select a screening set, a band spans the top of the grid carrying the full program name (Program — Set) in the set's color. Cells that exceed a screening level are colored by their highest exceedance; a cell that has an applicable criterion but couldn't be compared shows a hatch pattern and the tooltip Couldn't be screened (see the screening note above). Any advisory notices — row truncation, non-detect limit fallback, or a DMP-inconsistency notice when the selected projects do not all share one DMP (different DMPs, or some with a DMP and some without) — appear in a collapsed summary above the grid.

Select a cell to open the result-detail panel for that result. A cell may resolve to a single result, multiple results, a DMP summed (Calculated) result, or an aggregated duplicate. A detected result that reports only an EMPC renders its EMPC value rather than a blank cell, and an exceedance an EMPC drives is flagged distinctly from a firm-detect one.

A qualifier shown in a cell is the result's validated qualifier only; an unvalidated result contributes no qualifier, and a non-detect still reads as one from its < limit or ND notation. To see the raw lab qualifier a laboratory reported, use the Data Explorer, which keeps it in a separate column.

Focus the grid

A Hide filters toggle sits just above the grid, on both the Data Analysis crosstab and a lab report's crosstab. Select it to collapse the page title, the filter summary, and any warnings so the grid fills the full height — useful on a smaller screen, where the panels above can leave little room. Select Show filters to bring them back. The grid stays a fixed height and scrolls internally — wide tables scroll horizontally within the grid — so it doesn't shrink or grow as you change filters.

Export the crosstab

  1. Select the Export toolbar button.
  2. Choose Export to XLSX or Export to CSV. The file downloads as Crosstab_yyyyMMdd (CSV adds .csv).

Both exports honor the grid's current view: an active search, column filter, or sort applies to the export exactly as it does on screen. XLSX paints exceedance cells with the screening colors; CSV includes the identity columns, the screening header rows, and the analyte columns.

Troubleshooting

SymptomCauseResolution
Generate stays disabledNo scope, no Location, or no Analyte selectedSelect a Project or Site, at least one Location, and at least one Analyte — the panel names the missing item next to the disabled button, or use Select all in scope.
A project or site you expected isn't in the Scope listThe scope dropdowns list only projects and sites that have committed lab resultsConfirm results have been committed for it; scopes with nothing to pivot are hidden.
No results found for the selected criteria.The filters matched no screenable field resultsWiden the date range, locations, or analytes; confirm results are committed for that scope.
Cells you expected aren't coloredNo screening set applied, or the results aren't Normal/Field DuplicateApply a Screening set; remember blanks and lab QC are never screened.
Non-detects show no exceedanceScreen non-detect results is offCheck Screen non-detect results to compare non-detects against the DMP-preferred limit.
A cell shows a hatch patternAn applicable criterion couldn't be compared for that cellHover for the tooltip and review the screening notice above the grid.
Notice: results truncatedThe result set hit the row capNarrow the filters (fewer locations, analytes, or a shorter date range).
DMP rules skipped, with an inconsistency noticeThe selected projects don't all share one DMP (different DMPs, or some with a DMP and some without)Scope to projects that share one DMP so unit conversion and non-detect rules apply.