Why is BaseScore not 100 on this SearchResult, whereas it is 100 when using Pretranslate task

I have a question about SearchSegment() function of the TranslationMemoryApi. I am noticing that when I am using the Pretranslate batch task with the RunAutomaticTask() method I am getting 96% match score for a given segment, but when I am querying the TM explicitly with this particular segment (screenshot below) using the same TM settings, thresholds etc., I get back a SearchResult with a BaseScore of 45, for some reason, and then a -4 penalty. The -4 penalty is reasonable given the tags/locked content in the source segment, and thus the 100-4 = 96% score that I see using Pretranslate(). But why am I getting back a result with a non 100 BaseScore when I use the SearchSegment() function? Normally, I am getting back the same results, but now I got other TMs to work with and I observed this discrepancy.

What is really the meaning of BaseScore and what can influence it?

Any thoughts?