Mojo board - How to calculate battery percentage left

I have a question on calculating the battery percent used for the mojo board.

I am using it with a 3.7V 2000mAh lipo battery

I take a reading every 15 minutes ({“req”:“card.power”}) and it has been very consistent, around 20-22 milliamps, then I reset that value: (req, “reset”, true)

Here is an example of the latest reading:
“batterypercent”: 98.88758103,
“chargemilliamps”: 22.2483794,
“voltage”: 3.552389526367187

I want to calculate a battery percentage value and found two ways people have done it.

  1. Based on a table of fixed voltage readings:

float voltagePercentageTable[21][2] = {
{4200, 100}, {4150, 95}, {4110, 90}, {4080, 85}, {4040, 80},
{4010, 75}, {3970, 70}, {3930, 65}, {3890, 60}, {3850, 55},
{3810, 50}, {3760, 45}, {3710, 40}, {3660, 35}, {3610, 30},
{3550, 25}, {3490, 20}, {3430, 15}, {3370, 10}, {3320, 5},
{3000, 0}
}

  1. A calculation of mAh based on battery size: (from what I read this is more accurate to predict capacity left in the battery)

const double TOTAL_BATTERY_CAPACITY = 2000.0;
double remaining_mAh = TOTAL_BATTERY_CAPACITY - consumed_mAh;
double percentage = (remaining_mAh / TOTAL_BATTERY_CAPACITY) * 100.0;

Since I am taking a reading every 15 mins and resetting it, I assumed I need to multiply that by 4 to get an hourly discharge rate of 88.99 mAh ?

e.g. “chargemilliamps”: 22.2483794 * 4 = 88.9935176 mAh
2000 - 88.99 = 1,911
(1911 /2000) * 100 = 95.5 %

BUT at the current voltage of 3.55v that percentage left on the battery seems high to me ? The voltage table seems a little more realistic at around 25%
thoughts ?