Class ProgressProjector

java.lang.Object
com.arc_e_tect.gradle.trackerlens.projection.ProgressProjector

public class ProgressProjector extends Object
Extrapolates when a tracker will reach its total item count, from the historical rate at which items have reached its final stage.

The lookback window adapts to how much history is actually available, capped at 90 days, with a 7-day floor below which no projection is produced at all: a fast-moving team can generate a lot of signal quickly, and a low-confidence estimate with a visible disclaimer is more useful than months of silence. Confidence reflects how much of that window was actually available and is meant to drive free-text disclaimer wording in the dashboard - it is never part of the CSS contract.

  • Constructor Details

    • ProgressProjector

      public ProgressProjector()
      Creates a new ProgressProjector.
  • Method Details

    • project

      public Optional<Projection> project(List<LifecycleRecord> records, String finalStage, int totalCount, Instant now)
      Projects when records will collectively reach totalCount items at finalStage.
      Parameters:
      records - the tracker's current records
      finalStage - the stage that marks an item as complete
      totalCount - total number of items the tracker is tracking
      now - the instant to project from
      Returns:
      the projection, or Optional.empty() when fewer than 7 days of lookback history is available, or when the resulting velocity is zero or negative