# Inconsistent future\_t for different models in expected\_probability\_alive

**URL:** <https://discourse.pymc.io/t/inconsistent-future-t-for-different-models-in-expected-probability-alive/17085>\
**Category:** v5\
**Created:** [June 9, 2025, 6:33am UTC](https://discourse.pymc.io/t/inconsistent-future-t-for-different-models-in-expected-probability-alive/17085 "2025-06-09T06:33:38Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![lowkey](https://avatars.discourse-cdn.com/v4/letter/l/b9bd4f/32.png) [@lowkey](https://discourse.pymc.io/u/lowkey)\
**Post date:** [June 9, 2025, 6:33am UTC](https://discourse.pymc.io/t/inconsistent-future-t-for-different-models-in-expected-probability-alive/17085/1 "2025-06-09T06:33:38Z")

</div>

I was exploring to create wrappers for the different models, specifically:

- BG / NBD
- Pareto / NBD
- BG / BB

and while going through the documentation & source code, I found that there’s an inconsistency in future\_t for the different models in the `expected_probability_alive` method.

**Pareto/NBD:** Handles future\_t internally if not specified - creates a column, and adds it to the existing customers ‘T’

**BG/NBD:** Does not take a future\_t argument, instead it defaults to the specified T (which is again, the immediate probability alive) but the catch is, to find future\_t at a further interval, we have to add the t required to the T.

**BG/BB:** Takes a future\_t argument (and does not have a fallback defaulting to 0 like Pareto/NBD), and adds the future\_t as mentioned.

I wanted to understand if this was just a difference in the code, or if there was a mathematical reason for doing so.

Thanks in advance,  
Lowkey.

---

<div class="post-metadata">

**Author:** ![ricardoV94](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.pymc.io/ricardov94/32/5775_2.png) [@ricardoV94](https://discourse.pymc.io/u/ricardoV94)\
**Post date:** [June 9, 2025, 6:36am UTC](https://discourse.pymc.io/t/inconsistent-future-t-for-different-models-in-expected-probability-alive/17085/2 "2025-06-09T06:36:50Z")

</div>

CC @ColtAllen

---

<div class="post-metadata">

**Author:** ![ColtAllen](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.pymc.io/coltallen/32/8096_2.png) [@ColtAllen](https://discourse.pymc.io/u/ColtAllen)\
**Post date:** [June 9, 2025, 1:54pm UTC](https://discourse.pymc.io/t/inconsistent-future-t-for-different-models-in-expected-probability-alive/17085/3 "2025-06-09T13:54:36Z")

</div>

Hey @lowkey,

It’s mathematical. The `expected_probability_alive` methods in Pareto/NBD and BG/BB are both formulated with the option of specifying future time periods in their respective research, but in the case of BG/NBD, the dropout potential is akin to a coin-toss at every purchase opportunity. In this sense, it’s not really a function of time.

---

<div class="post-metadata">

**Author:** ![lowkey](https://avatars.discourse-cdn.com/v4/letter/l/b9bd4f/32.png) [@lowkey](https://discourse.pymc.io/u/lowkey)\
**Post date:** [June 9, 2025, 2:53pm UTC](https://discourse.pymc.io/t/inconsistent-future-t-for-different-models-in-expected-probability-alive/17085/4 "2025-06-09T14:53:43Z")

</div>

That makes it more clear.  
Thanks for the response, @ColtAllen !
