PlantLifecycle

Get the Plant Lifecycle report

Returns one row per plant batch (plant group) whose creation date falls in the reported range, summarizing its lifecycle: the batch name, creation date, strain, and the counts of plants started, promoted to vegetative, destroyed, and harvested. Each row also carries the promotion-to-veg date, first and last harvest dates, the durations spent as a batch, from veg to last harvest, and over the total lifecycle (in days), and the names of the harvests the batch produced. Use this to reconcile cultivation throughput and (with the cost permission) per-stage plant costs against what the state traceability system recorded.

Scope of what is included — this report is Metrc-only. A batch appears only when all of the following hold: it sits on an active Metrc license, and that license's facility is one that can track vegetative plants. BioTrack and non-compliance batches are never returned, and neither are batches on licenses whose facility skips the vegetative stage (there plants move straight from immature to flowering, so the veg-based metrics here would be meaningless). The report is not paginated — every matching batch is returned in a single response.

Date range and filters — the datetime filter matches the batch creation (planted) date. When it is omitted, the report defaults to batches created in the last 30 days. An optional strain filter narrows to batches whose Metrc strain name contains the given text (case-insensitive substring).

Reading the values — every cell is returned as it appears in the report's CSV export: date cells are MM/DD/YYYY strings, and count and cost cells are numeric strings (the raw amount with any currency formatting stripped, e.g. "1234.56"), matching the rest of the API where all amounts are strings. A leading-zero numeric value is kept as its display string so significant zeros are not lost. Several fields are null when the batch has not reached the relevant stage: promoted_to_veg_date, days_veg_to_last_harvest, the harvest dates, and harvest_name_s are null until a batch is promoted to veg or harvested. days_as_batch counts from creation to the veg-promotion date, or to today when the batch has not yet been promoted (so it keeps growing for still-un-promoted batches), and is therefore always present.

Cost columns — total_cost_batch_stage, total_cost_veg_to_last_harvest, destroyed_plant_cost, and total_lifecycle_cost require permission to view costs. For a caller without that permission these keys are omitted from every row entirely (not returned as null), and the corresponding column definitions are dropped from meta.columns. When present, each cost can still be null for a batch that has no recorded cost, and total_lifecycle_cost is the sum of the other three (null only when all three are null).

Report-level information (the resolved human-readable date range and the ordered column definitions) is returned under meta.

Required permission: reports_permissions_plant_lifecycle.

get/public/v1/reports/plant-lifecycle

Query parameters

datetimestring

Restricts the report to plant batches whose creation (planted) date falls in this range. The value is a comma-separated ISO8601 range formatted as <start>,<end>, and both bounds are inclusive. Leave either side empty for an open-ended range — ,2026-02-01T00:00:00Z returns every batch created on or before that instant, and 2026-01-01T00:00:00Z, every batch created on or after it. When omitted, the report defaults to batches created in the last 30 days.

strainstring

Restricts the report to batches whose strain name contains this text (case-insensitive substring match against the batch's Metrc strain name). Omit or leave empty to include every strain.

Response

The Plant Lifecycle report

Changes

No recorded changes to this endpoint across all 2 revisions of this API.