About aggregation Query count Mismatch for lesser Records

Hello Guys, I have 100,000 records in an index. I am using a filter which reduces the record count to 2077, When I use aggregation on field along with filter( 2077 records) the result deviates.( Expected : 6 , Actual : 4 ).

Query:

"aggs": {
    "person_name": {
      "terms": {
        "field": "name.keyword",
        "size": 5,
        "show_term_doc_count_error": true
      }
    }
  }

The response shows "doc_count_error_upper_bound": 9 , Why it so high for such small records and in single instance ( not cluster ). And is there any work around?.
Please provide some suggestions.
Thanks,

We have a good explanation of this here. Basically, it's an upper bound that's is calculated based on what is returned by each shard.