# `causalis.data_contracts.panel_estimate`

## Module Contents

### Classes

`PanelEstimate` | Result contract for dynamic synthetic-control effect-path estimates.

### API

class causalis.data_contracts.panel_estimate.PanelEstimate(/, **data: Any)

  Bases: `pydantic.BaseModel`

  Result contract for dynamic synthetic-control effect-path estimates.

  Initialization

  Create a new model by parsing and validating input data from keyword arguments.

  Raises [`ValidationError`][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

  `self` is explicitly positional-only to allow `self` as a field name.

  model_config

    ‘ConfigDict(…)’

  estimand: Literal[dynamic_effect_path]

    ‘dynamic_effect_path’

  model: str

    None

  treated_unit: Hashable

    None

  treatment_start: causalis.data_contracts.panel_data_scm.TimeLike

    None

  pre_times: List[causalis.data_contracts.panel_data_scm.TimeLike]

    None

  post_times: List[causalis.data_contracts.panel_data_scm.TimeLike]

    None

  effect_by_time: pandas.Series

    None

  ci_lower_by_time: pandas.Series

    None

  ci_upper_by_time: pandas.Series

    None

  p_value_by_time: pandas.Series

    None

  is_significant_by_time: pandas.Series

    None

  confidence_set_by_time: Dict[causalis.data_contracts.panel_data_scm.TimeLike, list[tuple[float, float]]]

    None

  alpha: float

    None

  observed_outcome: pandas.Series

    None

  synthetic_outcome: pandas.Series

    None

  donor_weights_augmented: Dict[Hashable, float]

    None

  diagnostics: Dict[str, Any]

    ‘Field(…)’

  created_at: datetime.datetime

    ‘Field(…)’

  summary() → pandas.DataFrame

    Return a compact CausalEstimate-style summary table.

  summary_poinwise() → pandas.DataFrame

    Return pointwise post-period estimates as a flat DataFrame.