Claim Portfolios

Shared public-representation design across a portfolio of claims.

class updatesupport.portfolio.ClaimPortfolio(claims, name='Claim Portfolio', description=None, candidate_refinements=None)[source]

Bases: object

Claims that must share one public reporting representation.

Parameters:
claims: Sequence[ClaimSpec | Mapping[str, Any]]
name: str = 'Claim Portfolio'
description: str | None = None
candidate_refinements: Sequence[str] | None = None
classmethod from_dict(payload)[source]

Build a claim portfolio from a JSON-compatible mapping.

Parameters:

payload (Mapping[str, Any])

Return type:

ClaimPortfolio

design(data, **kwargs)[source]

Search for one public representation supporting every claim.

Parameters:
Return type:

SharedRepresentationDesign

design_calibrated(historical_data, current_data, **kwargs)[source]

Design one shared report under historically calibrated TV stress.

Parameters:
  • historical_data (Any)

  • current_data (Any)

  • kwargs (Any)

Return type:

CalibratedPublicReportDesign

as_dict()[source]
Return type:

dict[str, Any]

class updatesupport.portfolio.PortfolioClaimScenarioResult(scenario, q_name, min_cell_weight, hidden_columns, observed_value, lower, upper, ambiguity, ambiguity_limit_met, decision_invariant, decision_certified, certifies_scenario)[source]

Bases: object

One claim/scenario interval for a shared representation candidate.

Parameters:
  • scenario (str)

  • q_name (str)

  • min_cell_weight (float)

  • hidden_columns (tuple[str, ...])

  • observed_value (float)

  • lower (float)

  • upper (float)

  • ambiguity (float)

  • ambiguity_limit_met (bool | None)

  • decision_invariant (bool | None)

  • decision_certified (bool | None)

  • certifies_scenario (bool)

scenario: str
q_name: str
min_cell_weight: float
hidden_columns: tuple[str, ...]
observed_value: float
lower: float
upper: float
ambiguity: float
ambiguity_limit_met: bool | None
decision_invariant: bool | None
decision_certified: bool | None
certifies_scenario: bool
as_dict()[source]
Return type:

dict[str, Any]

class updatesupport.portfolio.PortfolioClaimCandidateResult(claim_index, estimate_name, target, ambiguity_limit, has_decision, scenarios, max_ambiguity, mean_ambiguity, ambiguity_limit_met, decision_certified, certifies_claim, normalized_ambiguity, violation_score)[source]

Bases: object

One claim’s outcome for a shared representation candidate.

Parameters:
claim_index: int
estimate_name: str
target: str
ambiguity_limit: float | None
has_decision: bool
scenarios: tuple[PortfolioClaimScenarioResult, ...]
max_ambiguity: float
mean_ambiguity: float
ambiguity_limit_met: bool | None
decision_certified: bool | None
certifies_claim: bool
normalized_ambiguity: float | None
violation_score: float
property observed_min: float
property observed_max: float
property lower: float
property upper: float
property worst_scenario: str
as_dict()[source]
Return type:

dict[str, Any]

class updatesupport.portfolio.SharedRepresentationCandidate(added_columns, public_columns, min_public_cells, max_public_cells, claim_results, passes_bucket_budget, passes_required_columns)[source]

Bases: object

One public representation evaluated across every portfolio claim.

Parameters:
added_columns: tuple[str, ...]
public_columns: tuple[str, ...]
min_public_cells: int
max_public_cells: int
claim_results: tuple[PortfolioClaimCandidateResult, ...]
passes_bucket_budget: bool
passes_required_columns: bool
property added_column_count: int
property claim_count: int
property certified_claim_count: int
property uncertified_claim_count: int
property certification_rate: float
property all_claims_certified: bool
property max_violation_score: float
property max_normalized_ambiguity: float
property total_max_ambiguity: float

Descriptive total; never used to rank claims on different scales.

property eligible: bool
property label: str
as_dict()[source]
Return type:

dict[str, Any]

class updatesupport.portfolio.SharedRepresentationDesign(portfolio, base_public, hidden_columns, candidate_refinements, required_columns, excluded_columns, max_added_columns, bucket_budget, evaluated_representation_count, selected, base, candidates, frontier, status, title='Shared Representation Design', limitations=())[source]

Bases: ReportArtifactMixin

Exact shared public-representation search for a claim portfolio.

Parameters:
portfolio: ClaimPortfolio
base_public: tuple[str, ...]
hidden_columns: tuple[str, ...]
candidate_refinements: tuple[str, ...]
required_columns: tuple[str, ...]
excluded_columns: tuple[str, ...]
max_added_columns: int
bucket_budget: int | None
evaluated_representation_count: int
selected: SharedRepresentationCandidate
base: SharedRepresentationCandidate
candidates: tuple[SharedRepresentationCandidate, ...]
frontier: tuple[SharedRepresentationCandidate, ...]
status: str
title: str = 'Shared Representation Design'
limitations: tuple[str, ...] = ()
property recommended_public: tuple[str, ...]
property selected_claims: tuple[ClaimSpec, ...]
audit(data, **kwargs)[source]

Audit every claim using the selected shared representation.

Parameters:
Return type:

tuple[ClaimAudit, …]

as_dict()[source]
Return type:

dict[str, Any]

to_tables()[source]
Return type:

dict[str, tuple[dict[str, Any], …]]

to_markdown(*, max_frontier_rows=30)[source]
Parameters:

max_frontier_rows (int)

Return type:

str

updatesupport.portfolio.claim_portfolio(*claims, name='Claim Portfolio', description=None, candidate_refinements=None)[source]

Create a claim portfolio from positional claims or one claim sequence.

Parameters:
Return type:

ClaimPortfolio

updatesupport.portfolio.design_shared_representation(data, portfolio, *, candidate_refinements=None, max_added_columns=None, bucket_budget=None, max_evaluations=4096, tolerance=1e-09, title='Shared Representation Design')[source]

Search exact column subsets for one representation supporting all claims.

Parameters:
Return type:

SharedRepresentationDesign