How to Calculate the Appeal Values in TheaterDays

The appeal values of cards in TheaterDays can be calculated by the method described in this page.

Calculation Method


The calculation requires the following 3 parameters:

Base Appeal Value

The base appeal value V_0 is calculated by

V_0 = \left\lfloor \frac{L_{\mathrm{max}}^+ - 10}{2L_{\mathrm{max}}^+} V_{\mathrm{max}}^+ \right\rceil,

where \lfloor\,\cdot\,\rceil denotes the rounding function (rounding half up).

Appeal value increase per a Lv

The appeal value increase per a Lv before awakening \Delta V^- is calculated by

\Delta V^- = \frac{1}{2L^+_{\mathrm{max}}} V^+_{\mathrm{max}} .

The appeal value increase per a Lv after awakening \Delta V^+ is calculated by

\begin{align*}\Delta V^+ &= \frac{L^+_{\mathrm{max}} + 10}{L^+_{\mathrm{max}}} \Delta V^- \\ &= \frac{L^+_{\mathrm{max}} + 10}{2{L^+_{\mathrm{max}}}^2} V^+_{\mathrm{max}}.\end{align*}

Appeal Value

Let the current Lv be L and the master rank be M. The appeal value V is calculated by

V = V_0 + \left\lfloor L \Delta V \right\rceil + M V_{\mathrm{master}}.

Proof that the calculated maximum appeal value equals to V^+_{\mathrm{max}}

Let the calculated appeal value at the maximum Lv after awakening be \hat{V}. Then, \hat{V} can be expanded as

\begin{align*} \hat{V} &= V_0 + \left\lfloor L_{\mathrm{max}}^+ \Delta V^+ \right\rceil \\ &= \left\lfloor \frac{L_{\mathrm{max}}^+ - 10}{2L_{\mathrm{max}}^+} V_{\mathrm{max}}^+ \right\rceil + \left\lfloor L_{\mathrm{max}}^+ \frac{L^+_{\mathrm{max}} + 10}{2{L^+_{\mathrm{max}}}^2} V^+_{\mathrm{max}}\right\rceil \\ &= \left\lfloor \frac{L_{\mathrm{max}}^+ - 10}{2L_{\mathrm{max}}^+} V_{\mathrm{max}}^+ \right\rceil + \left\lfloor \frac{L^+_{\mathrm{max}} + 10}{2L^+_{\mathrm{max}}} V^+_{\mathrm{max}}\right\rceil. \end{align*}

Here, for any real number x, we have x - 0.5 < \lfloor x \rceil \leq x + 0.5. Therefore, the following inequality holds for \hat{V}.

\left(\frac{L_{\mathrm{max}}^+ - 10}{2L_{\mathrm{max}}^+} V_{\mathrm{max}}^+ - 0.5\right) + \left(\frac{L^+_{\mathrm{max}} + 10}{2L^+_{\mathrm{max}}} V^+_{\mathrm{max}} - 0.5\right) < \hat{V} \leq \left(\frac{L_{\mathrm{max}}^+ - 10}{2L_{\mathrm{max}}^+} V_{\mathrm{max}}^+ + 0.5\right) + \left(\frac{L^+_{\mathrm{max}} + 10}{2L^+_{\mathrm{max}}} V^+_{\mathrm{max}} + 0.5\right)

That is,

V^+_{\mathrm{max}} - 1 < \hat{V} \leq V^+_{\mathrm{max}} + 1.

Here, V^+_{\mathrm{max}} and \hat{V} are integers, so \hat{V} \neq V^+_{\mathrm{max}} holds only when \hat{V} = V^+_{\mathrm{max}}+1.

For \hat{V} = V^+_{\mathrm{max}}+1 to hold, the following 2 equations must hold.

\begin{align*} \frac{L_{\mathrm{max}}^+ - 10}{2L_{\mathrm{max}}^+} V_{\mathrm{max}}^+ - \left\lfloor \frac{L_{\mathrm{max}}^+ - 10}{2L_{\mathrm{max}}^+} V_{\mathrm{max}}^+ \right\rfloor &= 0.5,\,\text{and} \\ \frac{L_{\mathrm{max}}^+ + 10}{2L_{\mathrm{max}}^+} V_{\mathrm{max}}^+ - \left\lfloor \frac{L_{\mathrm{max}}^+ + 10}{2L_{\mathrm{max}}^+} V_{\mathrm{max}}^+ \right\rfloor &= 0.5, \end{align*}

where \lfloor\,\cdot\,\rfloor denotes the floor function.

In this case, the denominators after reduction of \frac{L_{\mathrm{max}}^+ - 10}{2L_{\mathrm{max}}^+} and \frac{L_{\mathrm{max}}^+ + 10}{2L_{\mathrm{max}}^+} must be even, but L_{\mathrm{max}}^+ can only take the values 30, 50, 70, or 90, so this does not hold.

Therefore, by contradiction, \hat{V} = V^+_{\mathrm{max}} is proved.


The following is an example of the calculation for the vocal appeal value of “ロマンティックランド 徳川まつり” (ID: 278).

The parameters are as follows:

Therefore, the base value and the increase per a Lv can be calculated as follows:

\begin{align*} V_0 &= \left\lfloor \frac{90 - 10}{2 \times 90} \times 4547 \right\rceil = 2021, \\ \Delta V^- &= \frac{1}{2 \times 90} \times 4547 = 25.2611\ldots,\,\text{and} \\ \Delta V^+ &= \frac{90 + 10}{90} \times 25.261 = 28.0679\ldots . \end{align*}

For example, the appeal value V at Lv. 40 with master rank 5 when awakened is calculated as follows:

\begin{align*}V &= 2021 + \lfloor 28.0679 \times 40 \rceil + 136 \times 5\\&= 2021 + 1123 + 680\\&= 3824.\end{align*}