Skip to content

ump_spec.models.benchmark

module ump-spec

Benchmark store rows (spec §25.9): evidence, cells, prior cards, release ledger, maturity.

class

class Moderators(StrictModel)

Fields

NameTypeDefaultDescription
retargeting_sharefloat | NoneNone
spend_intensityfloat | NoneNone
peakbool | NoneNone
self_measuredbool | NoneNone
creative_refreshbool | NoneNone

Source: packages/ump-spec/src/ump_spec/models/benchmark.py, line 26

class

class BenchmarkEvidence(ArtifactDoc)

One evidence row. client_ref is salted; client names never enter pooled tables.

Fields

NameTypeDefaultDescription
client_refstr
channelstr
verticalstr
quarterstre.g. 2026 Q2
source_typeSourceType
estimand_idstr | NoneNoneE-BM-AVG-ROI, E-BM-MARG-ROI, … or None.
admissibility_classAdmissibilityClass | NoneNone
log_valuefloat | NoneNonelog iROAS (or log cost per person lifted).
sefloat | NoneNone
interval_lofloat | NoneNone
interval_hifloat | NoneNone
confidence_levelfloat | NoneNone
value_basisLiteral['net', 'gross'] | NoneNone
calibratedboolFalse
refit_idstr | NoneNone
absorbed_bystr | NoneNone
moderatorsModeratorsModerators()
noteslist[str]list()Note codes.
hold_reasonstr | NoneNone
pool_statusPoolStatus'on_file'
metric_familyMetricFamily'sales_return'
licenceLiteral['pooled_use', 'client_only']'pooled_use'
feed_costfloat | NoneNone
spendfloat | NoneNone
is_forecastboolFalse
filed_atdatetime | NoneNone
valuefloat | NoneNone§25.3 rule 4a: the estimate on its reported scale, kept when non-positive (note NONPOSITIVE_ESTIMATE).
value_scaleLiteral['identity', 'log'] | NoneNoneScale of value.
se_multipliersdict[str, float] | NoneNone§25.3 rule 1: every SE multiplier applied to this row (source, age, …).
filed_bystr | NoneNonePrincipal that filed the row. Written by core GET /v1/benchmark/evidence row view (services/benchmark.py).
se_effectivefloat | NoneNoneSE after every recorded multiplier (se_multipliers), the one pooling uses. Written by core GET /v1/benchmark/evidence row view (services/benchmark.py).

Source: packages/ump-spec/src/ump_spec/models/benchmark.py, line 34

class

class BenchmarkCell(ArtifactDoc)

Fields

NameTypeDefaultDescription
vintage_idstr
verticalstr
channelstr
estimand_idstr'E-BM-AVG-ROI'
methodLiteral['DL', 'REML', 'bayes_hier']'DL'
kint
nint
mufloat
sefloat
taufloat
i2float | NoneNone
ci95tuple[float, float]
pi95tuple[float, float]
spend_sharesdict[str, float]dict()
precision_sharesdict[str, float]dict()
suppressedboolFalse
parent_cell_refstr | NoneNone
egger_flagboolFalse
releasedboolFalse
contributor_bandLiteral['<5', '5-9', '10+'] | NoneNone
noteslist[str]list()
ci_methodLiteral['hksj', 'wald', 'bayes_eti'] | NoneNone§25.3 rule 4: HKSJ by default; Wald with DL, or ETI under a Bayesian model.
constructionLiteral['log_delta', 'reported_scale_log_link', 'bayes_hier'] | NoneNone§25.3 rule 4a: delta-method log transform, or the reported-scale likelihood with a log link when any row is non-positive.
contributorslist[str] | NoneNoneSalted client refs that contribute (internal view only; gives the exact k). Written by core benchmark cells (services/benchmark.py; live cells, vintage rows).
superseded_rowsint | NoneNoneRows set aside by the latest-refit rule (§25.3 rule 1; note SUPERSEDED_REFIT). Written by core benchmark cells (services/benchmark.py; live cells, vintage rows).
ci_dfint | NoneNoneDegrees of freedom of the HKSJ t interval, k - 1 (internal view only). Written by core benchmark cells (services/benchmark.py; live cells, vintage rows).
hksj_multiplierfloat | NoneNoneHKSJ variance multiplier (internal view only). Written by core benchmark cells (services/benchmark.py; live cells, vintage rows).
pi_notestr | NoneNoneHow the prediction interval was built (internal view only). Written by core benchmark cells (services/benchmark.py; live cells, vintage rows).
pooling_failedstr | NoneNoneWhy no log-link cell mean exists (the cell is empty). Written by core benchmark cells (services/benchmark.py; live cells, vintage rows).
emptybool | NoneNoneNo pooled estimate: mu, se and tau are placeholders. Written by core benchmark cells (services/benchmark.py; live cells, vintage rows).
showndict[str, Any] | NoneNoneThe cell as a ShownNumber-like view: value, intervals, estimand and words. Written by core benchmark cells (services/benchmark.py; live cells, vintage rows).
parent_celldict[str, Any] | NoneNoneThe cross-vertical parent cell, read in place of a suppressed cell (G-BM-04 Fall back). Written by core benchmark cells (services/benchmark.py; live cells, vintage rows).
no_vertical_rowsbool | NoneNonePlaceholder for a channel with no row in this vertical (fill_parents=true). Written by core benchmark cells (services/benchmark.py; live cells, vintage rows).
leave_one_outbool | NoneNonePooled without one client (exclude_client_ref; note LEAVE_ONE_OUT). Written by core benchmark cells (services/benchmark.py; live cells, vintage rows).
windowstr | NoneNoneRule 1 window applied: all or four_quarters. Written by core benchmark cells (services/benchmark.py; live cells, vintage rows).
proposed_thresholdsdict[str, Any] | NoneNoneThe proposed benchmark parameters the cell was computed under. Written by core benchmark cells (services/benchmark.py; live cells, vintage rows).
reasonstr | NoneNonePublic reason a suppressed cell is held (public view only). Written by core benchmark cells (services/benchmark.py; live cells, vintage rows).

Source: packages/ump-spec/src/ump_spec/models/benchmark.py, line 85

class

class PriorCard(ArtifactDoc)

Fields

NameTypeDefaultDescription
client_refstr
estimand_idstr'E-BM-AVG-ROI'
channelstr
source_cellstr
vintage_idstr
mixture_weightfloat0.80.8, or 0.6 on parent-cell fallback (placeholder).
mufloat
sdfloat
wide_sdfloat1.0
parent_fallbackboolFalse
client_idstr | NoneNoneClient the prior is for (the card also carries the salted client_ref). Written by onboarding and models (prior cards from the benchmark store, §25.6).
sourcestr | NoneNoneWhere the prior came from: cell, parent or reference. Written by onboarding and models (prior cards from the benchmark store, §25.6).
best_guessbool | NoneNoneTrue when the prior is a labelled best guess (parent cell or reference prior). Written by onboarding and models (prior cards from the benchmark store, §25.6).
contributor_bandstr | NoneNoneContributor band of the source cell (<5, 5-9, 10+). Written by onboarding and models (prior cards from the benchmark store, §25.6).
moderator_shiftfloat | NoneNoneShift applied to mu for the client’s moderators (§25.6). Written by onboarding and models (prior cards from the benchmark store, §25.6).
moderator_shift_assumedbool | NoneNoneTrue when the shift was assumed, not computed. Written by onboarding and models (prior cards from the benchmark store, §25.6).
formulastr | NoneNoneThe mixture prior in words. Written by onboarding and models (prior cards from the benchmark store, §25.6).
iroasdict[str, Any] | NoneNoneThe prior on the iROAS scale: median, lo, hi, level, sd_dollar. Written by onboarding and models (prior cards from the benchmark store, §25.6).
proposedbool | NoneNoneTrue while the mixture weights and widths are proposed values. Written by onboarding and models (prior cards from the benchmark store, §25.6).
fallbackslist[Any] | NoneNoneFallback entries (code, gate, field, assumed, effect). Written by onboarding and models (prior cards from the benchmark store, §25.6).
noteslist[str] | NoneNoneNote codes. Written by onboarding and models (prior cards from the benchmark store, §25.6).

Source: packages/ump-spec/src/ump_spec/models/benchmark.py, line 173

class

class ReleaseLedgerEntry(StrictModel)

Fields

NameTypeDefaultDescription
idstr
client_refstr
release_idstr
cell_or_statstr
epsilonfloat
yearint

Source: packages/ump-spec/src/ump_spec/models/benchmark.py, line 230

class

class StageFlag(StrictModel)

Fields

NameTypeDefaultDescription
reachedboolFalse
atdate | NoneNone

Source: packages/ump-spec/src/ump_spec/models/benchmark.py, line 239

class

class ClientMaturity(StrictModel)

Fields

NameTypeDefaultDescription
client_refstr
foundationsStageFlagStageFlag()
model_liveStageFlagStageFlag()
experimentingStageFlagStageFlag()
calibratedStageFlagStageFlag()
reallocatingStageFlagStageFlag()
scorefloat
stagestr
pipeline_stagedict[str, Literal['T0_fit', 'T1_prioritise', 'T2_design', 'T3_running', 'T4_calibrate', 'T5_reallocate']]dict()

Source: packages/ump-spec/src/ump_spec/models/benchmark.py, line 244

NameTypeValueDescription
SourceTypeLiteral['mmm_meridian', 'mmm_pymc', 'redacted_engine', 'mmm_robyn', 'mmm_vend...
PoolStatusLiteral['pooled', 'on_file', 'held_from_pool', 'decision_score', 'client_only']
MetricFamilyLiteral['sales_return', 'brand_awareness', 'ad_recall', 'consideration', 'del...
BenchmarkRowBenchmarkEvidence