Skip to main content
Cycle Analysis is where you review how a Field performed across one or more crop cycles, and compare cycles the honest way. It is the retrospective counterpart to the live Fields Workspace: the Workspace shows what is happening now; Cycle Analysis shows how this cycle compares to prior ones. Cycle Analysis runs in one of three modes, chosen automatically based on the Field’s crop and its cycle_model:
Comparison is always like-for-like. The tool refuses to overlay a rice Main Season on a rice Off Season, a Panel B tapping year on a Panel C year, or a Batch A plant crop on a Batch B ratoon crop. These are structurally different regimes; the delta is not agronomic signal. See Crop Cycle Models for the full comparability rules per crop.

Accessing Cycle Analysis

Navigate to Fields, select a Field, and open the Cycle Analysis tab. The mode is preset to match the crop; the picker offers only cycles that are valid to compare with the current one.
Season boundaries are configured per Field under Field Settings > Seasons. Each Season carries a cycle_model, season_type, and season_label (e.g., Main Season 1 . 2026). If a Field has no Seasons defined, Cycle Analysis prompts you to declare one before the tool becomes useful. See Seasons in the Data Model.

Mode 1: Season-to-Season (cyclical crops)

Applies to rice, corn, groundnut, most vegetables. Compares two or more prior Seasons of the same season_type on the same Field, aligned by phenology week (days since planting expressed in weeks).

Why phenology week, not calendar week

Week 8 after planting is booting for rice, always. Week 8 in June and week 8 in December are the same biological moment. Comparing calendar week 24 across years compares different phenology stages and is misleading. Cycle Analysis fixes the X-axis to phenology week so curves align on biology, not on the calendar.

The charts

NDVI time series, phenology-aligned. Two or more curves overlaid, X-axis in phenology weeks (0 to harvest). Growth-stage bands (emergence, tillering, booting, heading, ripening) shaded behind the curves and driven by the crop’s phenology clock in the Risk Model. GDD overlay. Toggle a cumulative Growing Degree Days curve for each season. GDD comes from the nearest weather station, or ERA5 reanalysis interpolated to the Field centroid when no station is linked. Diverging GDD tracks explain diverging NDVI curves (a warmer season pushes phenology faster). Rainfall overlay. Daily precipitation as a bar chart beneath NDVI, one row per compared season. Rainfall spikes coinciding with NDVI drops usually indicate waterlogging or disease pressure; prolonged dry stretches before NDVI decline point to drought.

How to read it

When you finish an Off Season cycle, compare against the previous Off Season, not the Main Season you just harvested. The Off vs Main delta is structural (15-25 percent lower Off yield is normal in Peninsular Malaysia). Off-to-Off is the read that tells you if the Field is improving.

Mode 2: Production Year (perennial crops)

Applies to oil palm, rubber, coconut, cocoa. Compares Production Years on the same Field, filtered by Tree Age Cohort and (for rubber) Tapping Panel and Tapping Cycle.

Why Tree Age Cohort matters

Perennial yield depends heavily on tree age. Oil palm yields ~15 t/ha/yr at year 5, ~28 t/ha/yr at year 10, ~20 t/ha/yr at year 22. Comparing Production Year 2025 against Production Year 2020 without accounting for age tells you “yield went up” when the trees simply matured. The honest comparison is same age, different planting year: a 2018-planted block at year 7 versus a 2019-planted block at year 7.

The charts

FFB (oil palm) or DRC (rubber) monthly yield. X-axis is calendar month across the Production Year; Y-axis is t/ha/month FFB (oil palm) or kg/ha/month dry rubber (rubber). One line per compared Production Year, filtered to matching Tree Age Cohort. Flowering cohort tracking (oil palm). Bunches from one flowering event mature together and are harvested ~5 weeks later. The chart shows the count of active flowering cohorts across the Production Year and their expected harvest weeks; useful for labor planning. Tapping response (rubber). Yield curve of the currently active Panel (A/B/C/D) over its tapping life, with markers for wintering periods and stimulation rounds. Compares to the same Panel age from prior Production Years. NDVI stability index. Perennial NDVI does not go through the emergence-to-harvest arc; it should stay in a narrow healthy band. Cycle Analysis reports monthly NDVI variance; a widening variance is often the earliest signal of Ganoderma (oil palm) or panel dryness (rubber).
Perennials do not have a “planting date” in the annual sense once mature; the platform uses the block’s original planting date to compute Tree Age. The Production Year planting_date and harvest_date fields on the Season object mark the year-boundary, not a biological cycle.

Mode 3: Batch-to-Batch (rolling continuous crops)

Applies to pineapple, banana, papaya, nursery operations. Compares Planting Batches at the same age from planting, not the same calendar date.

Why same age, not same date

A pineapple field always has multiple batches at different ages coexisting. Comparing them on the same calendar day compares a batch at month 6 (vegetative growth) to a batch at month 14 (fruit development). The comparison unit for rolling crops is age from planting: Batch 2025-A at month 12 versus Batch 2025-B at month 12.

The charts

Batch NDVI curve, age-aligned. X-axis is months since planting; Y-axis NDVI. One line per Batch, with phase markers (vegetative, forcing, fruit development, harvest window). Forcing-to-harvest window. For each Batch, the interval from Forcing event to harvest, overlaid to see whether the plant crop and ratoon crop windows are shortening or lengthening across batches. Batch cohort yield. When yield data is uploaded per Batch, plots yield (t/ha) against age at forcing, so you can see whether earlier or later forcing has produced better results.

Yield correlation (all modes)

If a yield map is uploaded for a completed cycle, Cycle Analysis correlates spatially-matched NDVI values (from the appropriate peak-vegetative window per crop) against yield. Upload yield maps under Field Settings > Data Uploads > Yield Map (shapefile or CSV from your yield monitor, weighbridge log, or FFB tally sheet).

Exporting cycle reports

Click Export > PDF Summary to generate a formatted report containing:
  • Field name, crop type, cycle_model, and Season labels
  • Primary index time-series chart (mode-appropriate axis and overlays)
  • Cycle comparison chart (if comparison cycles were selected)
  • Yield correlation scatter plot (if yield data is present)
  • Key statistics per mode: peak NDVI and date, total GDD, seasonal rainfall (cyclical); monthly FFB or DRC totals (perennial); age-at-milestone (rolling)
  • Reproducibility footer with data-through timestamps and rule-card versions, same format as the Aggregation Model explain-view.
Run Cycle Analysis in the last two weeks before harvest for cyclical crops, at the end of each calendar quarter for perennials, and at each Batch harvest for rolling continuous. Feeding the results back into the Risk Model farm_history layer improves next-cycle forecasts.
  • Crop Cycle Models - the vocabulary and comparability rules per crop.
  • Field Data Model - the Season object with cycle_model, season_type, season_label.
  • Fields Workspace - the live-cycle counterpart. The Workspace Compare tab uses the same three modes.
  • Risk Model - phenology clock and farm_history yield-impact layer.
  • Verification - one Season = one bundle for cyclical crops; monthly bundles for perennial.
  • Aggregation Model - Season Type slicing in Estate, Regional, and National rollups.