EDORA Learn β Pipelines
Equity Review & Disparity Monitoring (Pipeline Analytics)
Pipeline 07A
Transparency note: equity metrics can be distorted by small cell sizes or definitional changes. When rate ratios are based on fewer than 20 cases, the values are pooled or suppressed, and confidence intervals are displayed in source dashboards.
Overview
Disparity monitoring identifies unequal outcomes across demographic or geographic groups at each stage of the youth justice pipeline. It is not only a statistical exercise but also a governance functionβhelping stakeholders assess fairness, consistency, and the impact of policy changes. This page outlines how such analyses are structured and interpreted responsibly.
What We Track
Rate Ratios
- Relative likelihood of a group reaching a stage vs. reference group
- Normalization choice documented:
- Population-based denominator
- Prior-stage denominator (conditional rate)
Comparative Frames
- Cohort definitions (intake, referral, adjudication, release cohorts)
- Trend intervals (monthly/quarterly/annual) and smoothing rules
Control Variables
- Age banding and offense severity normalization
- Prior history controls (referrals, adjudications, placements)
- Geography (urban/rural, site fixed effects)
Visualization & Communication
- Dashboards using:
- Slope charts (entry β outcome)
- Parity bands or index values (reference = 1.00 or 100)
- Interpretive annotations and caveats
Transparency Practices
- Publish methodology docs and reference group choice
- Display confidence intervals or small-n flags; apply suppression rules
- Mark series breaks when coding/thresholds change
Typical Flow
- Define population or cohort for comparison
- Specify denominator: population vs. prior-stage; set reference group
- Compute stage-specific rates by group & reference
- Apply controls (age, severity, prior history, geography) as appropriate
- Calculate disparity ratios or index values
- Show confidence intervals; flag small-n cells for caution/suppression
- Review trend stability and mark series breaks
- Annotate coding or threshold changes; avoid false trend narratives
- Publish findings with narrative context & transparency
- Use parity bands/slope charts; include methods, CIs, and suppression thresholds
Fields
Field | Type | Required | Codeset | Description |
---|---|---|---|---|
pipeline_place_id | uuid | β | β | Unique identifier for this analytics record. |
pipeline_stage_id | enum | β | stages.yml#stage_key(8)
| One of the canonical stages (here: violation_response). |
pipeline_place_key | enum | β | pipeline_places.yml#place_key(45)
| Canonical key for this place (maps to route/slug). |
youth_id | string | β | Rarely used; only if record is filtered to a specific individual (normally null). | |
staff_id | string | β | Analyst or approving staff (optional). | |
occurred_datetime | datetime | β | β | Timestamp the review results were finalized. |
jurisdiction_code | string | β | β | County/parish/circuit or standardized local code. |
legal_case_id | string | β | Not typical for analytics records; included for completeness. | |
source_system | string | β | β | Origin system name (analytics pipeline or BI export). |
source_file | string | β | Batch/file id if exported. | |
extract_run_id | string | β | ETL/analytics run id for lineage. | |
series_break_flag | boolean | β | Comparability break (coding/threshold/tool change). | |
series_break_reason | enum | series_breaks.yml#reason(4)
| Reason for break when flagged. | |
cohort_key | enum | β | cohort_types.yml#cohort(5)
| Intake, referral, adjudication, release, or stage-transit cohort. |
denominator_type_code | enum | β | denominator_types.yml#type(2)
| population_based or prior_stage (conditional). |
analyzed_stage_key | enum | β | stages.yml#stage_key(8)
| Stage being analyzed (here typically violation_response). |
group_dimension_code | enum | β | group_dimensions.yml#dimension(4)
| Dimension being compared (race_ethnicity, gender, geography, rurality). |
group_value_code | string | β | β | Specific group value (e.g., black, hispanic_latino, female, rural, specific county code). |
reference_group_code | string | β | β | Reference group used for parity (e.g., white, male, metro). |
period_start_date | date | β | β | Start of the interval (month/quarter/year start per trend frame). |
period_end_date | date | β | β | End of the interval. |
trend_interval_code | enum | β missing in _index.yml | monthly, quarterly, annual. | |
smoothing_method_code | enum | smoothing_methods.yml#method(5)
| none, rolling_3, rolling_4, loess, other. | |
control_age_band_code | enum | age_bands.yml#bandβ οΈ using age_bands.yml#severity(6)
| Age banding schema used (if controlled). | |
control_offense_severity_code | enum | β missing in _index.yml | Severity scheme used for normalization. | |
control_history_codes | array<string> | history_controls.yml#control(3)
| Prior history controls (referrals, adjudications, placements); semicolon-delimited. | |
geography_control_code | enum | geography_controls.yml#geo(2)
| Site fixed effects or urban_rural normalization. | |
reference_choice_note | string | β | Short note capturing reference-group rationale. | |
ci_method_code | enum | ci_methods.yml#method(5)
| Method used to compute confidence intervals (wald, wilson, exact, bootstrap, other). | |
suppression_policy_code | enum | β missing in _index.yml | Policy for small-n suppression/flagging. | |
small_n_flag | boolean | β | True if the cell is flagged for small-n caution. | |
suppressed_flag | boolean | β | True if the cell is suppressed per policy. | |
rate_numerator | integer | β | Count in stage for the group (for the selected frame). | |
rate_denominator | integer | β | Denominator count (population or prior-stage cohort size). | |
rate_value | number | β | Stage rate for the group (proportion/percentage as raw number). | |
reference_rate_value | number | β | Stage rate for the reference group. | |
rate_ratio_value | number | β | Group rate Γ· reference rate. | |
parity_index_value | number | β | Index scale value (e.g., 1.00 parity = 100 if using 100-based index). | |
parity_index_scale_code | enum | parity_scales.yml#scale(2)
| scale_1x or scale_100x. | |
ci_low | number | β | Lower bound of confidence interval for rate_ratio or index. | |
ci_high | number | β | Upper bound of confidence interval for rate_ratio or index. | |
visualization_frame_code | enum | viz_frames.yml#frame(4)
| slope_chart, parity_band, index_trend, small_multiples. | |
annotation_note_id | string | β | Reference to narrative/annotation stored elsewhere. | |
Download CSVwhat_we_track.csv |
Data & Methods
Disparity metrics rely on standardized denominators and consistent classification fields (race, ethnicity, gender, geography). Cross-stage rate ratios are calculated using the relative rate index (RRI) or comparable parity measures. When definitions or population bases shift, we mark series breaks. Statistical significance is assessed via bootstrapped confidence intervals or Monte Carlo methods for small cells. Suppression and disclosure controls follow Suppression & Small-n. For analytic consistency, see Trend Interpretation & Baseline Selection and Cross-Jurisdiction Comparability.