23000 points later, and hey, we’ve got something semi-conclusive.

Remember when I gave the Demystifying the Math presentation on True Hit and called it the bastard child of a logistic curve and Fomortiis? The new system used in Fates is what you would get if you bred Fomortiis with Anankos and paired off the spawn with a logistic curve. Okay, maybe not, but it’s still a pain. Long post to follow.

True Hit as we know it is, to 99.999999% confidence, dead. That version used two random numbers between 0 and 99, “A” and “B”, averaged them, and compared them to the displayed value to get a result. This led to 0.03% chance at Hit = 1, with a solution set of (0,0), (0,1), and (1,0) out of 10000 possibilities. SF has a table about it.

Some background as to why we know it’s dead: in statistics, we have something called confidence intervals (CIs), which are the bounds between which we can expect the system to actually be based on what we measure. These are normally based around the normal distribution curve, and since this is a binomial system (i.e., this is a system with two outcomes per trial, hit or miss), the same applies here. I used a 99% confidence interval, meaning that the system should fall within the bounds 99% of the time. This means that when testing 99 different values, we should see possibly 1, maybe 2 “actual” values outside the confidence interval for any given model.

Suffice to say, the very first value we collected a significant number of points for (75) quickly fell outside of the confidence interval for an unweighted 2-RN model (A+B)/2. As trials continued, so did others, until we ended with a solid six points outside of the interval, a likelihood too small to count if True Hit stayed the same.

That’s just for the upper range. In the lower range, repeated trials put the success rate very close to the actual displayed hit value – a value of 1 corresponded to 1% success rate, a value of 4 corresponded to 4% success rate, etc.

So what is it, then?

Our best predictor is a new, hybridized model that splits at 50. Below 50, it uses a 1RN predictor, and at or above 50 follows the equation (3A+B)/4. Here’s the graph showing the measured results versus the model.

The oscillations are more pronounced where there are fewer data points, but in general, the model fits, appropriately over- and underestimates about equally, and has a low overall error (with R^2 close to 0.98 in the upper region).

Is this definitive? No, not quite. The hope is for measured data to exhibit a decaying oscillation around the model until it fits near perfectly, but there is still room for error here. However, this is our simplest and best-fitting low-integer model made up of some combination of (X*A + B*Y)/(X+Y), where X and Y are constant integers and A and B are randomly generated numbers from 0 to 99. It is also the only model put forward that hasn’t been eliminated by some method, which include:

1-RN



Unweighted 2-RN (”True Hit” from FE6-13)

Dynamic 1-RN (where misses “seed” future hits)

Weighted (2A+B)/3, (4A+B)/5, and (3A+2B)/5



It also, even in the event that it is not the system used, adequately predicts the actual hit chance to within 1%, well within decision-making thresholds, and so can be used to make informed gameplay decisions. If another model produces a better fit, I’ll make an update, but in the meantime, this is the one that I’m using and propagating. For your mathematical convenience, I put the new hit chances according to the (3A+B)/4 model below the sign-off. Hope you find this info useful!

To clarify: the “within 1%” statement means that at values expected to be high-variance, such as the mid-60s, the average error is approximately at or less than 1% for values with a large number of data points. It is not a guarantee that the data reflects the true system to 99% accuracy.

-Silas

Displayed vs Actual

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50 – 50.5

51 – 51.83

52 – 53.17

53 – 54.5

54 – 55.83

55 – 57.17

56 – 58.5

57 – 59.83

58 – 61.17

59 – 62.5

60 – 63.83

61 – 65.17

62 – 66.5

63 – 67.83

64 – 69.17

65 – 70.5

66 – 71.83

67 – 73.17

68 – 74.5

69 – 75.83

70 – 77.17

71 – 78.5

72 – 79.83

73 – 81.17

74 – 82.5

75 – 83.83

76 – 85.12

77 – 86.35

78 – 87.53

79 – 88.66

80 – 89.73

81 – 90.75

82 – 91.72

83 – 92.63

84 – 93.49

85 – 94.3

86 – 95.05

87 – 95.75

88 – 96.4

89 – 96.99

90 – 97.53

91 – 98.02

92 – 98.45

93 – 98.83

94 – 99.16

95 – 99.43

96 – 99.65

97 – 99.82

98 – 99.93

99 – 99.99



