I believe I have found the issue causing our low self service %, so posting here again in case it can help someone else.
Using browser developer tools, I pulled the JSON response from the Interactions view for a single day and searched on selfserved to count out how many interactions were marked with "selfServed": true, then I read through the transcript on each chat. When the engineer from our Genesys partner developed our digital bot flows, they used a Card Carousel to display the top 3 FAQ for each bot. So if I was on the Mesa Fire website and opened the bot, it might show something like this with the most common questions asked on that site:

If the customer doesn't interact with the bot, that appears to be marked as a negative interaction. Which, ok, I guess I understand that really doesn't fit the criteria of "self served". The bigger problem for us is that if the customer selects one of the card carousel buttons but never types out a query, that is also considered a negative interaction. That is majority of our customers, and why we use the FAQ. So moving forward if I want to display these types of interactions as positive, I will need to rethink and then re-engineer all of our bot flows.

JSON Response from v2/analytics/conversations/details/query:

------------------------------
Nicole VanWie
State of Arizona - City of Mesa
------------------------------