google-meridian 1.0.9__py3-none-any.whl → 1.1.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- # Copyright 2024 The Meridian Authors.
1
+ # Copyright 2025 The Meridian Authors.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1515,13 +1515,13 @@ INC_OUTCOME_NON_MEDIA_FIXED = np.array([
1515
1515
  [
1516
1516
  1.991e02,
1517
1517
  5.116e02,
1518
- 5.190e01,
1518
+ 5.191e01,
1519
1519
  6.623e02,
1520
1520
  1.969e02,
1521
- -7.194e05,
1522
- -1.927e04,
1523
- -1.809e03,
1524
- -3.006e04,
1521
+ -2.250e05,
1522
+ 1.676e04,
1523
+ 1.058e04,
1524
+ -4.475e03,
1525
1525
  ],
1526
1526
  [
1527
1527
  1.980e02,
@@ -1529,10 +1529,10 @@ INC_OUTCOME_NON_MEDIA_FIXED = np.array([
1529
1529
  5.190e01,
1530
1530
  6.690e02,
1531
1531
  1.947e02,
1532
- -7.001e05,
1533
- -1.915e04,
1534
- -1.729e03,
1535
- -2.933e04,
1532
+ -2.190e05,
1533
+ 1.669e04,
1534
+ 1.005e04,
1535
+ -4.375e03,
1536
1536
  ],
1537
1537
  [
1538
1538
  1.984e02,
@@ -1540,10 +1540,10 @@ INC_OUTCOME_NON_MEDIA_FIXED = np.array([
1540
1540
  5.186e01,
1541
1541
  6.678e02,
1542
1542
  1.950e02,
1543
- -7.005e05,
1544
- -1.901e04,
1545
- -1.737e03,
1546
- -3.111e04,
1543
+ -2.191e05,
1544
+ 1.654e04,
1545
+ 1.011e04,
1546
+ -4.644e03,
1547
1547
  ],
1548
1548
  [
1549
1549
  1.984e02,
@@ -1551,10 +1551,10 @@ INC_OUTCOME_NON_MEDIA_FIXED = np.array([
1551
1551
  5.193e01,
1552
1552
  6.658e02,
1553
1553
  1.899e02,
1554
- -6.618e05,
1555
- -1.831e04,
1556
- -1.688e03,
1557
- -2.833e04,
1554
+ -2.070e05,
1555
+ 1.575e04,
1556
+ 9.798e03,
1557
+ -4.228e03,
1558
1558
  ],
1559
1559
  [
1560
1560
  1.980e02,
@@ -1562,10 +1562,10 @@ INC_OUTCOME_NON_MEDIA_FIXED = np.array([
1562
1562
  5.196e01,
1563
1563
  6.697e02,
1564
1564
  1.898e02,
1565
- -6.748e05,
1566
- -1.849e04,
1567
- -1.660e03,
1568
- -3.077e04,
1565
+ -2.111e05,
1566
+ 1.595e04,
1567
+ 9.621e03,
1568
+ -4.596e03,
1569
1569
  ],
1570
1570
  [
1571
1571
  1.960e02,
@@ -1573,10 +1573,10 @@ INC_OUTCOME_NON_MEDIA_FIXED = np.array([
1573
1573
  5.181e01,
1574
1574
  6.764e02,
1575
1575
  1.999e02,
1576
- -6.882e05,
1577
- -1.859e04,
1578
- -1.622e03,
1579
- -2.499e04,
1576
+ -2.153e05,
1577
+ 1.596e04,
1578
+ 9.384e03,
1579
+ -3.718e03,
1580
1580
  ],
1581
1581
  [
1582
1582
  1.988e02,
@@ -1584,10 +1584,10 @@ INC_OUTCOME_NON_MEDIA_FIXED = np.array([
1584
1584
  5.180e01,
1585
1585
  6.780e02,
1586
1586
  1.979e02,
1587
- -6.667e05,
1588
- -1.809e04,
1589
- -1.600e03,
1590
- -2.555e04,
1587
+ -2.085e05,
1588
+ 1.539e04,
1589
+ 9.246e03,
1590
+ -3.802e03,
1591
1591
  ],
1592
1592
  [
1593
1593
  1.991e02,
@@ -1595,10 +1595,10 @@ INC_OUTCOME_NON_MEDIA_FIXED = np.array([
1595
1595
  5.174e01,
1596
1596
  6.698e02,
1597
1597
  1.972e02,
1598
- -5.978e05,
1599
- -1.809e04,
1600
- -1.589e03,
1601
- -2.782e04,
1598
+ -1.870e05,
1599
+ 1.525e04,
1600
+ 9.182e03,
1601
+ -4.143e03,
1602
1602
  ],
1603
1603
  [
1604
1604
  1.986e02,
@@ -1606,10 +1606,10 @@ INC_OUTCOME_NON_MEDIA_FIXED = np.array([
1606
1606
  5.175e01,
1607
1607
  6.669e02,
1608
1608
  1.948e02,
1609
- -6.080e05,
1610
- -1.806e04,
1611
- -1.619e03,
1612
- -2.830e04,
1609
+ -1.902e05,
1610
+ 1.520e04,
1611
+ 9.380e03,
1612
+ -4.212e03,
1613
1613
  ],
1614
1614
  [
1615
1615
  1.986e02,
@@ -1617,10 +1617,10 @@ INC_OUTCOME_NON_MEDIA_FIXED = np.array([
1617
1617
  5.178e01,
1618
1618
  6.670e02,
1619
1619
  1.965e02,
1620
- -6.241e05,
1621
- -1.795e04,
1622
- -1.663e03,
1623
- -2.348e04,
1620
+ -1.952e05,
1621
+ 1.512e04,
1622
+ 9.660e03,
1623
+ -3.480e03,
1624
1624
  ],
1625
1625
  ],
1626
1626
  [
@@ -1630,10 +1630,10 @@ INC_OUTCOME_NON_MEDIA_FIXED = np.array([
1630
1630
  2.222e02,
1631
1631
  2.692e02,
1632
1632
  1.240e02,
1633
- -6.622e05,
1634
- -3.899e04,
1635
- 3.034e03,
1636
- -1.467e05,
1633
+ -2.072e05,
1634
+ 4.133e04,
1635
+ -2.037e04,
1636
+ -2.202e04,
1637
1637
  ],
1638
1638
  [
1639
1639
  1.432e03,
@@ -1641,10 +1641,10 @@ INC_OUTCOME_NON_MEDIA_FIXED = np.array([
1641
1641
  2.231e02,
1642
1642
  2.683e02,
1643
1643
  1.240e02,
1644
- -6.727e05,
1645
- -3.886e04,
1646
- 3.040e03,
1647
- -1.444e05,
1644
+ -2.105e05,
1645
+ 4.117e04,
1646
+ -2.041e04,
1647
+ -2.168e04,
1648
1648
  ],
1649
1649
  [
1650
1650
  1.430e03,
@@ -1652,10 +1652,10 @@ INC_OUTCOME_NON_MEDIA_FIXED = np.array([
1652
1652
  2.248e02,
1653
1653
  2.675e02,
1654
1654
  1.235e02,
1655
- -6.444e05,
1656
- -3.858e04,
1657
- 3.023e03,
1658
- -1.387e05,
1655
+ -2.016e05,
1656
+ 4.092e04,
1657
+ -2.030e04,
1658
+ -2.085e04,
1659
1659
  ],
1660
1660
  [
1661
1661
  1.436e03,
@@ -1663,10 +1663,10 @@ INC_OUTCOME_NON_MEDIA_FIXED = np.array([
1663
1663
  2.231e02,
1664
1664
  2.667e02,
1665
1665
  1.244e02,
1666
- -6.301e05,
1667
- -3.852e04,
1668
- 3.006e03,
1669
- -1.275e05,
1666
+ -1.972e05,
1667
+ 4.087e04,
1668
+ -2.019e04,
1669
+ -1.921e04,
1670
1670
  ],
1671
1671
  [
1672
1672
  1.447e03,
@@ -1674,10 +1674,10 @@ INC_OUTCOME_NON_MEDIA_FIXED = np.array([
1674
1674
  2.226e02,
1675
1675
  2.650e02,
1676
1676
  1.254e02,
1677
- -5.698e05,
1678
- -3.717e04,
1679
- 2.969e03,
1680
- -1.106e05,
1677
+ -1.783e05,
1678
+ 3.951e04,
1679
+ -1.994e04,
1680
+ -1.672e04,
1681
1681
  ],
1682
1682
  [
1683
1683
  1.430e03,
@@ -1685,10 +1685,10 @@ INC_OUTCOME_NON_MEDIA_FIXED = np.array([
1685
1685
  2.232e02,
1686
1686
  2.641e02,
1687
1687
  1.254e02,
1688
- -5.759e05,
1689
- -3.911e04,
1690
- 2.974e03,
1691
- -1.045e05,
1688
+ -1.802e05,
1689
+ 4.147e04,
1690
+ -1.998e04,
1691
+ -1.571e04,
1692
1692
  ],
1693
1693
  [
1694
1694
  1.457e03,
@@ -1696,10 +1696,10 @@ INC_OUTCOME_NON_MEDIA_FIXED = np.array([
1696
1696
  2.258e02,
1697
1697
  2.621e02,
1698
1698
  1.247e02,
1699
- -5.770e05,
1700
- -3.842e04,
1701
- 3.002e03,
1702
- -9.320e04,
1699
+ -1.805e05,
1700
+ 4.070e04,
1701
+ -2.015e04,
1702
+ -1.398e04,
1703
1703
  ],
1704
1704
  [
1705
1705
  1.456e03,
@@ -1707,10 +1707,10 @@ INC_OUTCOME_NON_MEDIA_FIXED = np.array([
1707
1707
  2.276e02,
1708
1708
  2.646e02,
1709
1709
  1.246e02,
1710
- -5.637e05,
1711
- -3.962e04,
1712
- 2.988e03,
1713
- -8.621e04,
1710
+ -1.764e05,
1711
+ 4.198e04,
1712
+ -2.006e04,
1713
+ -1.299e04,
1714
1714
  ],
1715
1715
  [
1716
1716
  1.484e03,
@@ -1718,10 +1718,10 @@ INC_OUTCOME_NON_MEDIA_FIXED = np.array([
1718
1718
  2.252e02,
1719
1719
  2.668e02,
1720
1720
  1.241e02,
1721
- -5.527e05,
1722
- -4.099e04,
1723
- 2.969e03,
1724
- -8.990e04,
1721
+ -1.729e05,
1722
+ 4.340e04,
1723
+ -1.995e04,
1724
+ -1.352e04,
1725
1725
  ],
1726
1726
  [
1727
1727
  1.475e03,
@@ -1729,10 +1729,10 @@ INC_OUTCOME_NON_MEDIA_FIXED = np.array([
1729
1729
  2.238e02,
1730
1730
  2.669e02,
1731
1731
  1.244e02,
1732
- -5.546e05,
1733
- -4.105e04,
1734
- 2.999e03,
1735
- -8.896e04,
1732
+ -1.735e05,
1733
+ 4.349e04,
1734
+ -2.014e04,
1735
+ -1.338e04,
1736
1736
  ],
1737
1737
  ],
1738
1738
  ])
@@ -1,4 +1,4 @@
1
- # Copyright 2024 The Meridian Authors.
1
+ # Copyright 2025 The Meridian Authors.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1405,7 +1405,7 @@ class MediaSummary:
1405
1405
  confidence_level: float = c.DEFAULT_CONFIDENCE_LEVEL,
1406
1406
  selected_times: Sequence[str] | None = None,
1407
1407
  marginal_roi_by_reach: bool = True,
1408
- non_media_baseline_values: Sequence[str | float] | None = None,
1408
+ non_media_baseline_values: Sequence[float] | None = None,
1409
1409
  ):
1410
1410
  """Initializes the media summary metrics based on the model data and params.
1411
1411
 
@@ -1420,13 +1420,11 @@ class MediaSummary:
1420
1420
  next dollar spent only impacts reach, holding frequency constant. If
1421
1421
  this argument is False, we assume the next dollar spent only impacts
1422
1422
  frequency, holding reach constant.
1423
- non_media_baseline_values: Optional list of shape (n_non_media_channels,).
1424
- Each element is either a float (which means that the fixed value will be
1425
- used as baseline for the given channel) or one of the strings "min" or
1426
- "max" (which mean that the global minimum or maximum value will be used
1427
- as baseline for the values of the given non_media treatment channel). If
1428
- None, the minimum value is used as baseline for each non_media treatment
1429
- channel.
1423
+ non_media_baseline_values: Optional list of shape
1424
+ `(n_non_media_channels,)`. Each element is a float denoting the fixed
1425
+ value which will be used as baseline for the given channel. If `None`,
1426
+ the values defined with `ModelSpec.non_media_baseline_values`
1427
+ will be used.
1430
1428
  """
1431
1429
  self._meridian = meridian
1432
1430
  self._analyzer = analyzer.Analyzer(meridian)
@@ -1495,8 +1493,7 @@ class MediaSummary:
1495
1493
  Returns:
1496
1494
  An `xarray.Dataset` containing the following:
1497
1495
  - **Coordinates:** `channel`, `metric` (`mean`, `median`, `ci_lo`,
1498
- `ci_hi`),
1499
- `distribution` (`prior`, `posterior`)
1496
+ `ci_hi`), `distribution` (`prior`, `posterior`)
1500
1497
  - **Data variables:** `incremental_outcome`, `pct_of_contribution`,
1501
1498
  `effectiveness`.
1502
1499
  """
@@ -1629,7 +1626,7 @@ class MediaSummary:
1629
1626
  confidence_level: float | None = None,
1630
1627
  selected_times: Sequence[str] | None = None,
1631
1628
  marginal_roi_by_reach: bool = True,
1632
- non_media_baseline_values: Sequence[str | float] | None = None,
1629
+ non_media_baseline_values: Sequence[float] | None = None,
1633
1630
  ):
1634
1631
  """Runs the computation for the media summary metrics with new parameters.
1635
1632
 
@@ -1644,13 +1641,11 @@ class MediaSummary:
1644
1641
  dollar spent only impacts reach, holding frequency constant. If `False`,
1645
1642
  the assumption is the next dollar spent only impacts frequency, holding
1646
1643
  reach constant.
1647
- non_media_baseline_values: Optional list of shape (n_non_media_channels,).
1648
- Each element is either a float (which means that the fixed value will be
1649
- used as baseline for the given channel) or one of the strings "min" or
1650
- "max" (which mean that the global minimum or maximum value will be used
1651
- as baseline for the values of the given non_media treatment channel). If
1652
- None, the minimum value is used as baseline for each non_media treatment
1653
- channel.
1644
+ non_media_baseline_values: Optional list of shape
1645
+ `(n_non_media_channels,)`. Each element is a float denoting the fixed
1646
+ value which will be used as baseline for the given channel. If `None`,
1647
+ the values defined with `ModelSpec.non_media_baseline_values`
1648
+ will be used.
1654
1649
  """
1655
1650
  self._confidence_level = confidence_level or self._confidence_level
1656
1651
  self._selected_times = selected_times
meridian/constants.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2024 The Meridian Authors.
1
+ # Copyright 2025 The Meridian Authors.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -72,10 +72,10 @@ REVENUE = 'revenue'
72
72
  NON_REVENUE = 'non_revenue'
73
73
  REQUIRED_INPUT_DATA_ARRAY_NAMES = (
74
74
  KPI,
75
- CONTROLS,
76
75
  POPULATION,
77
76
  )
78
77
  OPTIONAL_INPUT_DATA_ARRAY_NAMES = (
78
+ CONTROLS,
79
79
  REVENUE_PER_KPI,
80
80
  ORGANIC_MEDIA,
81
81
  ORGANIC_REACH,
@@ -148,7 +148,6 @@ REQUIRED_INPUT_DATA_COORD_NAMES = (
148
148
  GEO,
149
149
  TIME,
150
150
  MEDIA_TIME,
151
- CONTROL_VARIABLE,
152
151
  )
153
152
  NON_PAID_MEDIA_INPUT_DATA_COORD_NAMES = (
154
153
  ORGANIC_MEDIA_CHANNEL,
@@ -159,6 +158,7 @@ MEDIA_INPUT_DATA_COORD_NAMES = (MEDIA_CHANNEL,)
159
158
  RF_INPUT_DATA_COORD_NAMES = (RF_CHANNEL,)
160
159
  POSSIBLE_INPUT_DATA_COORD_NAMES = (
161
160
  REQUIRED_INPUT_DATA_COORD_NAMES
161
+ + (CONTROL_VARIABLE,)
162
162
  + NON_PAID_MEDIA_INPUT_DATA_COORD_NAMES
163
163
  + MEDIA_INPUT_DATA_COORD_NAMES
164
164
  + RF_INPUT_DATA_COORD_NAMES
@@ -194,17 +194,23 @@ RF_ROI_CALIBRATION_PERIOD = 'rf_roi_calibration_period'
194
194
  KNOTS = 'knots'
195
195
  BASELINE_GEO = 'baseline_geo'
196
196
 
197
- # Media prior types.
198
- PAID_MEDIA_PRIOR_TYPE_ROI = 'roi'
199
- PAID_MEDIA_PRIOR_TYPE_MROI = 'mroi'
200
- PAID_MEDIA_PRIOR_TYPE_COEFFICIENT = 'coefficient'
201
- PAID_MEDIA_PRIOR_TYPES = frozenset({
202
- PAID_MEDIA_PRIOR_TYPE_ROI,
203
- PAID_MEDIA_PRIOR_TYPE_MROI,
204
- PAID_MEDIA_PRIOR_TYPE_COEFFICIENT,
197
+ # Treatment prior types.
198
+ TREATMENT_PRIOR_TYPE_ROI = 'roi'
199
+ TREATMENT_PRIOR_TYPE_MROI = 'mroi'
200
+ TREATMENT_PRIOR_TYPE_COEFFICIENT = 'coefficient'
201
+ TREATMENT_PRIOR_TYPE_CONTRIBUTION = 'contribution'
202
+ PAID_TREATMENT_PRIOR_TYPES = frozenset({
203
+ TREATMENT_PRIOR_TYPE_ROI,
204
+ TREATMENT_PRIOR_TYPE_MROI,
205
+ TREATMENT_PRIOR_TYPE_COEFFICIENT,
206
+ TREATMENT_PRIOR_TYPE_CONTRIBUTION,
207
+ })
208
+ NON_PAID_TREATMENT_PRIOR_TYPES = frozenset({
209
+ TREATMENT_PRIOR_TYPE_COEFFICIENT,
210
+ TREATMENT_PRIOR_TYPE_CONTRIBUTION,
205
211
  })
206
212
  PAID_MEDIA_ROI_PRIOR_TYPES = frozenset(
207
- {PAID_MEDIA_PRIOR_TYPE_ROI, PAID_MEDIA_PRIOR_TYPE_MROI}
213
+ {TREATMENT_PRIOR_TYPE_ROI, TREATMENT_PRIOR_TYPE_MROI}
208
214
  )
209
215
  # Represents a 1% increase in spend.
210
216
  MROI_FACTOR = 1.01
@@ -233,6 +239,11 @@ ROI_M = 'roi_m'
233
239
  ROI_RF = 'roi_rf'
234
240
  MROI_M = 'mroi_m'
235
241
  MROI_RF = 'mroi_rf'
242
+ CONTRIBUTION_M = 'contribution_m'
243
+ CONTRIBUTION_RF = 'contribution_rf'
244
+ CONTRIBUTION_OM = 'contribution_om'
245
+ CONTRIBUTION_ORF = 'contribution_orf'
246
+ CONTRIBUTION_N = 'contribution_n'
236
247
  GAMMA_C = 'gamma_c'
237
248
  GAMMA_N = 'gamma_n'
238
249
  XI_C = 'xi_c'
@@ -301,7 +312,29 @@ RF_PARAMETER_NAMES = (
301
312
  BETA_RF,
302
313
  BETA_GRF,
303
314
  )
315
+
316
+ MEDIA_PARAMETERS = (
317
+ ROI_M,
318
+ MROI_M,
319
+ CONTRIBUTION_M,
320
+ BETA_M,
321
+ ETA_M,
322
+ ALPHA_M,
323
+ EC_M,
324
+ SLOPE_M,
325
+ )
326
+ RF_PARAMETERS = (
327
+ ROI_RF,
328
+ MROI_RF,
329
+ CONTRIBUTION_RF,
330
+ BETA_RF,
331
+ ETA_RF,
332
+ ALPHA_RF,
333
+ EC_RF,
334
+ SLOPE_RF,
335
+ )
304
336
  ORGANIC_MEDIA_PARAMETERS = (
337
+ CONTRIBUTION_OM,
305
338
  BETA_OM,
306
339
  ETA_OM,
307
340
  ALPHA_OM,
@@ -309,6 +342,7 @@ ORGANIC_MEDIA_PARAMETERS = (
309
342
  SLOPE_OM,
310
343
  )
311
344
  ORGANIC_RF_PARAMETERS = (
345
+ CONTRIBUTION_ORF,
312
346
  BETA_ORF,
313
347
  ETA_ORF,
314
348
  ALPHA_ORF,
@@ -316,13 +350,12 @@ ORGANIC_RF_PARAMETERS = (
316
350
  SLOPE_ORF,
317
351
  )
318
352
  NON_MEDIA_PARAMETERS = (
353
+ CONTRIBUTION_N,
319
354
  GAMMA_N,
320
355
  XI_N,
321
356
  )
322
357
 
323
358
  KNOTS_PARAMETERS = (KNOT_VALUES,)
324
- MEDIA_PARAMETERS = (ETA_M, BETA_M, ALPHA_M, EC_M, SLOPE_M, ROI_M, MROI_M)
325
- RF_PARAMETERS = (ETA_RF, BETA_RF, ALPHA_RF, EC_RF, SLOPE_RF, ROI_RF, MROI_RF)
326
359
  CONTROL_PARAMETERS = (GAMMA_C, XI_C)
327
360
  SIGMA_PARAMETERS = (SIGMA,)
328
361
  GEO_PARAMETERS = (
@@ -360,10 +393,61 @@ UNSAVED_PARAMETERS = (
360
393
  GAMMA_GN_DEV,
361
394
  TAU_G_EXCL_BASELINE, # Used to derive TAU_G.
362
395
  )
363
- IGNORED_PRIORS = immutabledict.immutabledict({
364
- PAID_MEDIA_PRIOR_TYPE_ROI: (BETA_M, BETA_RF, MROI_M, MROI_RF),
365
- PAID_MEDIA_PRIOR_TYPE_MROI: (BETA_M, BETA_RF, ROI_M, ROI_RF),
366
- PAID_MEDIA_PRIOR_TYPE_COEFFICIENT: (ROI_M, ROI_RF, MROI_M, MROI_RF),
396
+ IGNORED_PRIORS_MEDIA = immutabledict.immutabledict({
397
+ TREATMENT_PRIOR_TYPE_ROI: (
398
+ BETA_M,
399
+ MROI_M,
400
+ CONTRIBUTION_M,
401
+ ),
402
+ TREATMENT_PRIOR_TYPE_MROI: (
403
+ BETA_M,
404
+ ROI_M,
405
+ CONTRIBUTION_M,
406
+ ),
407
+ TREATMENT_PRIOR_TYPE_CONTRIBUTION: (
408
+ BETA_M,
409
+ ROI_M,
410
+ MROI_M,
411
+ ),
412
+ TREATMENT_PRIOR_TYPE_COEFFICIENT: (
413
+ ROI_M,
414
+ MROI_M,
415
+ CONTRIBUTION_M,
416
+ ),
417
+ })
418
+ IGNORED_PRIORS_RF = immutabledict.immutabledict({
419
+ TREATMENT_PRIOR_TYPE_ROI: (
420
+ BETA_RF,
421
+ MROI_RF,
422
+ CONTRIBUTION_RF,
423
+ ),
424
+ TREATMENT_PRIOR_TYPE_MROI: (
425
+ BETA_RF,
426
+ ROI_RF,
427
+ CONTRIBUTION_RF,
428
+ ),
429
+ TREATMENT_PRIOR_TYPE_CONTRIBUTION: (
430
+ BETA_RF,
431
+ ROI_RF,
432
+ MROI_RF,
433
+ ),
434
+ TREATMENT_PRIOR_TYPE_COEFFICIENT: (
435
+ ROI_RF,
436
+ MROI_RF,
437
+ CONTRIBUTION_RF,
438
+ ),
439
+ })
440
+ IGNORED_PRIORS_ORGANIC_MEDIA = immutabledict.immutabledict({
441
+ TREATMENT_PRIOR_TYPE_CONTRIBUTION: (BETA_OM,),
442
+ TREATMENT_PRIOR_TYPE_COEFFICIENT: (CONTRIBUTION_OM,),
443
+ })
444
+ IGNORED_PRIORS_ORGANIC_RF = immutabledict.immutabledict({
445
+ TREATMENT_PRIOR_TYPE_CONTRIBUTION: (BETA_ORF,),
446
+ TREATMENT_PRIOR_TYPE_COEFFICIENT: (CONTRIBUTION_ORF,),
447
+ })
448
+ IGNORED_PRIORS_NON_MEDIA_TREATMENTS = immutabledict.immutabledict({
449
+ TREATMENT_PRIOR_TYPE_CONTRIBUTION: (GAMMA_N,),
450
+ TREATMENT_PRIOR_TYPE_COEFFICIENT: (CONTRIBUTION_N,),
367
451
  })
368
452
 
369
453
  # Inference data dimensions.
@@ -616,7 +700,7 @@ CARD_STATS = 'stats'
616
700
  # VegaLite common params.
617
701
  VEGALITE_FACET_DEFAULT_WIDTH = 400
618
702
  VEGALITE_FACET_LARGE_WIDTH = 500
619
- VEGALITE_FACET_EXTRA_LARGE_WIDTH = 900
703
+ VEGALITE_FACET_EXTRA_LARGE_WIDTH = 700
620
704
 
621
705
  # Time Granularity Constants
622
706
  WEEKLY = 'weekly'
meridian/data/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2024 The Meridian Authors.
1
+ # Copyright 2025 The Meridian Authors.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2024 The Meridian Authors.
1
+ # Copyright 2025 The Meridian Authors.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.