We can use Monte Carlo simulations to get a sense of when something will land based on Story points, as described at https://www.scrum.org/resources/blog/monte-carlo-forecasting-scrum

Example This is the example from the blog above

Sprint4678101112
# Days10101010101010
# Points114143116109127153120
Days / Point.087.069.086.091.078.065.083
Backlog size: 510 Naive answer is avg 126 points / sprint.. 510/126 = 4.04 sprints = 40.47 days.
import numpy as np
import random
days_per_point = [.087, .069, .086, .091, .078, .065, .083]
backlog_size = 510
 
def days_to_complete_backlog(backlog_size):
	duration = 0
	for i in range(backlog_size):
		duration += random.choice(days_per_point)
	return duration
	
num_iterations = 100
predictions = [days_to_complete_backlog(backlog_size) for _ in range(num_iterations)]
 
import matplotlib.pyplot as plt  
plt.hist(predictions, bins='auto')  # arguments are passed to np.histogram
plt.title("Probability of hitting the deadline")
plt.show()