DiDActo causal evidence bundle

Run run_29478d8d9c2b4059b02a | plan eb1d28fda7743a349f3bb5b831a97422189ad15320d4f7ca4b361c3430c294a5 | result fe08fa1b7f118b2722ab3b9c19402f2e4c935daf4453c3874dd92429ffa3b572

Evidence decision

QUALIFIED

Report disposition: EXPLORATORY. QUALIFIED CLAIM. Exploratory report. Evidence status is QUALIFIED. Exact-target diagnosis is not_assessed.

Analysis profile: QUICK. Quick profile: intended for rapid exploratory screening. Successful computation does not make this profile confirmatory.

Concordance evidence tier: NOT_ASSESSED. The persisted descriptive concordance and confirmatory agreement tiers are not assessed. The report does not reconstruct either tier from lower-level evidence.

Author disposition: exploratory. Render provenance: source=persisted results; renderer release=0.3.0rc18; renderer source revision=not recorded; estimator calls during rendering=0.

Selected primary estimate

twfe: -88.5285 (95% CI [-92.5783, -84.4786]; df=99).

Average over supported treated unit-periods; cohorts observed for more post-treatment periods receive more total weight.

How to read this result

two-way fixed effects diagnostic estimates the average treatment effect among treated units at -88.5 outcome units (95% confidence interval -92.6 to -84.5). 100 units over 2019-01-2022-12 (4,800 rows). 50 treated units in 1 cohort (2021-01). Each comparison uses never-adopting units against the last period before the intervention, summarized over the supported cohort-by-period comparisons residualized treatment variance. Cross-method comparison: no second estimate of the same target was available to compare, so nothing here corroborates the estimate. What you can say: Evidence status is passed with stated limits.

Executive estimator evidence

One predeclared representative effect per estimator role is shown first. The full 48-row coordinate table remains available below and in the content-addressed JSON artifact.

EstimatorRoleRepresentative effectTarget interpretationInference reportingEstimateConfidence intervalRecorded coordinates
twfeheadlineattEffect target; claim status qualifiedavailable-88.528595% CI [-92.5783, -84.4786]1
event_studydiagnosticevent_-24Diagnostic execution; no claim cardavailable5.540295% CI [-16.625, 27.7054]47

Effect chart

Selected-primary effect estimatesConfidence intervals are drawn only for inferential coordinates with recorded uncertainty. The horizontal line marks zero; event-study charts also identify the reference period. Coordinate status: 1 inferential, 0 point-only, 0 normalized reference, and 0 unsupported.Selected-primary effect estimatesPoints with 95% CIInferentialPoint-onlyNormalized referenceUnsupported-100-75-50-25025Zero effectEvent / effectEstimated effectatt
Confidence intervals are drawn only for inferential coordinates with recorded uncertainty. The horizontal line marks zero; event-study charts also identify the reference period. Coordinate status: 1 inferential, 0 point-only, 0 normalized reference, and 0 unsupported.

Interpretive caveats

Estimator target alignment and disagreement

Diagnosis statusnot_assessed
Confirmatory gateFalse
Concordance evidence tierNot assessed
Concordance interpretationThe persisted descriptive concordance and confirmatory agreement tiers are not assessed. The report does not reconstruct either tier from lower-level evidence.
Persisted directional concordancestatus=not_assessed; estimate count=0; same-sign/zero classification only
Persisted confirmatory agreementstatus=not_assessed; independent estimator families=0
Predeclared equivalence margin10 in declared outcome units.
Predeclared estimator-concordance benchmarkNot declared. Estimator-concordance benchmark only: it compares whether estimator point estimates fall on the same or opposite sides. It is not evidence of policy-action certainty and is not a confidence-interval test against the benchmark.
InterpretationFewer than two finite estimates share the headline causal target. Target or specification differences establish non-comparability but do not explain the numerical gap without a quantified bridge or decomposition.
Next actionObtain a second exact-target estimate or document why none is available.

Exact-target estimates

EstimatorRoleCertificateConfirmatory eligibleEffectCausal targetIdentifying specificationInterpretation
None recorded.

Complementary estimates

EstimatorRoleCertificateConfirmatory eligibleEffectCausal targetIdentifying specificationInterpretation
event_studydiagnosticnot_assessedno-82.6982 [-98.8842, -66.5123]outcome=median_rent; scale=additive; family=average_post_event_path; aggregation=event_time_path; population=unavailable; support=0 cell(s); exact targets=0 row(s) (no named exact target); window=-24 to 23; target_hash=18cff2514ca79c197d4486c202ddae8c02c338be74816550e91454ad87da308a; target_cells_hash=not recordedbaseline=event_-1; control=unspecified; assignment_unit=zip_id; anticipation=0; weighting=unspecified; regularization=none; full_hash=e034a85d0e1aecc3dcc0ebbca2a1ff8c8ce3c449e5cd34e72b23146505c8bce9This result supplies a predeclared diagnostic, not an exact-target effect check.

Incomparable estimates

EstimatorRoleCertificateConfirmatory eligibleEffectCausal targetIdentifying specificationInterpretation
twfeheadlinepassedyes-88.5285 [-92.5783, -84.4786]outcome=median_rent; scale=additive; family=overall; aggregation=weighted_post_average; population=unavailable; support=0 cell(s); exact targets=0 row(s) (no named exact target); window=-24 to 23; target_hash=8c71a39df25f0701cce6af184853d2790f38786f0ccf38a803301aa87031bd2c; target_cells_hash=not recordedbaseline=last_pre_period; control=residualized_all_observations; assignment_unit=zip_id; anticipation=0; weighting=residualized_treatment_variance; regularization=none; full_hash=1e19aedb784b2df96dc2fc41d83495e1c6d33c51a353bf2c3e2fd2d0ae16a40cThe procedure did not supply complete realized support, weights, and treated-membership provenance for a like-for-like comparison.

Degenerate procedures

EstimatorRoleCertificateConfirmatory eligibleEffectCausal targetIdentifying specificationInterpretation
None recorded.

Failed or unavailable procedures

EstimatorRoleCertificateConfirmatory eligibleEffectCausal targetIdentifying specificationInterpretation
None recorded.

Attributed explanations

CauseEvidence levelInterpretation
target_provenance_incompletehypothesisRealized support, aggregation, or treated-membership provenance is incomplete, so the software cannot establish a like-for-like target or attribute the numerical gap.

Study contract

Causal questionIn the shared rent-control sample, how did adoption affect monthly median rent in treated ZIP areas?
Outcomemedian_rent
Outcome scaleadditive
Outcome scale factor1
Outcome input encodingnative_outcome_units
TreatmentAbsorbing rent-control adoption at January 2021, as encoded by treated_now.
Assignment unitzip_id
Target populationobserved treated units
Contrasttreated versus eligible untreated controls
EstimandAverage over supported treated unit-periods; cohorts observed for more post-treatment periods receive more total weight.
Exact target-cell count0
Exact target namesNone recorded.
Exact target rolesatt: effect
Exact target-cell hashnot recorded
Executed-variant statusnot_applicable

Exact target cells

No exact target-cell rows were declared.

Variant scope and exclusions

Variant scopeThe declared target does not use exact cells or positive anticipation.
Nonmatching robustnessNo nonmatching executed robustness was recorded.
Plan exclusionsborusyak_jaravel_spiess: unpromoted_procedure; callaway_santanna: not_selected_by_pre_result_policy; changes_in_changes: not_selected_by_pre_result_policy; counterfactual_forecast: estimand_mismatch; doubly_robust_did: not_selected_by_pre_result_policy; and 10 more
HonestDiD sensitivitypresent_with_persisted_scope
Sensitivity source fitnot recorded
Sensitivity source relation hashnot recorded

Assumptions and waivers

Assignment rationaleThe benchmark documentation defines a simulated common-adoption design with clean parallel trends; these assumptions describe the sample generator, not a real policy.
Parallel trends declarationunconditional
Control eligibility caveatObserved control eligibility does not establish parallel trends or no anticipation.
Interferencenot_expected
Treatment versionssingle_version
Anticipation0 period(s) declared; not empirically established
Clean baseline ruleFor anticipation L, each baseline must be strictly earlier than cohort - L; a target cannot lie in the cohort's anticipation window, and not-yet-treated controls must remain untreated and outside their own anticipation window through both compared periods.
Unresolved assumptionsNone recorded.
WaiversNone recorded.

Support, sample, and weights

Support cohorts2021-01
Event window-24 to 23
Baseline / controlslast_pre_period / never_treated
Unsupported cellsfail_or_record_trim
Support auditpassed; 0 realized trim(s), 0 planned trim(s)
Estimand consequenceNo support trimming was recorded; estimator-specific support still defines the target.
Sample4800 rows; 100 units; outcome-blind identified and comparison support after always/entry-treated and unsupported-calendar exclusions; estimator-specific complete cases recorded at fit
Missingness / balanceno silent row drops; balance=estimator_specific
Weightssupported; source=none; meaning=none; normalization=none; qualification=no qualification recorded

Inference configuration

Covarianceunit_clustered
Clusteringunit
Confidence level95% CI
Bootstrapnone
Repetitions99
Solverdefault
Seed / tolerance4111 / 1e-08

Full coordinate results

Open the complete 48-row estimator-coordinate table
EstimatorRoleEffectTarget interpretationInference reportingEstimateSEConfidence intervaldfp valueCertificateConfirmatory eligible
twfeheadlineattEffect target; claim status qualifiedavailable-88.52852.0410295% CI [-92.5783, -84.4786]993.23e-66passedyes
event_studydiagnosticevent_-24Diagnostic execution; no claim cardavailable5.540211.170795% CI [-16.625, 27.7054]990.621not_assessedno
event_studydiagnosticevent_-23Diagnostic execution; no claim cardavailable-8.008210.716195% CI [-29.2712, 13.2548]990.457not_assessedno
event_studydiagnosticevent_-22Diagnostic execution; no claim cardavailable6.05910.002295% CI [-13.7875, 25.9055]990.546not_assessedno
event_studydiagnosticevent_-21Diagnostic execution; no claim cardavailable5.89789.3689895% CI [-12.6923, 24.4879]990.53not_assessedno
event_studydiagnosticevent_-20Diagnostic execution; no claim cardavailable16.226411.477895% CI [-6.54807, 39.0009]990.161not_assessedno
event_studydiagnosticevent_-19Diagnostic execution; no claim cardavailable8.57610.659695% CI [-12.575, 29.727]990.423not_assessedno
event_studydiagnosticevent_-18Diagnostic execution; no claim cardavailable2.817210.525695% CI [-18.068, 23.7024]990.79not_assessedno
event_studydiagnosticevent_-17Diagnostic execution; no claim cardavailable6.42189.7468395% CI [-12.918, 25.7616]990.512not_assessedno
event_studydiagnosticevent_-16Diagnostic execution; no claim cardavailable3.745411.257195% CI [-18.5911, 26.0819]990.74not_assessedno
event_studydiagnosticevent_-15Diagnostic execution; no claim cardavailable8.473610.30795% CI [-11.9778, 28.925]990.413not_assessedno
event_studydiagnosticevent_-14Diagnostic execution; no claim cardavailable11.419610.913895% CI [-10.2358, 33.075]990.298not_assessedno
event_studydiagnosticevent_-13Diagnostic execution; no claim cardavailable-4.2059.8998295% CI [-23.8484, 15.4384]990.672not_assessedno
event_studydiagnosticevent_-12Diagnostic execution; no claim cardavailable-7.762810.70995% CI [-29.0118, 13.4862]990.47not_assessedno
event_studydiagnosticevent_-11Diagnostic execution; no claim cardavailable-2.29510.342895% CI [-22.8174, 18.2274]990.825not_assessedno
event_studydiagnosticevent_-10Diagnostic execution; no claim cardavailable4.511610.772895% CI [-16.8639, 25.8871]990.676not_assessedno
event_studydiagnosticevent_-9Diagnostic execution; no claim cardavailable15.15769.9640195% CI [-4.61316, 34.9284]990.131not_assessedno
event_studydiagnosticevent_-8Diagnostic execution; no claim cardavailable14.77410.536195% CI [-6.13183, 35.6798]990.164not_assessedno
event_studydiagnosticevent_-7Diagnostic execution; no claim cardavailable6.402610.859595% CI [-15.1451, 27.9503]990.557not_assessedno
event_studydiagnosticevent_-6Diagnostic execution; no claim cardavailable8.949410.595995% CI [-12.0752, 29.974]990.4not_assessedno
event_studydiagnosticevent_-5Diagnostic execution; no claim cardavailable22.522810.982895% CI [0.73055, 44.315]990.0429not_assessedno
event_studydiagnosticevent_-4Diagnostic execution; no claim cardavailable-1.61211.697495% CI [-24.8223, 21.5983]990.891not_assessedno
event_studydiagnosticevent_-3Diagnostic execution; no claim cardavailable2.872210.465695% CI [-17.8939, 23.6383]990.784not_assessedno
event_studydiagnosticevent_-2Diagnostic execution; no claim cardavailable13.441410.71895% CI [-7.82538, 34.7082]990.213not_assessedno
event_studydiagnosticevent_+0Diagnostic execution; no claim cardavailable-98.005811.191495% CI [-120.212, -75.7996]995.58e-14not_assessedno
event_studydiagnosticevent_+1Diagnostic execution; no claim cardavailable-89.459210.467695% CI [-110.229, -68.6892]991.6e-13not_assessedno
event_studydiagnosticevent_+2Diagnostic execution; no claim cardavailable-83.69449.7614295% CI [-103.063, -64.3256]991.39e-13not_assessedno
event_studydiagnosticevent_+3Diagnostic execution; no claim cardavailable-85.530811.18995% CI [-107.732, -63.3294]991.38e-11not_assessedno
event_studydiagnosticevent_+4Diagnostic execution; no claim cardavailable-80.56829.9292895% CI [-100.27, -60.8664]991.37e-12not_assessedno
event_studydiagnosticevent_+5Diagnostic execution; no claim cardavailable-67.824810.254495% CI [-88.1718, -47.4778]991.92e-09not_assessedno
event_studydiagnosticevent_+6Diagnostic execution; no claim cardavailable-91.394810.649695% CI [-112.526, -70.2637]991.34e-13not_assessedno
event_studydiagnosticevent_+7Diagnostic execution; no claim cardavailable-84.594810.778795% CI [-105.982, -63.2076]995.06e-12not_assessedno
event_studydiagnosticevent_+8Diagnostic execution; no claim cardavailable-85.11610.568995% CI [-106.087, -64.1451]991.84e-12not_assessedno
event_studydiagnosticevent_+9Diagnostic execution; no claim cardavailable-86.70511.394595% CI [-109.314, -64.0959]991.63e-11not_assessedno
event_studydiagnosticevent_+10Diagnostic execution; no claim cardavailable-75.79829.8188595% CI [-95.2809, -56.3155]999.52e-12not_assessedno
event_studydiagnosticevent_+11Diagnostic execution; no claim cardavailable-80.294810.882195% CI [-101.887, -58.7023]995.01e-11not_assessedno
event_studydiagnosticevent_+12Diagnostic execution; no claim cardavailable-89.403411.546195% CI [-112.313, -66.4934]998.48e-12not_assessedno
event_studydiagnosticevent_+13Diagnostic execution; no claim cardavailable-88.332611.56795% CI [-111.284, -65.3811]991.43e-11not_assessedno
event_studydiagnosticevent_+14Diagnostic execution; no claim cardavailable-68.29412.013395% CI [-92.1311, -44.4569]991.32e-07not_assessedno
event_studydiagnosticevent_+15Diagnostic execution; no claim cardavailable-76.072410.531995% CI [-96.97, -55.1748]991.06e-10not_assessedno
event_studydiagnosticevent_+16Diagnostic execution; no claim cardavailable-78.862811.089995% CI [-100.868, -56.858]991.82e-10not_assessedno
event_studydiagnosticevent_+17Diagnostic execution; no claim cardavailable-74.353810.232495% CI [-94.657, -54.0506]998.62e-11not_assessedno
event_studydiagnosticevent_+18Diagnostic execution; no claim cardavailable-81.222810.886395% CI [-102.824, -59.622]993.36e-11not_assessedno
event_studydiagnosticevent_+19Diagnostic execution; no claim cardavailable-79.301611.064795% CI [-101.256, -57.3469]991.39e-10not_assessedno
event_studydiagnosticevent_+20Diagnostic execution; no claim cardavailable-78.195210.146395% CI [-98.3276, -58.0628]991.01e-11not_assessedno
event_studydiagnosticevent_+21Diagnostic execution; no claim cardavailable-87.307610.3795% CI [-107.884, -66.7313]993.01e-13not_assessedno
event_studydiagnosticevent_+22Diagnostic execution; no claim cardavailable-85.821810.636595% CI [-106.927, -64.7166]991.71e-12not_assessedno
event_studydiagnosticevent_+23Diagnostic execution; no claim cardavailable-88.602810.649495% CI [-109.733, -67.4721]994.93e-13not_assessedno

Selected-primary procedure certificate

The persisted legacy role is headline. Exact executed-variant parity gate: passed.

ComponentStateEvidence
bandpassedNo simultaneous band was certified for this result.
covariancepassedThe estimator reports identified support for nominal inference.
intervalpassedConfidence intervals use the declared inference level.
pointpassedPoint estimates passed the typed result contract.
provenancepassedExecution provenance is complete and matches the confirmed procedure contract.
selectionpassedEstimator selection was fixed by the confirmed outcome-blind plan.
solver_integritypassedThe executed estimator path does not require iterative-solver convergence.
standard_errorpassedThe estimator reports identified support for nominal inference.
supportpassedRealized support is complete for the reported estimand.
weightpassedWeight semantics are supported for this plan.

Diagnostics

Computation records whether a diagnostic produced valid inference. Falsification records the substantive conclusion separately; an adverse completed pretrend test or placebo is not a computation failure.

CheckComputationFalsification conclusionEvidence gateInterpretationRecorded details
fit_free_panel_validationpassednot applicableopen0 errors; 0 warnings
pretrend_joint_testcompleted (assessed)not rejectedopenThe joint test does not reject; this is not proof of parallel trends.statistic=1.6763; p=0.147325; reference=F(5, 99)
staggered_heterogeneity_warningnot_assessednot applicableopenExactly one completed diagnostic-only TWFE result is required for this warning.dynamic conclusion=not recorded; 0 path(s), 0 constancy test(s); 0 inferential and 0 point-only post-period(s)
support_auditpassednot applicableopen0 cell(s) trimmed; controls=never_treated; event window=-24 to 23
time_placeboassessednot applicableopencomputation_status=assessed; evidence_gate=False; falsification_outcome=not_rejected; semantic_result=not_rejected; structural_failure=False

Excluded methods

EstimatorReason codeReason
borusyak_jaravel_spiessunpromoted_procedureborusyak_jaravel_spiess is not promoted by capability policy: Bounded external point evidence passes, but production leave-out covariance, interval, support, backend, and coverage gates remain uncertified.
callaway_santannanot_selected_by_pre_result_policyThe pre-result planning policy did not select this governed procedure for the declared design, estimand, support, inference, and role. No candidate ranking was performed for this exclusion.
changes_in_changesnot_selected_by_pre_result_policyThe pre-result planning policy did not select this governed procedure for the declared design, estimand, support, inference, and role. No candidate ranking was performed for this exclusion.
counterfactual_forecastestimand_mismatchThis procedure targets a time-series intervention, not the declared panel effect.
doubly_robust_didnot_selected_by_pre_result_policyThe pre-result planning policy did not select this governed procedure for the declared design, estimand, support, inference, and role. No candidate ranking was performed for this exclusion.
fused_etwfeunpromoted_procedureWithdrawn from governed use: the cran_bridge profile inherits CRAN fetwfe's outcome-scale sensitivity, so its ATT moves with the outcome's units. Parity stays certified; use post_ols.
gardner_did2snot_selected_by_pre_result_policyThe pre-result planning policy did not select this governed procedure for the declared design, estimand, support, inference, and role. No candidate ranking was performed for this exclusion.
goodman_baconnot_selected_by_pre_result_policyThe pre-result planning policy did not select this governed procedure for the declared design, estimand, support, inference, and role. No candidate ranking was performed for this exclusion.
interrupted_time_seriesestimand_mismatchThis procedure targets a time-series intervention, not the declared panel effect.
ipw_didnot_selected_by_pre_result_policyThe pre-result planning policy did not select this governed procedure for the declared design, estimand, support, inference, and role. No candidate ranking was performed for this exclusion.
staggered_gmmnot_selected_by_pre_result_policyThe pre-result planning policy did not select this governed procedure for the declared design, estimand, support, inference, and role. No candidate ranking was performed for this exclusion.
sun_abrahamunpromoted_proceduresun_abraham is not promoted by capability policy: external fixest evidence is point-only and currently certifies event-time estimates only; covariance, standard errors, intervals, support, and pretrend inference have not completed parity.
synthetic_controlnot_selected_by_pre_result_policyThe pre-result planning policy did not select this governed procedure for the declared design, estimand, support, inference, and role. No candidate ranking was performed for this exclusion.
synthetic_didnot_selected_by_pre_result_policyThe pre-result planning policy did not select this governed procedure for the declared design, estimand, support, inference, and role. No candidate ranking was performed for this exclusion.
wooldridge_etwfenot_selected_by_pre_result_policyThe pre-result planning policy did not select this governed procedure for the declared design, estimand, support, inference, and role. No candidate ranking was performed for this exclusion.

Model-selection trace

The first 12 outcome-blind decisions are shown here; the complete 7-entry trace is preserved below and in JSON.

  1. Common adoption without covariates selects the conventional mean-DiD target.
  2. Synthetic-DiD robustness was excluded before fitting because placebo inference requires at least two treated-size-preserving untreated groups while leaving donors for each fit (treated=50, donors=50, groups=1).
  3. Primary procedure selection used the outcome-blind governed policy; the legacy `headline` field records that selected primary procedure.
  4. Never-treated control eligibility does not establish identification. Each treated cohort requires the declared unconditional parallel-trends restriction relative to never-treated units, together with the declared anticipation restriction.
  5. Analysis profile 'quick' binds 99 inference repetition(s) and sensitivity policy 'optional_declared'.
  6. Observed treatment support: 50 identified adopter(s), 0 always/entry-treated exclusion(s), 0 future/reference-treated control(s); supported calendar end 2022-12.
  7. Maximum attainable evidence grade before fitting: verified.
Open the complete model-selection trace
  1. Common adoption without covariates selects the conventional mean-DiD target.
  2. Synthetic-DiD robustness was excluded before fitting because placebo inference requires at least two treated-size-preserving untreated groups while leaving donors for each fit (treated=50, donors=50, groups=1).
  3. Primary procedure selection used the outcome-blind governed policy; the legacy `headline` field records that selected primary procedure.
  4. Never-treated control eligibility does not establish identification. Each treated cohort requires the declared unconditional parallel-trends restriction relative to never-treated units, together with the declared anticipation restriction.
  5. Analysis profile 'quick' binds 99 inference repetition(s) and sensitivity policy 'optional_declared'.
  6. Observed treatment support: 50 identified adopter(s), 0 always/entry-treated exclusion(s), 0 future/reference-treated control(s); supported calendar end 2022-12.
  7. Maximum attainable evidence grade before fitting: verified.

Repair log

CodeActionScientific impactAutomatic
No automatic repairs were recorded.

Formal sensitivity

RestrictionMethodStatusTargetBreakdown bracketParityError
unknownhonest_didskippednot availablenot availablenot availableFormal sensitivity was requested, but the plan predeclared no formal-sensitivity procedure for a 'common_adoption' design with a 'overall' estimand. Nothing was substituted.

honest_did: source=not available; baseline=not available; control=not available; conditioning=not recorded; support=not recorded; trimming=none; source relation hash=not available; identifying assumptions empirically tested=not available; parity=not available.

Integrity and provenance

Run IDrun_29478d8d9c2b4059b02a
Plan hasheb1d28fda7743a349f3bb5b831a97422189ad15320d4f7ca4b361c3430c294a5
Result hashfe08fa1b7f118b2722ab3b9c19402f2e4c935daf4453c3874dd92429ffa3b572
Data fingerprint0b580e9907fa0a755f5f8f5841a144d974157492b0e508d4d9577bee3e9eee67
Prepared fingerprint058b5f8e7b9c77e70b77ee8eee07cd94f85aa93825f75eed67e69fcbae594314
Snapshotds_42d8e3ea604dad6e916d

Analysis engine provenance

Implementationcausal-didacto
Release version0.3.0rc18
Backendnumpy; threads=1; deterministic=True
Runtimepython=3.12.11; numpy=2.4.6; scipy=1.18.0; pandas=2.3.3; numba=0.66.0
Source revisionNot recorded; treat this as development provenance.

Renderer/runtime provenance

Implementationcausal-didacto evidence renderer
Renderer release version0.3.0rc18 (source=installed_distribution)
Renderer source revisionnot recorded (source=not_recorded)
Immutable release environmentnot complete; development or non-immutable render runtime