Reports And Recommendations¶
Analyst-facing public-descent reports.
- class updatesupport.report.PublicFiberDiagnostic(public_value, public_mass, hidden_cells, fiber_range, contribution, min_state, min_value, max_state, max_value, decomposition_available=True)[source]¶
Bases:
objectPublic-fiber contribution or point-range diagnostic.
- Parameters:
- class updatesupport.report.WitnessCellShift(state, public_value, state_label, public_label, target_value, lower_mass, upper_mass, mass_shift, abs_mass_shift, lower_contribution, upper_contribution, contribution_shift, abs_contribution_shift)[source]¶
Bases:
objectOne hidden-cell difference between lower and upper endpoint witnesses.
- Parameters:
state (Hashable)
public_value (Hashable)
state_label (str)
public_label (str)
target_value (float)
lower_mass (float)
upper_mass (float)
mass_shift (float)
abs_mass_shift (float)
lower_contribution (float | None)
upper_contribution (float | None)
contribution_shift (float | None)
abs_contribution_shift (float | None)
- class updatesupport.report.WitnessFiberShift(public_value, public_label, hidden_cells, lower_public_mass, upper_public_mass, public_mass_difference, total_abs_mass_shift, lower_contribution, upper_contribution, contribution_shift)[source]¶
Bases:
objectPublic-fiber witness check and within-fiber movement summary.
- Parameters:
- class updatesupport.report.WitnessReport(grouped, interval, observed_value, cells, fibers, title='Adversarial Witness Report', top=20)[source]¶
Bases:
ReportArtifactMixinAdversarial lower-vs-upper hidden-composition witness report.
- Parameters:
grouped (GroupedProblem)
interval (TransportResult)
observed_value (float)
cells (tuple[WitnessCellShift, ...])
fibers (tuple[WitnessFiberShift, ...])
title (str)
top (int)
- grouped: GroupedProblem¶
- interval: TransportResult¶
- cells: tuple[WitnessCellShift, ...]¶
- fibers: tuple[WitnessFiberShift, ...]¶
- class updatesupport.report.RefinementCandidate(column, before_ambiguity, after_ambiguity, reduction, reduction_percent, public_cells, before_ambiguity_bound_type='exact', after_ambiguity_bound_type='exact', screening_backend=None, screening_status=None, screening_certified=False, screening_exact_solve_run=False, screening_exact_solve_avoided=False, screening_conservative_ambiguity=None, screening_exact_ambiguity=None)[source]¶
Bases:
objectOne-column public refinement ranked by ambiguity reduction.
- Parameters:
column (str)
before_ambiguity (float)
after_ambiguity (float)
reduction (float)
reduction_percent (float)
public_cells (int)
before_ambiguity_bound_type (str)
after_ambiguity_bound_type (str)
screening_backend (str | None)
screening_status (str | None)
screening_certified (bool)
screening_exact_solve_run (bool)
screening_exact_solve_avoided (bool)
screening_conservative_ambiguity (float | None)
screening_exact_ambiguity (float | None)
- class updatesupport.report.InteractionRefinementCandidate(columns, before_ambiguity, after_ambiguity, reduction, reduction_percent, public_cells, best_single_column=None, best_single_reduction=0.0, single_reduction_sum=0.0)[source]¶
Bases:
objectMulti-column public refinement ranked by ambiguity reduction and gain.
- Parameters:
- class updatesupport.report.InteractionRefinementReport(candidates, singletons, title, public_columns, hidden_columns, candidate_refinements, target, q_name, q_description, baseline_ambiguity, max_order, evaluated_sets, truncated=False, max_evaluations=None, row_count=None)[source]¶
Bases:
ReportArtifactMixinInteraction-aware refinement search over small column sets.
- Parameters:
candidates (tuple[InteractionRefinementCandidate, ...])
singletons (tuple[InteractionRefinementCandidate, ...])
title (str)
target (str)
q_name (str)
q_description (str)
baseline_ambiguity (float)
max_order (int)
evaluated_sets (int)
truncated (bool)
max_evaluations (int | None)
row_count (int | None)
- candidates: tuple[InteractionRefinementCandidate, ...]¶
- singletons: tuple[InteractionRefinementCandidate, ...]¶
- property best: InteractionRefinementCandidate | None¶
- property best_interaction: InteractionRefinementCandidate | None¶
- class updatesupport.report.RefinementCoalitionEvaluation(columns, ambiguity, reduction, reduction_percent, public_cells)[source]¶
Bases:
objectAmbiguity result for one candidate refinement coalition.
- Parameters:
- class updatesupport.report.RefinementAttribution(column, shapley_value, baseline_ambiguity, full_reduction, singleton_reduction, singleton_after_ambiguity, marginal_min, marginal_max, marginal_mean, evaluated_marginals)[source]¶
Bases:
objectShapley-style ambiguity-reduction attribution for one refinement column.
- Parameters:
- class updatesupport.report.RefinementAttributionReport(attributions, coalitions, title, public_columns, hidden_columns, candidate_refinements, target, q_name, q_description, baseline_ambiguity, full_ambiguity, full_reduction, method, exact, max_exact_columns, n_permutations=None, seed=None, evaluated_sets=0, row_count=None)[source]¶
Bases:
ReportArtifactMixinShapley-style attribution of ambiguity reduction across refinements.
- Parameters:
attributions (tuple[RefinementAttribution, ...])
coalitions (tuple[RefinementCoalitionEvaluation, ...])
title (str)
target (str)
q_name (str)
q_description (str)
baseline_ambiguity (float)
full_ambiguity (float)
full_reduction (float)
method (str)
exact (bool)
max_exact_columns (int)
n_permutations (int | None)
seed (int | None)
evaluated_sets (int)
row_count (int | None)
- attributions: tuple[RefinementAttribution, ...]¶
- coalitions: tuple[RefinementCoalitionEvaluation, ...]¶
- property top_attribution: RefinementAttribution | None¶
- class updatesupport.report.RefinementSensitivityCandidate(column, evaluated_scenarios, mean_before_ambiguity, mean_after_ambiguity, mean_reduction, min_reduction, max_reduction, mean_reduction_percent, min_reduction_percent, max_reduction_percent, positive_reduction_scenarios, best_rank, mean_rank, worst_rank, top_rank_count, min_public_cells, max_public_cells)[source]¶
Bases:
objectOne refinement candidate aggregated over a sensitivity grid.
- Parameters:
column (str)
evaluated_scenarios (int)
mean_before_ambiguity (float)
mean_after_ambiguity (float)
mean_reduction (float)
min_reduction (float)
max_reduction (float)
mean_reduction_percent (float)
min_reduction_percent (float)
max_reduction_percent (float)
positive_reduction_scenarios (int)
best_rank (int)
mean_rank (float)
worst_rank (int)
top_rank_count (int)
min_public_cells (int)
max_public_cells (int)
- class updatesupport.report.RefinementSensitivityRow(scenario, column, rank, q_name, q_description, min_cell_weight, hidden_columns, before_ambiguity, after_ambiguity, reduction, reduction_percent, public_cells)[source]¶
Bases:
objectOne candidate’s refinement score in one sensitivity scenario.
- Parameters:
- class updatesupport.report.RefinementSensitivityScenario(scenario, q_name, q_description, min_cell_weight, hidden_columns, candidate_count=0, best_column=None, best_reduction=None, baseline_ambiguity=None, status='ok', error=None)[source]¶
Bases:
objectScenario-level status for refinement sensitivity aggregation.
- Parameters:
- class updatesupport.report.RefinementSensitivityReport(candidates, scenarios, rows, title='Public Refinement Sensitivity Report', row_count=None)[source]¶
Bases:
ReportArtifactMixinRefinement recommendations aggregated over a sensitivity grid.
- Parameters:
candidates (tuple[RefinementSensitivityCandidate, ...])
scenarios (tuple[RefinementSensitivityScenario, ...])
rows (tuple[RefinementSensitivityRow, ...])
title (str)
row_count (int | None)
- candidates: tuple[RefinementSensitivityCandidate, ...]¶
- scenarios: tuple[RefinementSensitivityScenario, ...]¶
- rows: tuple[RefinementSensitivityRow, ...]¶
- property successful_scenarios: tuple[RefinementSensitivityScenario, ...]¶
- property failed_scenarios: tuple[RefinementSensitivityScenario, ...]¶
- class updatesupport.report.StatisticalUncertainty(estimate=None, standard_error=None, lower=None, upper=None, confidence_level=None, method=None, label='Statistical uncertainty')[source]¶
Bases:
objectOptional statistical uncertainty metadata supplied by an external workflow.
- Parameters:
- class updatesupport.report.EstimatorUncertaintyAdjustment(base_lower, base_upper, base_diameter, confidence_multiplier, lower_endpoint_standard_error, upper_endpoint_standard_error, conservative_standard_error_bound, endpoint_lower, endpoint_upper, endpoint_diameter, conservative_lower, conservative_upper, conservative_diameter, confidence_core=None, method='endpoint_and_conservative')[source]¶
Bases:
objectEstimator-standard-error adjustment for hidden-composition ambiguity.
- Parameters:
base_lower (float)
base_upper (float)
base_diameter (float)
confidence_multiplier (float)
lower_endpoint_standard_error (float | None)
upper_endpoint_standard_error (float | None)
conservative_standard_error_bound (float)
endpoint_lower (float | None)
endpoint_upper (float | None)
endpoint_diameter (float | None)
conservative_lower (float)
conservative_upper (float)
conservative_diameter (float)
confidence_core (UncertainLinearConfidenceCoreResult | None)
method (str)
- confidence_core: UncertainLinearConfidenceCoreResult | None = None¶
- class updatesupport.report.CausalReportingStabilitySuite(primary, sensitivity=None, refinement_sensitivity=None, statistical_uncertainty=None, title='Causal Reporting Stability Suite')[source]¶
Bases:
ReportArtifactMixinOne-stop report object for causal-effect reporting stability.
- Parameters:
primary (PublicDescentReport)
sensitivity (SensitivityReport | None)
refinement_sensitivity (RefinementSensitivityReport | None)
statistical_uncertainty (StatisticalUncertainty | None)
title (str)
- primary: PublicDescentReport¶
- sensitivity: SensitivityReport | None = None¶
- refinement_sensitivity: RefinementSensitivityReport | None = None¶
- statistical_uncertainty: StatisticalUncertainty | None = None¶
- class updatesupport.report.PublicDescentReport(grouped, observed_value, interval, public_adequate, fibers, refinements, title='Public Descent Report', target_description='target value', observed_label='Observed value', row_count=None, row_count_label='Rows', min_cell_weight=None, diagnostics=(), estimator_uncertainty=None, refinement_screening=None)[source]¶
Bases:
ReportArtifactMixinStructured public-descent audit with Markdown rendering.
- Parameters:
grouped (GroupedProblem)
observed_value (float)
interval (TransportResult)
public_adequate (bool)
fibers (tuple[PublicFiberDiagnostic, ...])
refinements (tuple[RefinementCandidate, ...])
title (str)
target_description (str)
observed_label (str)
row_count (int | None)
row_count_label (str)
min_cell_weight (float | None)
diagnostics (tuple[DataDiagnostic, ...])
estimator_uncertainty (EstimatorUncertaintyAdjustment | None)
refinement_screening (Any | None)
- grouped: GroupedProblem¶
- interval: TransportResult¶
- fibers: tuple[PublicFiberDiagnostic, ...]¶
- refinements: tuple[RefinementCandidate, ...]¶
- diagnostics: tuple[DataDiagnostic, ...] = ()¶
- estimator_uncertainty: EstimatorUncertaintyAdjustment | None = None¶
- updatesupport.report.public_descent_report(data, *, source_data=None, public=None, hidden=None, target=None, target_standard_error=None, weight=None, public_columns=None, hidden_columns=None, target_column=None, target_standard_error_column=None, weight_column=None, candidate_refinements=None, candidate_columns=None, top=10, min_cell_weight=1.0, title='Public Descent Report', target_description='target value', observed_label='Observed value', row_count=None, row_count_label='Rows', q=None, q_radius=None, target_confidence_multiplier=1.96, refinement_screening_backend=None, refinement_ambiguity_limit=None, refinement_screening_exact_fallback=True)[source]¶
Build an analyst-facing public-descent report.
datamay be a raw dataframe/row iterable or a precompiledGroupedProblem. Whendatais precompiled, passsource_datato compute one-column refinement candidates.target_standard_errorsupplies row-level target-estimator standard errors. The point-estimate transport interval is unchanged, and the report adds endpoint/conservative estimator-uncertainty-aware interval summaries.- Parameters:
data (Any | GroupedProblem)
source_data (Any | None)
target (str | RowMetric | ProcedureTarget | None)
weight (str | None)
target_column (str | RowMetric | ProcedureTarget | None)
weight_column (str | None)
top (int)
min_cell_weight (float)
title (str)
target_description (str)
observed_label (str)
row_count (int | None)
row_count_label (str)
q (Any | None)
q_radius (float | None)
target_confidence_multiplier (float)
refinement_screening_backend (str | None)
refinement_ambiguity_limit (float | None)
refinement_screening_exact_fallback (bool)
- Return type:
- updatesupport.report.witness_report(data, *, public=None, hidden=None, target=None, weight=None, public_columns=None, hidden_columns=None, target_column=None, weight_column=None, min_cell_weight=1.0, q='saturated', q_radius=None, title='Adversarial Witness Report', top=20)[source]¶
Build an adversarial lower-vs-upper witness report.
datamay be a raw dataframe/row iterable, a precompiledGroupedProblem, or an existingPublicDescentReport.- Parameters:
data (Any | GroupedProblem | PublicDescentReport)
target (str | RowMetric | ProcedureTarget | None)
weight (str | None)
target_column (str | RowMetric | ProcedureTarget | None)
weight_column (str | None)
min_cell_weight (float)
q (Any)
q_radius (float | None)
title (str)
top (int)
- Return type:
- updatesupport.report.audit_effects(data, *, source_data=None, public=None, hidden=None, effect=None, effect_standard_error=None, weight=None, public_columns=None, hidden_columns=None, effect_column=None, effect_standard_error_column=None, weight_column=None, candidate_refinements=None, candidate_columns=None, top=10, min_cell_weight=1.0, title='Causal Effect Representation Stability Audit', effect_description='estimated treatment effect', observed_label='Observed effect estimate', row_count=None, row_count_label='Rows', q=None, q_radius=None, effect_confidence_multiplier=1.96, refinement_screening_backend=None, refinement_ambiguity_limit=None, refinement_screening_exact_fallback=True)[source]¶
Audit whether public categories stably report estimated effects.
This is a convenience wrapper around
public_descent_report()for causal or uplift workflows. A causal library should produce the row-level, subgroup-level, or hidden-cell-level effect target; this function audits the reporting representation for that supplied target.Pass
effect_standard_errorwhen the causal estimator also supplies row-level or hidden-cell effect standard errors and the report should carry them into estimator-uncertainty-aware hidden-ambiguity summaries.- Parameters:
data (Any | GroupedProblem)
source_data (Any | None)
effect (str | None)
weight (str | None)
effect_column (str | None)
weight_column (str | None)
top (int)
min_cell_weight (float)
title (str)
effect_description (str)
observed_label (str)
row_count (int | None)
row_count_label (str)
q (Any | None)
q_radius (float | None)
effect_confidence_multiplier (float)
refinement_screening_backend (str | None)
refinement_ambiguity_limit (float | None)
refinement_screening_exact_fallback (bool)
- Return type:
- updatesupport.report.causal_reporting_stability(data, *, source_data=None, public=None, hidden=None, effect=None, effect_standard_error=None, weight=None, public_columns=None, hidden_columns=None, effect_column=None, effect_standard_error_column=None, weight_column=None, candidate_refinements=None, candidate_columns=None, min_cell_weight=1.0, q=None, q_radius=None, top=10, include_sensitivity=True, include_refinement_sensitivity=True, sensitivity_min_cell_weights=None, sensitivity_hidden_sets=None, sensitivity_q_presets=None, statistical_estimate=None, statistical_standard_error=None, statistical_interval=None, statistical_confidence_level=None, statistical_method=None, statistical_label='Statistical uncertainty', effect_confidence_multiplier=1.96, title='Causal Reporting Stability Suite', primary_title='Causal Effect Representation Stability Audit', raise_errors=False)[source]¶
Run the standard causal reporting-stability workflow.
This packages the main effect audit, optional Q/min-cell/hidden-set sensitivity grid, optional sensitivity-aware refinement ranking, and externally supplied statistical uncertainty metadata into one report object.
- Parameters:
data (Any | GroupedProblem)
source_data (Any | None)
effect (str | None)
weight (str | None)
effect_column (str | None)
weight_column (str | None)
min_cell_weight (float)
q (Any | None)
q_radius (float | None)
top (int)
include_sensitivity (bool)
include_refinement_sensitivity (bool)
statistical_estimate (float | None)
statistical_standard_error (float | None)
statistical_confidence_level (float | None)
statistical_method (str | None)
statistical_label (str)
effect_confidence_multiplier (float)
title (str)
primary_title (str)
raise_errors (bool)
- Return type:
- updatesupport.report.public_fiber_diagnostics(grouped, *, top=10)[source]¶
Return public-fiber contribution or point-range diagnostics.
- Parameters:
grouped (GroupedProblem)
top (int | None)
- Return type:
- updatesupport.report.recommend_refinements(data, *, public, hidden, target, candidate_refinements=None, candidate_columns=None, weight=None, min_cell_weight=1.0, q='saturated', q_radius=None, top=8, screening_backend=None, ambiguity_limit=None, screening_exact_fallback=True)[source]¶
Rank one-column public refinements by transport-ambiguity reduction.
- updatesupport.report.recommend_refinement_interactions(data, *, public, hidden, target, candidate_refinements=None, candidate_columns=None, weight=None, min_cell_weight=1.0, q='saturated', q_radius=None, max_order=2, top=8, max_evaluations=128, title='Interaction-Aware Refinement Search')[source]¶
Rank small refinement sets and expose interaction gains.
The ordinary refinement table tests one hidden column at a time. This search evaluates combinations up to
max_orderso analysts can detect cases where two or more individually weak refinements become strong together.
- updatesupport.report.attribute_refinement_ambiguity(data, *, public, hidden, target, candidate_refinements=None, candidate_columns=None, weight=None, min_cell_weight=1.0, q='saturated', q_radius=None, max_exact_columns=8, n_permutations=None, seed=None, title='Refinement Ambiguity Attribution Report')[source]¶
Attribute joint ambiguity reduction to refinement columns.
The value function is the ambiguity reduction achieved by adding a set of hidden columns to the public representation. For small candidate sets this computes exact Shapley values by enumerating all coalitions. For larger candidate sets it defaults to permutation-sampled Shapley attribution.
- updatesupport.report.recommend_refinements_sensitivity(data, *, public, hidden, target, candidate_refinements=None, candidate_columns=None, weight=None, min_cell_weights=(1.0,), hidden_sets=None, q_presets=None, top=8, title='Public Refinement Sensitivity Report', raise_errors=False)[source]¶
Aggregate one-column refinement rankings over a sensitivity grid.
- class updatesupport.report.SensitivityRow(scenario, q_name, q_description, min_cell_weight, hidden_columns, hidden_cells=None, public_cells=None, observed_value=None, lower=None, upper=None, ambiguity=None, public_adequate=None, status='ok', error=None)[source]¶
Bases:
objectOne robustness scenario in a sensitivity report.
- Parameters:
- class updatesupport.report.SensitivitySummary(scenario_count, successful_scenarios, failed_scenarios, baseline_scenario, lowest_ambiguity_scenario, highest_ambiguity_scenario, min_ambiguity, max_ambiguity, ambiguity_span, public_adequacy_pattern, observed_min, observed_max, observed_span)[source]¶
Bases:
objectAggregate summary of a sensitivity-report scenario grid.
- Parameters:
scenario_count (int)
successful_scenarios (int)
failed_scenarios (int)
baseline_scenario (str | None)
lowest_ambiguity_scenario (str | None)
highest_ambiguity_scenario (str | None)
min_ambiguity (float | None)
max_ambiguity (float | None)
ambiguity_span (float | None)
public_adequacy_pattern (str)
observed_min (float | None)
observed_max (float | None)
observed_span (float | None)
- class updatesupport.report.SensitivityReport(rows, title='Public Descent Sensitivity Report', row_count=None)[source]¶
Bases:
ReportArtifactMixinRobustness grid over Q presets, hidden sets, and min-cell thresholds.
- Parameters:
rows (tuple[SensitivityRow, ...])
title (str)
row_count (int | None)
- rows: tuple[SensitivityRow, ...]¶
- property successful_rows: tuple[SensitivityRow, ...]¶
- property failed_rows: tuple[SensitivityRow, ...]¶
- property summary: SensitivitySummary¶
- updatesupport.report.sensitivity_report(data, *, public, hidden, target, weight=None, min_cell_weights=(1.0,), hidden_sets=None, q_presets=None, title='Public Descent Sensitivity Report', raise_errors=False)[source]¶
Run robustness checks over Q presets, hidden sets, and cell thresholds.
- Parameters:
- Return type:
Representation-stability certification over frontier search results.
- class updatesupport.certificate.RepresentationStabilityCertificate(frontier, selected_candidate, status, exact_required=True, title='Representation Stability Certificate', reasons=(), limitations=())[source]¶
Bases:
ReportArtifactMixinReview-ready decision artifact for a public reporting representation.
- Parameters:
frontier (PublicRepresentationFrontier)
selected_candidate (PublicRepresentationCandidate | None)
status (str)
exact_required (bool)
title (str)
- frontier: PublicRepresentationFrontier¶
- selected_candidate: PublicRepresentationCandidate | None¶
- property certified_candidate: PublicRepresentationCandidate | None¶
Return the selected candidate only when the certificate passed.
- property best_evaluated_candidate: PublicRepresentationCandidate | None¶
Most stable evaluated representation, regardless of certification.
- updatesupport.certificate.certify_public_representation(data, *, ambiguity_limit, exact_required=True, require_exact=None, screening_backend=None, screening_exact_fallback=True, title='Representation Stability Certificate', frontier_title='Public Representation Frontier Evidence', **frontier_kwargs)[source]¶
Certify a public representation against a frontier stress-test search.
The certificate passes when the frontier finds an evaluated representation whose worst-case ambiguity is no larger than
ambiguity_limitand whose public-cell count is withinbucket_budgetwhen a budget is supplied. By default, heuristic frontier searches are marked inconclusive rather than passed; setexact_required=Falseto allow heuristic certificates.