[Question]
  [
You'll be given the name of one of the 20 biggest objects in the Solar System. Your task is to return an approximation of its radius, expressed in kilometers.
This is a [code-challenge](/questions/tagged/code-challenge "show questions tagged 'code-challenge'") where your score consists of the length of your code (in bytes) multiplied by a penalty ratio \$\ge 1\$, based on your worst approximation. Therefore, **the lowest score wins**.
*"As we travel the universe" is the last line of the song [Planet Caravan by Black Sabbath](https://en.wikipedia.org/wiki/Planet_Caravan), also later [covered by Pantera](https://youtu.be/kWChhdIgT6Q).*
## The Solar System objects
Source: [Wikipedia](https://en.wikipedia.org/wiki/List_of_Solar_System_objects_by_size#List_of_objects_by_radius)
NB: The rank is given for information only. The input is the **name** of the object.
```
  n | Object   | Radius (km)
----+----------+-------------
  1 | Sun      |   696342
  2 | Jupiter  |    69911
  3 | Saturn   |    58232
  4 | Uranus   |    25362
  5 | Neptune  |    24622
  6 | Earth    |     6371
  7 | Venus    |     6052
  8 | Mars     |     3390
  9 | Ganymede |     2634
 10 | Titan    |     2575
 11 | Mercury  |     2440
 12 | Callisto |     2410
 13 | Io       |     1822
 14 | Moon     |     1737
 15 | Europa   |     1561
 16 | Triton   |     1353
 17 | Pluto    |     1186
 18 | Eris     |     1163
 19 | Haumea   |      816
 20 | Titania  |      788
```
Or as copy-paste friendly lists:
```
'Sun', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Earth', 'Venus', 'Mars', 'Ganymede', 'Titan', 'Mercury', 'Callisto', 'Io', 'Moon', 'Europa', 'Triton', 'Pluto', 'Eris', 'Haumea', 'Titania'
696342, 69911, 58232, 25362, 24622, 6371, 6052, 3390, 2634, 2575, 2440, 2410, 1822, 1737, 1561, 1353, 1186, 1163, 816, 788
```
## Your score
Let \$R\_n\$ be the expected radius of the \$n^{th}\$ object and let \$A\_n\$ be the answer of your program for this object.
Then your score is defined as:
$$S=\left\lceil L\times\max\_{1\le i \le20}\left({\max\left(\frac{A\_i}{R\_i},\frac{R\_i}{A\_i}\right)^2}\right)\right\rceil$$
where \$L\$ is the length of your code in bytes.
*Example:*
If the size of your code is \$100\$ bytes and your worst approximation is on the Moon with an estimated radius of \$1000\$ km instead of \$1737\$ km, then your score would be:
$$S=\left\lceil 100\times{\left(\frac{1737}{1000}\right)^2}\right\rceil=302$$
The lower, the better.
Recommended header for your answer:
```
Language, 100 bytes, score = 302
```
You can use [this script](https://tio.run/##ZVNhT9swEP3eX3GqELUhS5OmSdMxmNDUbkyUTS3bl1IJqzHgKXUyx0GtoH9qP2F/rLtzR8fggy@553fvni/OD3EvqrlRpX2ji0xuNmM4hum0Oal100v6SdTtzLxp83NdKisNQf0wJGQibG2QE6edyFG@GaHrqul14ihxwIUsba0lIt2k45CBMPYONaKek/guXUESxG53JAxmUdQPKPso9GohMypHE4RcKis06fdiR5dmXpsVyXddxQeR56qyBSGhQ87wPUy3vUdFgcVhL@o5J7UpSoF5nDgrl0ZZtx/FEeVf85qEwjBNHN2oirLEbX4S9UJicRomO18K816azmZHjcb03APf909hhrM08metjGStm6rFfSNFNlS5nKz0nLXambxvVzZTGrdsMbFG6VvG/arMlWWtK4IXomQajk/gUPOjxk1hFsKirIM0Fg3VUmasw/1SZAOdsTBA2kIskROgl7GPJQMxv2NsqsVCemBEpupq5oHmpPHQAJgXuipy6efFLSPSk1afwyE04S2uQ9i2ZgaFS/xScpgXmJ5O9YwTjanqQlwww@HxEQy8w/bwHpgRVhVYEkIbAg@ag/H4y7jJSbOUWuR2BU8U9qzLSNg7PPqSbd2ia9ek2YZXJKVfkvjvXyhHxF37f3roY0d3TwI4HBxAh@/GGXOOU4S/1k6A5rm/D2w7V4d6UOZCS/ctcGRIX@NqqBscxFBp/FuIjYZeDvj6So/E0oeXx997QP4zB2s6JqLbNutrZ@g/ocm8MBIr51LlbO/hfA3L1yrcSbvzO945HNBxuBNcN2ReyVcW8ead6XuRqwyvb1XnFq8ukjebMAgaSRIH9Egpxv0eRvwlKXZjwrcwhqhLYLIL0VMIUwrEC6kidFiHAumnXVxh8Ac) to compute your score (first line = code length, next 20 lines = your outputs, from Sun to Titania).
## Rules
* You may take the name of the object in either full lowercase, full uppercase or exactly as described above (title case). Other mixed cases are not allowed.
* The input is guaranteed to be one of the 20 possible names.
* You may return either integers or floats. In both cases, the penalty must be computed directly with these values (not rounded values in case of floats).
* You must return positive values.
* Empty programs are not allowed.
  
[Answer]
# [PowerShell](https://github.com/TryItOnline/TioSetup/wiki/Powershell), 3 bytes, score [3637](https://tio.run/##vVPRTtswFH3PV1xFiNqQpU1D0nQMJjS1GxNlU8v2UiphJQY8uU7mOKgV9Kf2Cfux7tpdGQPtdZXc9h6fe@7xifON3bE616Iyr1RZ8PV6DEcwnfqTRvlB2k/jg@4smPofm0oYri3UjyKLTJhpNHKSrBs7yhfNVFP7QTeJUwec88o0iiNykHYdMmDa3KJG3HMSX7lrSDuJ2x0xjVUc9zu2es/Ucs4L244mLHIhDFNWv5c4Otd5o5dW/sB1vGNSitqUFokccor/o2wze1SW2Bz14p5z0uiyYlgnqbNyoYVx@3ES2/qzbKxQFGWpo2tR2yp1mx9YM@fYnEXpoy@BdS/LZrNDz5ueBRCG4QnMMEvNvzdCc9K6rls01JwVQyH5ZKly0moX/K5dm0Io3DLlxGihbggN60oKQ1qXFp6ziig4OoZ9RQ@9OVugZgeHjMPrUg9YfkvIVLE5D0CzQjT1LABFLf/eA8hLVZeSh7K8IZYUVqwYqIL0KeyDD69x7QMhGjUrTJ8PZckMOZmqGXUMn247oo4FiKjP2TnRFB4eQMMbtAJvgWhmRIkaEbShE4A/GI8/jX1q9SuumDRL2FKImzhi5hZPtiAbz@j92bjM1W14whbqn@yeq@nPHzjAdWyn/ZmDzh673a8FKOztQddGPxQLXpCEUswYfps9Bpv27i6QTeoODaCSTHGDtQ0U6StcnrjGaIZC4Uti2Zje8/ivLtWILUJ4HsjOPfKfOFgBPldEN2NWV87QX0KTvNQcO3MuJNm5P1vB4qUKddLu/I53Bnv2ONQJrjwua/7CIl64U3XHpCjw1taNNHhjkbxex163g5////0L "JavaScript (Node.js) ‚Äì Try It Online")
```
2e4
```
[Try it online!](https://tio.run/##K8gvTy0qzkjNyfn/3yjV5P///@rBpXnqAA "PowerShell ‚Äì Try It Online")
Very naive, boring, implementation; just returns `20000` no matter the input. Experimentation with things like special-casing the sun or using floating-point values instead of `2` all resulted in worse scores because the length of code increased enough to offset any size-comparison gains.
[Answer]
# [Jelly](https://github.com/DennisMitchell/jelly), 34 bytes, [score = 37](https://tio.run/##jVRdb9s2FH3XryCMopESj@G3yHXtUBTJ1iHJBrvbi2ughM00HGRKo6TAQeo/1Z/QP5Zd0mvWJXnYgyDdw3PPPbzi5Z/22var6Lvhu9Cu3d3dDL1Ei8VkPobJVBnFBVtOF5Nfxs4PLibIUJqQuR3GCBypGc@U36MNYz@ZMslVBi5cN4zBASIUy8iJjcMVaPA6S/zhcoIiMq@e2wgR54ak6CcbbjZundLBRELe@cGGpF/LTHdxNcabJC9yxhvbNL4f2oTQjLyFb6r3tc/bFpJpzevsZIxtZyGWKlt5F/2Q17nkKf6tGZMQpVplevR9ilRe/NmOGwfJmqp7Xx7iWuvl8kVRLM6mCGP8Gi2hl9H9NfroyoPL/qDC0dn1qW/c/CasyoPjtbs@7oe1D7A0tPMh@vCxrHDfNX4oD94neGO7MqCXr9BRqF4Ul23c2AFkMxQg6dRv3bpkFe7s@iSsS0qAtrFb4BDwMsOQcmJXV2W5CHbjpijatR/75RSFKmncFgit2tC3jcNN@7FMpK9apkJHaIK@h@cI7UuXEYQ7@FPutGkhfL0IyyrRSt9f2IsyVujTJxTRD1Ae/YjKaAffQgpFx4hM0eRkNvt1NqmSZueCbYYb9JVSflPl3A5XsPVtuXcLrnORyTF6RPLhIan68hnkEvG@/L964OOent8JqNDhIWLVfTtlVUEX0T/WXqHUz@fPUbnva0anqGtscPlfQMuAvoOn8JfQiFMfYFoSGww9bPCH9@HcbjF6uP1nt8D/xsEubRPQfZndh2zoP0LzVRsdZK6cb8pnt2c7tH2sUmXpvP/MO0OHaTtVFtwVrundI4tw8t6Ga9v4NRzffmwGOLpAvrvjolBakZpgpmFUKNdEFXBLSI6VkRIibjgrYEKVxITXCq4LYbSQBQwp5ZgayeuaC03ME4gSTONa1lwRzpVQhdRCYM6ErjkgVIiCM6OxUYYwIw0jioqC1UxhAd8aZpmzGuozUWssQU4aJbTg/wOAQWcY7goCEtJIplhBlWFYG1CEPSktAJEcqhu4ogzXmnBNCwrfmGhhiJZcyNqYgsKlgiFBUiMkIUo9gdTa4FpAzxRkCMGfQP4G)
```
O·∏å‚Äú‚Å∏|5/!‚Äò%∆í·ªã‚ÄúRNFLOJMjs‚ÅΩ\u[USJ‚Äò1.1*
```
Input is in uppercase, output is the power of 1.1 with the least error.
[Try it online!](https://tio.run/##JYuhbgJBEED9fAUVmIoSBB8wgQH2cjt7mZ1pcmltDcE1FU0Qd5iKolAIPqESQUJQJP2P2x/ZHql87@Wt3tbrz5xDd96l5pja82YyekjNYfi77y7fvRKel6Hwq/fUXl8/XiwWfR0/jR9zdzkNbl9p@zOoc47GUFjllAQiqgmDCbJFYKrUmIBQdAnPdHceJcICufY0I1CnyOBJpiY1TLEsXdQALoAPgYFMQoWg4rSnqrS@kbgISzRP@L87/AM "Jelly ‚Äì Try It Online")
### How it works
```
O·∏å‚Äú‚Å∏|5/!‚Äò%∆í·ªã‚ÄúRNFLOJMjs‚ÅΩ\u[USJ‚Äò1.1*  Main link. Argument: s (string)
O                                   Ordinal; map the char in s to their code points.
                                        "ERIS" -> [69,82,73,83]
 ·∏å                                  Undecimal; treat the result as an array of digits
                                    in base 10 and convert it to integer.
                                        [69,82,73,83] -> 69000+8200+730+83 = 78013
  ‚Äú‚Å∏|5/!‚Äò                           Literal; yield [136, 124, 53, 47, 33].
         %∆í                         Fold the array by modulus, using the computed
                                    integer as initial value.
                                        78013 -> 78013%136%124%53%47%33 = 32
            ‚ÄúRNFLOJMjs‚ÅΩ\u[USJ‚Äò      Literal; yield [82, 78, 70, 76, 79, 74, 77, ...
                                    106, 115, 141, 92, 117, 91, 85, 83, 74].
           ·ªã                        Retrieve the element from the array to the right,
                                    at the index to the left.
                                    Indexing is 1-based and modular.
                                        32 = 16 (mod 16) -> 'J' = 74
                              1.1*  Raise 1.1 to the computed power.
                                        74 = 1.1**74 = 1156.268519450066
```
[Answer]
# [Java (JDK)](http://jdk.java.net/), 90 bytes, [score = 97](https://tio.run/##dVTRbtpAEHznK1ZWFO4S19gYjGmaVFUFbaqQVpD2hSDlhC/JVebsns8RKOGn@gn9Mbq3lDRN1Aev2dnZ2fFy9ndxJ6q5UaV9pYtMbjZjOIbp1JvU2vOTfhJ32jN/6n2qS2WlcVA/ihwyEbY2yOmm7ZgoX43QdeX57W6cEHAuS1triUgnaRMyEMbeokbcI4lvkhqSsEvVkTCYxXE/dNkHoVcLmbl2NOGQC2WFdvq9LtGlmddm5eQ71PFe5LmqbOGQiJBT/B2l29mjosDmqBf3yEltilJg3k3IyoVRlupxN3b5l7x2QlGUJkQ3qnJZQsWPol5IbE6j5NGXwryXprPZUaMxPfMhCIJ3MMNdGvmjVkay5nXV5IGRIhuqXE5Wes6arUzetSqbKY0lW0ysUfqG8aAqc2VZ89LBC1EyDccncKj5UWMhlqgZ4pBxcF2YgZjfMjbVYiF9MCJTdTXzQXPHv28AzAtdFbkM8uKGOVJQimygM9bncAgevMbrEBgzqFni9uUwL4Rl76Z6xonh8V1HFDqAqepcnDPD4eEBDLxBK/AWmBFWFagRQQtCH7zBePx57HGnX0otcruCHYXRxJGwt/hkS7b1jN6fjUspb8ETttL/Zfco579@4gDq2E37OwedPXbT3QEcDg6g7VY/VEuZsS7nuGP4Y/YE3Lb394Ftt06oD2UutLSYu4UifY1XQ13jaoZK40vi2Li95@u/utQjsQzg@UL27pH/xMEa8H9FdDtmfUWG/hGazAsjsXMuVc727s/WsHypwkmanp94Z3DgHoeT4Loh80q@sIgH7lTfiVxleGqrOrd4YpG82fTDhvsUhO7Wx4jvPEZ80V3sJA6nYoghJjChOpV3IUpd6LngqhFh7V1It9dv)
```
s->("√ΩCƒÑ (·¨∫!ÀÇF…ç".charAt(s.substring(2).chars().sum()%96%49%25)-7)*100
```
[Try it online!](https://tio.run/##lVFNa1QxFF0@mE0XRbSrXh88SErmMS1@0I4tlDKtFUaFGd2Iiztv8tqMeUlIbgYGmY106z/xFwiudCP@Cn/JGN/UTRXRVbjn3JNzcjLDOXZn0zcr1TjrCWZpLiMpXdbRVKSsKXf6HRcnWlVQaQwBhqgMvO0AXKOBkNIxt2oKTeLYiLwyF69eA/qLwNtVgLE9N3R6feej9coR1HC4Ct0jlm/d/vxp887Jl6vN7BZss@3vHz5uZHezb@82TrPs6/u8rC7RHxMLZYiT0KrZHm/RwHgCG8aL/QfFvf1i7z7vPuQ7u73eqt9az9FDJbUMpFA/m8xkRQEOIR9FI55Ep0h6MUKK3ogXHk0M4ql0FI0UA/R0KV7Kn9gwOYkzNItGTqUYK0IjhtJX0S/ECWqtAllxbsXQWiMG0VuHYuwVpem5jokbeBXEY4yNxLVcYV4GpxWxXOS832nD1tazPwQ@@O0Fv4oFGC0Cyaa0kUqXiqGa5cVuLxxAMS1MLm4qBdQlOqcXxyF9CbvBcr4ubfl/aeDvcdZB/tV32VmufgA "Java (JDK) ‚Äì Try It Online")
* This entry uses both undisplayable and multi-byte Unicode characters (but Java accepts them nevertheless). Check the TIO for the accurate code.
* The input must be title-case.
* This code rounds the values to the best multiple-of-100 (sometimes up, sometimes down) so that the last two digits can be skipped when encoded, and the value can then be approximated by multiplying by 100.
* This entry uses various hashes to fit a 25 codepoints string (shortest string I could find).
## Credits
* -48 score (-45 bytes) thanks to [Kevin Cruijssen](https://codegolf.stackexchange.com/users/52210/kevin-cruijssen) by encoding the radiuses (divided by 100) directly in a `String` instead of hardcoding them in an explicit `int` array..
[Answer]
# Wolfram Language ~~114 103 97 88 86~~ 82 bytes. score = ~~114 103 97 89 87~~ 83 points
```
(#&@@EntityValue[Interpreter["AstronomicalObject"]@#,"Radius"]/._String->507)1.61&
```
At least 6 points saved thanks to `Dennis`, several more thanks to `lirtosiast`, and 6 more thanks to `user202729`.
Although Mathematica can fetch solar system data (as well as much additional astronomical data), some minor tweaks are needed, as explained below.
`Interpreter[#,"AstronomicalObject"]&` will return the entity (i.e. the machine computable object) associated with the term represented by `#`.
`EntityValue[AstronomicalObject[],"Radius"]` returns the radius, in miles, of the entity. In the case of "Haumea", the value, 816.27 (i.e. 507\*1.61), is returned.
Multiplication of the radius by `1.61` converts from miles to km. Decimal values, rather than integers, account for much less than 1% error, even in the most extreme case.
`[[1]]` returns the magnitude without the unit, km. This was later changed to `#&@@`, yielding the same result.
[Answer]
# [Python 3](https://docs.python.org/3/), score 95, 95 bytes
```
lambda n:ord("ÿô“¢Ú™Äñ‡®èëÑó‡¥æ·££‡•™‡¶àÊåí·û§?Ã∞“ã??Óç∏€â’âÊÄÆ‹û‡©äÃî"[int(n,35)%87%52%24-1])
```
[Try it online!](https://tio.run/##K6gsycjPM/6fZhvzPycxNyklUSHPKr8oRUPpxsxLiz6tapj2YEX/h4kt0x9s2fdw8eIHS1c9WNbxrGfSw3lL7M9suNRtb/@ud8ftzqudzxrW3Zn3YGXXmSlK0Zl5JRp5OsammqoW5qqmRqpGJrqGsZr/0/KLFPISc1MVMvMUNNSDS/PUdRTUvUoLMktSi0DM4MSS0iKwYGhRYl5pMYjll1pQUpqXCmK6JhaVZIAYYalQSd/EIjDtnphXmZuaAlYVklmSCDbDN7UoubSoEsR0TszJySwuyQexPcGkb34@WJFraVF@QSJYX1FmCUQsIKcUotS1KBNsvEdiaW5qItzwzER1TSsuBYWCIpA/0zRAXtLU/A8A "Python 3 ‚Äì Try It Online")
---
# [Python 3](https://docs.python.org/3/), score 133, 133 bytes
```
lambda n:int(f'00e0{10**18+10**6}10x1h2411j4?00??811i1207wazxmwuvko?mw??xc1ze1ldyujz6zysi4?ob??k9lym6w'[int(n,35)%87%52%24-1::23],36)
```
[Try it online!](https://tio.run/##PZDLTsMwEEX3fIU3VZJSJDtJ0xIJeYEiHlIRUoENsJg2juI2tiPXJg/EtwfZRWxmju7cudJMO5hayWSqbj6mBsSuBCRzLk1YBRgz/E3wfE7Wl65lPwT3pI5TQg4pxZjSNSGcxHjVwdiLzn4dFRUdpf2ejIw05WAPYzYOJ55StaP0eN0MIuuCdxcvF8kymq1Xs2U8i9Mrkudx8rlIsmiqlEYSBENcojDYWhksUPBoW26YdrgFY7UXXzVIe3L0xFpjJXNYgDa1gzf2N9yA9v0O5CBY6V0v3IDP2DC9t3pweAtNw09GOX7wdaOUNxVWqxb8nubmrD039mwtNPfx92AFg/9wDkGUXyDUav/N0J0URdMv "Python 3 ‚Äì Try It Online")
[Answer]
# Powershell, ~~150~~ 141 bytes, score ~~163~~ 153
```
($args|% t*y|?{'Su6963J699S582U253N246Ea63V60Ma33G26Ti25Me24C24I18M17Eu15T13P12E12H8Titani8'-cmatch"$(($y+=$_))(\d+)"}|%{100*$Matches.1})[-1]
```
[Try it online!](https://tio.run/##jZLdbuIwEIXveQorCtuEAsV24oRKaFeqUH@06VaC9qZbVV5wi1chiRxbLQKenXUSE9O79U2c@TznzIymyD@YKFcsTQ/uG5iA7cFzqXgvd10ge5vd9@3ZTJExwXdkPJ6FMXpEIb5HAZlSgp/IKKEYXyMy5yhMGAquUHAL4wRGUwXDOcQPEE0huonnXNKMx2eDxZrKxcpxPc/dnE/cV9/3fi/PfWe/627haNRzk4qzcgj3/vMAvhz2HbdgGU3lRhf3w@sAffqeM1OZA@rTB1V5AfKP6E4VXDLhVEizMYQtmlGpRJ2okW4G26xHQTNVGqR7JBbds0KqjDWCunVk0ZQKuXKaMrQZjqzXEzN6DRqFNiuhoiE1wng8atE1zTZrttRmFUK6sRbVM2wFURiFVpCJhRIbx6AgsIJXNE15KXMjGECLbnMzwhrB@KSvJM8zWyGMcGRbViIvqHNEIbEtzwWXedYiHOIWPaRK5m3xEMbECgp@Mg0Iic26oWrNWi8QQ/J1GpyalkEUx37HBzvQBdv6iVv2XfZZsIVkS7057msTFaxUqdSBb3rb3dIEqeS5jj3r5Vu9XF4m9NMzLy9akT5orxcG@iZ90ij0mo8JdvTmlgvBC/mTZe9yVRXxNpznMyl49u75QxMeANSuuDbWz7zj7y5htFSCDX79@auNwUBzvlZrf2gulUMuWCX9xaoHThQ7zv@8cg7/AA "PowerShell ‚Äì Try It Online")
Test script:
```
$f = {
($args|% t*y|?{'Su6963J699S582U253N246Ea63V60Ma33G26Ti25Me24C24I18M17Eu15T13P12E12H8Titani8'-cmatch"$(($y+=$_))(\d+)"}|%{100*$Matches.1})[-1]
}
$penalty = @(
    ,("Sun"      , 696342)
    ,("Jupiter"  ,  69911)
    ,("Saturn"   ,  58232)
    ,("Uranus"   ,  25362)
    ,("Neptune"  ,  24622)
    ,("Earth"    ,   6371)
    ,("Venus"    ,   6052)
    ,("Mars"     ,   3390)
    ,("Ganymede" ,   2634)
    ,("Titan"    ,   2575)
    ,("Mercury"  ,   2440)
    ,("Callisto" ,   2410)
    ,("Io"       ,   1822)
    ,("Moon"     ,   1737)
    ,("Europa"   ,   1561)
    ,("Triton"   ,   1353)
    ,("Pluto"    ,   1186)
    ,("Eris"     ,   1163)
    ,("Haumea"   ,    816)
    ,("Titania"  ,    788)
) | % {
    $s,$expected = $_
    $result = &$f $s
    $ratio = [Math]::Max($result/$expected, $expected/$result)
    $ratio*$ratio
}
$scriptLength = $f.ToString().Length - 2  # -4 if CRLF mode
$penaltyMax = ($penalty|Measure-Object -Maximum).Maximum
$score = $scriptLength * $penaltyMax
"$score = $scriptLength * $penaltyMax"
```
Output:
```
152.731283431953 = 141 * 1.08320059171598
```
Explanation:
* Names contain letters only, radiuses contain digits and dots. So we can write all the data in a data string and perform a regexp search.
* The script searches for all substrings from left to right and takes the last result found.
* The input must be title-case to reduce the data string.
* The `end of line mode` is LF only.
Example:
```
Titania         Triton         Titan
--------------  -------------  -------------
T       -> 1.3  T      -> 1.3  T      -> 1.3
Ti      -> 2.5  Tr     ->      Ti     -> 2.5
Tit     ->      Tri    ->      Tit    ->
Tita    ->      Trit   ->      Tita   ->
Titan   ->      Triton ->      Titan  ->
Titani  -> .8
Titania ->
Result is .8    Result is 1.3  Result is 2.5
```
---
# Powershell, 178 bytes, score 178
```
($args|% t*y|?{'Su696342J69911S58232U25362N24622Ea6371V6052Ma3390G2634Ti2575Me2440C2410I1822M1737Eu1561T1353P1186E1163H816Titani788'-cmatch"$(($y+=$_))(\d+)"}|%{+$Matches.1})[-1]
```
[Answer]
# Mathematica, 57 bytes, [score](https://tio.run/##dVTtThw3FP0/T2GtojADW@Pvj6ZJFUXQpgJaQdo/m5Vi7ZrgavBsPTMIRHipPEJejF6bkqbsdNEC9/rcc88947l/uivXr1LYDN/Fbu3v70/RS7RYzM7GOJsrq7hgy/li9su4CYNPOWUpzZkzN4wJMNIwXiC/JxfHfjZnkquSOPGbYYweMkKxkjlwabgADq4LxR@@FCgiy@mxSxBxbkmOfnLx5tKvczmIyJl3YXAx82tZ4D6txnST6UWpeOPaNvRDlzO0ZN7C/9Q89D7uOiimmuuiZEzdxkEsVZHyLoWhnHPJc/xbO2YiSo0q8BT6HKly@LMbLz0UG6q@6goQa2OWyxdVtTiaI4zxa7QEL5P/awzJ1zvn/U6Dk3frw9D6s5u4qnf21/5qvx/WIcLR0J0NKcSPdYP7TRuGeud9Tl@6TR3Ry1doLzYvqkt3DZwEmpzi8y4duNVFXS@iu/RzlNw6jP1yjmKT8bcVQqsu9l3rcdt9rDMIb9z6IK5r26A9NEPfw3cP1XUCzg247w/bzg3160VcNgUxax4rKMmJOvQn7qRODfr0CSX0A0hBP6I6uSF0wEHRPiJzNDs4Pf31dNZk/o2Prh1u0COkLh2P3XABk13XD5pB@5N2psT76Bt0iP@L1iVuvnyGBqXisdu/fUDZ1@ryNycatLuLWLb@MFz7dS2bBjxG/4h9hbLbz5@j@sH1kp2jTeuiHyDOhgL8Dr5VOAdrDkOElySjwb2n9n94H4/dNUZPDXl2C/hvFNwheK6QfWhz96EI@g/R2apLHipXPrT1s9ujO3S9zdIU6jJ/wR2h3TxOUwjvKt/2fksiXLi38cq1YQ23th/bAW4sgO/vpa6UlZoQTLY@tMorgWC7/anKbpiqoQreSm0EMZJTTgnTqip7YwJMpCRaC03gGFaBYpLJKq8UOtHTWAUvv5GMWCDWjEkF2mHfALF@CpZUUq4oFUZo0CA5h2GIpNjILRHCaiWMtppqYoSSXLKKc2OxnBoP8Ao0gHCYUmeTQDnFbAorhdLZBWU1gQkZq/KGmzKCUsaosEzAfAwEEWPBCG6x2jaCMsMJFTATo0oKwSVogLWI2cSD0txqS4U2inD4bbmqYG1SLOyWBiWIhn1suIXhwTAYsspLFYspuYJTDUYYpYUyxBpawcIl2EzMJgj8UEM5V0YzwwSrYBkzrLaxVlDFrDRAyZUigLAVbGqLt@US4OHUwo2AWyThIQuQAGt8yl4OT0oRqqXUmjNJDLMVrPgK1voUM7GWESGs0VksV1D2Nw) = ~~62~~ 58
*-4 bytes/score thanks to [lirtosiast](https://codegolf.stackexchange.com/users/39328)!*
```
#&@@WolframAlpha[#<>" size km","Result"]]/._Missing->816&
```
Just does a Wolfram Alpha lookup for the mean radius.
[Answer]
# [Jelly](https://github.com/DennisMitchell/jelly), 28 bytes, [score = 31](https://tio.run/##jVRdb9s2FH3XryCMopESj@G3yHXtUBTJ1iHJBrvbi2ughM00HGRKo6TAQeo/1Z/QP5Zd0mvWJXnYgyDdw3PPPbzi5Z/22var6Lvhu9Cu3d3dDL1Ei8VkPobJVBnFBVtOF5Nfxs4PLibIUJqQuR3GCBypGc@U36MNYz@ZMslVBi5cN4zBASIUy8iJjcMVaPA6S/zhcoIiMq@e2wgR54ak6CcbbjZundLBRELe@cGGpF/LTHdxNcabJC9yxhvbNL4f2oTQjLyFb6r3tc/bFpJpzevsZIxtZyGWKlt5F/2Q17nkKf6tGZMQpVplevR9ilRe/NmOGwfJmqp7Xx7iWuvl8kVRLM6mCGP8Gi2hl9H9NfroyoPL/qDC0dn1qW/c/CasyoPjtbs@7oe1D7A0tPMh@vCxrHDfNX4oD94neGO7MqCXr9BRqF4Ul23c2AFkMxQg6dRv3bpkFe7s@iSsS0qAtrFb4BDwMsOQcmJXV2W5CHbjpijatR/75RSFKmncFgit2tC3jcNN@7FMpK9apkJHaIK@h@cI7UuXEYQ7@FPutGkhfL0IyyrRSt9f2IsyVujTJxTRD1Ae/YjKaAffQgpFx4hM0eRkNvt1NqmSZueCbYYb9JVSflPl3A5XsPVtuXcLrnORyTF6RPLhIan68hnkEvG@/L964OOent8JqNDhIWLVfTtlVUEX0T/WXqHUz@fPUbnva0anqGtscPlfQMuAvoOn8JfQiFMfYFoSGww9bPCH9@HcbjF6uP1nt8D/xsEubRPQfZndh2zoP0LzVRsdZK6cb8pnt2c7tH2sUmXpvP/MO0OHaTtVFtwVrundI4tw8t6Ga9v4NRzffmwGOLpAvrtjulBakZpgpmFUKNdEFXBLSI6VkRIibjgrYEKVxITXCq4LYbSQBQwp5ZgayeuaC03ME4gSTONa1lwRzpVQhdRCYM6ErjkgVIiCM6OxUYYwIw0jioqC1UxhAd8aZpmzGuozUWssQU4aJbTg/wOAQWcY7goCEtJIplhBlWFYG1CEPSktAJEcqhu4ogzXmnBNCwrfmGhhiJZcyNqYgsKlgiFBUiMkIUo9gdTa4FpAzxRkCMGfQP4G "JavaScript (Node.js) ‚Äì Try It Online")
```
‚Äú__ ã7·πó‚ÄúRUu‚ÅΩNM\sOSJj[FL‚Äò·∏•1.1*
```
This uses a configurable hashing built-in that I added to Jelly at @lirtosiast's suggestion.
Input is in titlecase, output is the power of 1.1 with the least error.
[Try it online!](https://tio.run/##y0rNyan8//9Rw5z4@FPd5g93Tgcyg0JLHzXu9fONKfYP9sqKdvN51DDj4Y6lhnqGWv8f7t6icLj9UdMahcj//4NL87i8SgsyS1KLuIITS0qL8rhCixLzSou5/FILSkrzUrlcE4tKMrjCUkFivolFxVzuiXmVuakpqVwhmSWJeVy@qUXJpUWVXM6JOTmZxSX5XJ75XL75@XlcrqVF@QWJXCFFmSVAXkBOKVDOtSizmMsjsTQ3NRGiPTMRAA "Jelly ‚Äì Try It Online")
### How it works
This answer consists of merely two parts.
* First, `‚Äú__ ã7·πó‚ÄúRUu‚ÅΩNM\sOSJj[FL‚Äò·∏•` uses the new built-in to map each of the 20 possible inputs to 15 different integers.
* Then, `1.1*` elevates 1.1 to the computed power.
`‚Äú__ ã7·πó‚ÄúRUu‚ÅΩNM\sOSJj[FL‚Äò` is a literal; every non-quote character is replaced by it's 0-based index in Jelly's code page, yielding \$[95, 95, 169, 55, 242], [82, 85, 117, 141, 78, 77, 92, 115, 79, 83, 74, 106, 91, 70, 76]\$.
The hashing built-in `·∏•` first maps \$[95, 95, 169, 55, 242]\$ to an integer by incrementing each number, then treating the result as the bijective base-250 digits integer and adding \$1\$. This yields \$376510639244\$.
By halving and flooring this integer until the result is \$0\$, we get the sequence \$[376510639244, 188255319622, 94127659811, 47063829905, \dots, 5, 2, 1, 0]\$, which has the forward differences \$[188255319622, 94127659811, 47063829906, \dots, 3, 1, 1]\$.
Next, we generate 64 64-bit integers by applying [SHAKE256-4096](https://en.wikipedia.org/wiki/SHA-3#Instances "SHA-3 - Wikipedia") to the string representation of the internal representation of `·∏•`'s right argument, then chopping the resulting 4096 bits into 64 64-bit chunks.
`·∏•` now computes the dot product of the 39 differences and the first 39 generated 64-bit integers, modulo \$2^{64}\$. This yields an integer in \$[0, 2^{64})\$.
The list \$[82, 85, 117, 141, 78, 77, 92, 115, 79, 83, 74, 106, 91, 70, 76]\$ has length 15, so we multiply the generated integer by 15 and take the 64 higher bits of the result. This yields an integer in \$[0, 15)\$, which we use to index into the list.
To find the appropriate hash configuration, I've used a brute-forcer in C that is [part of the Jelly repo](https://github.com/DennisMitchell/jellylanguage/blob/master/utils/findhash2.c "jellylanguage/findhash2.c at master ¬∑ DennisMitchell/jellylanguage").
[Answer]
# [05AB1E](https://github.com/Adriandmen/05AB1E/wiki/Commands), score ~~100~~ ~~[66](https://tio.run/##dVTRbtpAEHznK1ZWFO4S19gYjGmaVFUFbaqQVpD2hSDlhC/JVebsns8RKOGn@gn9Mbq3lDRN1Aev2dnZ2fFy9ndxJ6q5UaV9pYtMbjZjOIbp1JvU2vOTfhJ32jN/6n2qS2WlcVA/ihwyEbY2yOmm7ZgoX43QdeX57W6cEHAuS1triUgnaRMyEMbeokbcI4lvkhqSsEvVkTCYxXE/dNkHoVcLmbl2NOGQC2WFdvq9LtGlmddm5eQ71PFe5LmqbOGQiJBT/B2l29mjosDmqBf3yEltilJg3k3IyoVRlupxN3b5l7x2QlGUJkQ3qnJZQsWPol5IbE6j5NGXwryXprPZUaMxPfMhCIJ3MMNdGvmjVkay5nXV5IGRIhuqXE5Wes6arUzetSqbKY0lW0ysUfqG8aAqc2VZ89LBC1EyDccncKj5UWMhlqgZ4pBxcF2YgZjfMjbVYiF9MCJTdTXzQXPHv28AzAtdFbkM8uKGOVJQimygM9bncAgevMbrEBgzqFni9uUwL4Rl76Z6xonh8V1HFDqAqepcnDPD4eEBDLxBK/AWmBFWFagRQQtCH7zBePx57HGnX0otcruCHYXRxJGwt/hkS7b1jN6fjUspb8ETttL/Zfco579@4gDq2E37OwedPXbT3QEcDg6g7VY/VEuZsS7nuGP4Y/YE3Lb394Ftt06oD2UutLSYu4UifY1XQ13jaoZK40vi2Li95@u/utQjsQzg@UL27pH/xMEa8H9FdDtmfUWG/hGazAsjsXMuVc727s/WsHypwkmanp94Z3DgHoeT4Loh80q@sIgH7lTfiVxleGqrOrd4YpG82SRRw30KwhBvfYz4zmPEF93FTuJwKoYYYgITqlN5F6LUhZ4LrhoR1t6FdHv9Bg)~~ ~~[60](https://tio.run/##dVTbTttAEH3PV4wsRNbgOnYcX1IKVVUlLRWhVUL7EiKxihfYylm76zVKBPmpfkJ/LJ2dNJSC@uBx5syZM8eTtb/zO17PtazMK1XmYrMZwzFMp86kUY6X9JOo1515U@dTU0kjtIX6YWiRCTeNRk6cdSOifNVcNbXjdeMoIeBcVKZRApFe0iVkwLW5RY0oJYlvghqSIKbqiGvMoqgf2OwDV6uFyG07mrDIhTRcWf00JrrQ80avrHyPOt7zopC1KS0SEnKKv8NsO3tUltgcplFKThpdVhzzOCErF1oaqkdxZPMvRWOFwjBLiK5lbbOEih95sxDYnIXJoy@JeZpls9lRqzU988D3/Xcww11q8aORWrD2dd12fS14PpSFmKzUnLU7ubjr1CaXCkumnBgt1Q1z/boqpGHtSwsveMUUHJ/AoXKPWgu@RM0Ah4z961IP@PyWsaniC@GB5rls6pkHyrX8@xbAvFR1WQi/KG@YJfkVzwcqZ30XDsGB13gdAmMaNSvcvhgWJTfs3VTNXGI47q4jDCzAZH3Oz5l24eEBNLxBK/AWmOZGlqgRQgcCD5zBePx57LhWvxKKF2YFOwqjiSNubvHJlmzrGb0/G5dR3oEnbKn@y04pd3/9xAHUsZv2dw46e@ymuwVcODiArl39UC5FzmLXxR3DH7MnYLe9vw9su3VCPagKroTB3C4U6Wu8WvIaVzOUCl8Sy8btPV//1aUa8aUPzxeyd4/8Jw7WgP8rotsx6ysy9I/QZF5qgZ1zIQu2d3@2huVLFZek6fmJdwYH9nFcEly3RFGLFxbxwJ2qO17IHE9t3RQGTyySN5s4adlPQRDgrY8R33mM@KLb2EssTsUAQ0RgQnUq70KY2ZDaYKshYd1dyLbXbw)~~ [56](https://tio.run/##dVTbTttAEH3PV4wsRNbgOr7EjlMKVVUlLRWhVUL7EiKxihfYylm76zVKBPmpfkJ/LJ2dNJSC@uBx5syZM8eTtb/zO17PtazMK1XmYrMZwzFMp86kUY6X9tO4G828qfOpqaQR2kL9MLTIhJtGIyfJopgoXzVXTe14URKnBJyLyjRKINJNI0IGXJtb1Ih7JPFNUEMaJFQdcY1ZHPcDm33garUQuW1HExa5kIYrq99LiC70vNErK9@ljve8KGRtSouEhJzi7zDbzh6VJTaHvbhHThpdVhzzJCUrF1oaqsdJbPMvRWOFwjBLia5lbbOUih95sxDYnIXpoy@JeS/LZrOjVmt65oHv@@9ghrvU4kcjtWDt67rt@lrwfCgLMVmpOWt3cnHXqU0uFZZMOTFaqhvm@nVVSMPalxZe8IopOD6BQ@UetRZ8iZoBDhn716Ue8PktY1PFF8IDzXPZ1DMPlGv59y2AeanqshB@Ud4wS/Irng9UzvouHIIDr/E6BMY0ala4fTEsSm7Yu6maucRw3F1HGFiAyfqcnzPtwsMDaHiDVuAtMM2NLFEjhA4EHjiD8fjz2HGtfiUUL8wKdhRGE0fc3OKTLdnWM3p/Ni6jvANP2FL9l92j3P31EwdQx27a3zno7LGb7hZw4eAAIrv6oVyKnCWuizuGP2ZPwG57fx/YduuEelAVXAmDuV0o0td4teQ1rmYoFb4klo3be77@q0s14ksfni9k7x75TxysAf9XRLdj1ldk6B@hybzUAjvnQhZs7/5sDcuXKi5J0/MT7wwO7OO4JLhuiaIWLyzigTtVd7yQOZ7auikMnlgkbzZJ1LKfgiDAWx8jvvMY8UW3sZtanIoBhpjAlOpU3oUws6Fng62GhEW7kG2v3w) (~~100~~ ~~61~~ ~~56~~ 52 [bytes](https://github.com/Adriandmen/05AB1E/wiki/Codepage))
```
‚Ä¢1‚àû¬≤√Æc|I‚Ä∞‚àçT‚Ä°s√á3¬°√≤¬Ω–≤‚Ä¶¬ª√ã‚Ä¢‚Ä¢1√´¬£√±∆íq¬£√ª¬ø‚Äô‚Ä¶‚Ä¢S¬£I¬¶¬¶√áO96%49%√®—Ç*
```
Port of [*@OlivierGr√©goire*'s Java answer](https://codegolf.stackexchange.com/a/177028/52210), so if you like this first answer, make sure to upvote him as well!  
Input in titlecase.
[Verify all test cases.](https://tio.run/##JYs/S8NAGMb391OEQBfpoKiBdukgQStEhUQnl7fxwIP0Lt4fIdAhONiCuHRzEWohFATRrEWEO3DWr3BfJKY4PTzP7/dwiSNKGn9UKCL73n7Q9WTKBel7wbZ/CZPbYuB77n7u@YPGlS87bvZsavuWToaufHezx8SVC2mnu2Zha/P5U7uyMmv70Kob276apf34nt@0sTZfrnxqeQtisyxMZSo7Pe0Fnb1ex65@77aabhNrBsc6p4oIiFFpweBcINMSTkiuNCMQolDXcEE2W4RCwiGyYkyuCCRUIYOIiFSLAg4wy6hUHIYcIs4ZhFrwHCERVLXtLNMtCwWVcIR6TPD/TvEP)
---
# [05AB1E](https://github.com/Adriandmen/05AB1E/wiki/Commands), score ~~100~~ 99 (~~100~~ 99 [bytes](https://github.com/Adriandmen/05AB1E/wiki/Codepage))
```
‚Ä¢*√í√¢%√å√úS‚Ä¶√ôb‚Äπ√öi{e!]√â¬∏¬∑v√åBUSŒ∑H√£¬£ƒÅ√∞xy¬µ≈†‚Ä¢‚Ä¢3¬´8¬π√ò–ºS7√á‚Ä¢S¬£.‚Ä¢W√πŒ∑∆µ@,S¬∫,√ªŒµŒ≤ í√≥√ÉX\¬πŒò√§√°√°‚Äô√ù)‚ÄùŒ©o≈æ‚àû-z.A¬±D‚Ä¢3√¥I2¬£IŒ∏¬´k√®
```
Input in full lowercase. Outputs the exact radius, so no penalty is added.
[Verify all test cases.](https://tio.run/##JUw7S8NQGN3vr4gBByWWqoPiUhUH9yA61OG2XuzV5ibcRzHqEBF8QKdOrVixjYjSxVdpo@JwP@vgEPwN@SM1VThwXpzjClygZGgWfEnEgjGdzVqGKLqc/Gkzjw4rfs40kpOaYeaGSdCehBq0x6EKl3YS3EKjkAQRXNADMrYJ57qvexWoLq/ZcW8VQh1@HsHDnq@7g@t0mmJWd@Z1BPWfd3sOTtPA1mEmpXWI4t5Xd9Gy9asFb3E3fvquwTMcb@R1FNfhBlrQSoIGNCeSoBnfu4OP5Oxqaj@zpB9XRr/w4s/o0I/7urMLd0NrKBRDO8qjknAksFScIcUxUwIx4knFCCKYyxKqkFHmYC7QNma@Q7YIklRihhzCi4r7qIjLZSqki6iLHNdliCjuehhJTmXqvLJKO8KpQCWsHIL/5xT/Ag)
**Explanation:**
```
‚Ä¢*√í√¢%√å√úS‚Ä¶√ôb‚Äπ√öi{e!]√â¬∏¬∑v√åBUSŒ∑H√£¬£ƒÅ√∞xy¬µ≈†‚Ä¢
                 # Compressed integer 696342699115823225362246226371605233902634257524402410182217371561135311861163816788
 ‚Ä¢3¬´8¬π√ò–ºS7√á‚Ä¢     # Compressed integer 65555444444444444433
  S              # Converted to a list of digits: [6,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3]
   ¬£             # The first integer is split into parts of that size: ["696342","69911","58232","25362","24622","6371","6052","3390","2634","2575","2440","2410","1822","1737","1561","1353","1186","1163","816","788"]
    .‚Ä¢W√πŒ∑∆µ@,S¬∫,√ªŒµŒ≤ í√≥√ÉX\¬πŒò√§√°√°‚Äô√ù)‚ÄùŒ©o≈æ‚àû-z.A¬±D‚Ä¢
                 # Compressed string "sunjursanursneeeahvesmasgaetinmeycaoioomoneuatrnploershaatia"
     3√¥          # Split into parts of size 3: ["sun","jur","san","urs","nee","eah","ves","mas","gae","tin","mey","cao","ioo","mon","eua","trn","plo","ers","haa","tia"]
       I2¬£       # The first two characters of the input
          IŒ∏     # The last character of the input
            ¬´    # Merged together
             k   # Get the index of this string in the list of strings
              √®  # And use that index to index into the list of integers
                 # (and output the result implicitly)
```
[See this 05AB1E tip of mine (sections *How to compress large integers?* and *How to compress strings not part of the dictionary?*)](https://codegolf.stackexchange.com/a/166851/52210) to understand how the compression used works.
[Answer]
# [Python 2](https://docs.python.org/2/), 155 bytes, [score](https://tio.run/##dVTRTttAEHy/r1hZiJzBdeIYO04pVFWVtFSEVgntS4jEKT7gKufsns8oEeSn@gn9sXT3UigF9cFKdm52dm7jyXdxK@q5UZV9pctcbjZjOILp1Js02gvSfhofdGfB1PvUVMpKQ1A/igiZCNsY5CRZN3aUr0bopvaCbhKnDjiTlW20ROQg7TpkIIy9QY245yS@SdeQdhJ3OhIGqzjud6j6IPRqIXNqRxOEnCsrNOn3EkeXZt6YFckfuI73oihUbUtCIoec4Pco284elSU2R72455w0pqwE1knqrJwbZd15nMRUfykaEoqiLHV0o2qqUnf4UTQLic1ZlD76Ulj3smw2O2RsehpAGIbvYIa7NPJHo4zkrau65YdGinyoCjlZ6TlvtXN5265trjQe2XJijdLX3A/rqlCWty4IXoiKazg6hn3tH7KFWKJmB4eMw6vSDMT8hvOpFgsZgBG5aupZANon/h0DmJe6LgsZFuU1J1JYiXygc973YR88eI3PPnBuULPC7cthUQrL3031zHcMz3/oiDoEcFWfiTNufLi/BwNv0Aq8BW6EVSVqRNCGTgDeYDz@PPZ80q@kFoVdwQOFu4kjYW/wZku@9Yzen43LXN2GJ2yl/8vuudr/9RMHuI6HaX/noLPHbvdJgA97e9Cl1Q/VUuY88X3cMfwxewy07d1d4NutOzSAqhBaWqxpoUhf48PUFa5mqDSGhNi4vefrv7zQI7EM4flCdu6Q/8TBGvB3RXQ7Zn3pDP0jNJmXRmLnXKqC79ydrmH5UsV30u7@jncKe3Qd3wmumSxq@cIivnAn@lYUKse3tm4Ki28skjebKEnY9r@AufwzF3rmks5cuhllmlGSGQWYUWYZJZVROhkFklESGQWQUeoYRY1RwBjlimGYGAboNw) = 155
```
lambda p:int('G11KK54222111111XXNM8MCO37WQ53YXHE93V8BIF2IMH1WU9KPU2MLN    HGR'['uSJJaSrUNNrEnVsMeGtTMMoCoInMuErTuPsEaHTT'.find(p[7%len(p)]+p[0])/2::20],35)
```
[Try it online!](https://tio.run/##PY7NbsIwEIRfJZfKiRpR4hTxI/VS5CaBOqVNAlTAYVuMcJXYlmMfePqUmKpz2P20OztadTFnKXB3etp3NTRfR/DUjAvjoySKlsvRI8Y4ctpuczqh87d4vHkfxZ/blEzj9eQ5e8EZTaNNNV2uKkxfc@@qNPlAO2SLxQIKXeW5JmLdUpaYklI5l5mglujSrloCaVmiwYmLo69247uaCV8Fh3u1Gx6CBzyb4eEhjEdBp/T1KQ/tBRr8SC78BpTfGh16PZxCz0eFFSj00MIqbpjusQBjtRtWGoRte8qZMlawHgloc@5hzf6WFLTrCYhLw47OVXIDLoMy/W31pcc51DVvjew5c5VK6UzEaqnA3WlubrNVbW9WormLT8E2DP7DOaDgqu4X "Python 2 ‚Äì Try It Online")
Surprisingly well for this lazy solution... will look into improving as well. ;-)
[Answer]
# [Japt](https://github.com/ETHproductions/japt), 86 bytes, score = 94
```
g5 ¬•'i?788:[7*A¬≥7*L6*LG¬≤G¬≤II√âH√ÑD√ëD√ëC√ëC√ëG√Ñ√ÑG√ÑGECC8]g`suj¬´a¬®√å¬ºv√†@√£/e√ñ√¥¬∂e¬©rp¬§r`bU¬Ø2)z)*L
```
[Try it for all inputs](https://ethproductions.github.io/japt/?v=1.4.6&code=ZzUgpSdpPzc4ODpbNypBszcqTDYqTEeyR7JJSclIxETRRNFD0UPRR8TER8RHRUNDOF1nYHN1aqthqMy8duBA4y9l1vS2ZalycKRylWBiVa8yKXopKkw=&input=WydzdW4nLCAnanVwaXRlcicsICdzYXR1cm4nLCAndXJhbnVzJywgJ25lcHR1bmUnLCAnZWFydGgnLCAndmVudXMnLCAnbWFycycsICdnYW55bWVkZScsICd0aXRhbicsICdtZXJjdXJ5JywgJ2NhbGxpc3RvJywgJ2lvJywgJ21vb24nLCAnZXVyb3BhJywgJ3RyaXRvbicsICdwbHV0bycsICdlcmlzJywgJ2hhdW1lYScsICd0aXRhbmlhJ10KLW0=), [Calculate the score](https://ethproductions.github.io/japt/?v=1.4.6&code=7Vs2OTYzNDIsNjk5MTEsNTgyMzIsMjUzNjIsMjQ2MjIsNjM3MSw2MDUyLDMzOTAsMjYzNCwyNTc1LDI0NDAsMjQxMCwxODIyLDE3MzcsMTU2MSwxMzUzLDExODYsMTE2Myw4MTYsNzg4XUBYL1kgd1kvWCBwMn0gcncgKlZs&input=WzcwMDAwMCw3MDAwMCw2MDAwMCwyNTYwMCwyNTYwMCw2NDAwLDYzMDAsMzMwMCwyNjAwLDI2MDAsMjQwMCwyNDAwLDE4MDAsMTcwMCwxNjAwLDE0MDAsMTIwMCwxMjAwLDgwMCw3ODhdCiJnNSClJ2k/Nzg4Ols3KkGzNypMNipMR7JHsklJyUjERNFE0UPRQ9FHxMRHxEdFQ0M4XWdgc3Vqq2GozLx24EDjL2XW9LZlqXJwpHKVYGJVrzIpeikqTCIKLVE=), or [Check the highest error](https://ethproductions.github.io/japt/?v=1.4.6&code=7VYsQFgvWSB3WS9YIApiVXJ3Ck9wV2dWO09wVWdW&input=WzcwMDAwMCw3MDAwMCw2MDAwMCwyNTYwMCwyNTYwMCw2NDAwLDYzMDAsMzMwMCwyNjAwLDI2MDAsMjQwMCwyNDAwLDE4MDAsMTcwMCwxNjAwLDE0MDAsMTIwMCwxMjAwLDgwMCw3ODhdCls2OTYzNDIsNjk5MTEsNTgyMzIsMjUzNjIsMjQ2MjIsNjM3MSw2MDUyLDMzOTAsMjYzNCwyNTc1LDI0NDAsMjQxMCwxODIyLDE3MzcsMTU2MSwxMzUzLDExODYsMTE2Myw4MTYsNzg4XQpbJ3N1bicsICdqdXBpdGVyJywgJ3NhdHVybicsICd1cmFudXMnLCAnbmVwdHVuZScsICdlYXJ0aCcsICd2ZW51cycsICdtYXJzJywgJ2dhbnltZWRlJywgJ3RpdGFuJywgJ21lcmN1cnknLCAnY2FsbGlzdG8nLCAnaW8nLCAnbW9vbicsICdldXJvcGEnLCAndHJpdG9uJywgJ3BsdXRvJywgJ2VyaXMnLCAnaGF1bWVhJywgJ3RpdGFuaWEnXQotUQ==)
Very similar to Olivier's original answer. Input is all lowercase.
After various improvements to the output values, the current highest error is Venus at just over 4%.
Explanation now that things are a bit more stable:
```
¬§¬•`√âa`?                             :If the fifth character of the input is 'i':
       788                          : Output 788.
          :                         :Otherwise:
           [...]                    : From the array representing radii
                g                   : Get the value at the index:
                 `...`              :  In the string representing names
                      b             :  Find the first index where this string appears:
                       U¬Ø2)         :   The first two characters of the input
                           z)       :  And divide it by two
                             *L     : Multiply that value by 100
```
The string for the names is `sujusaurneeavemagatimecaiomoeutrplerha` compressed using Japt's built-in compression. The numbers representing the radii are calculated like so:
```
                          My value | Actual value
                          ---------+-------------
7 * 10 ^ 3 = 7000 * 100 =   700000 | 696342
7 * 100    = 700  * 100 =    70000 |  69911
6 * 100    = 600  * 100 =    60000 |  58232
16 * 16    = 256  * 100 =    25600 |  25362
16 * 16    = 256  * 100 =    25600 |  24622
64         = 64   * 100 =     6400 |   6371
64 - 1     = 63   * 100 =     6300 |   6052
32 + 1     = 33   * 100 =     3300 |   3390
13 * 2     = 26   * 100 =     2600 |   2634
13 * 2     = 26   * 100 =     2600 |   2575
12 * 2     = 24   * 100 =     2400 |   2440
12 * 2     = 24   * 100 =     2400 |   2410
16 + 1 + 1 = 18   * 100 =     1800 |   1822
16 + 1     = 17   * 100 =     1700 |   1737
16         = 16   * 100 =     1600 |   1561
14         = 14   * 100 =     1400 |   1353
12         = 12   * 100 =     1200 |   1186
12         = 12   * 100 =     1200 |   1163
8          = 8    * 100 =      800 |    816
788                     =      788 |    788
```
[Answer]
# Japt, ~~77~~ ~~76~~ 75 bytes, score = 75
First pass at this; I wanted to try a 0 penalty solution to give myself a baseline to work off. Will come back to it tomorrow to see what improvements can be made, hopefully still for 0 penalty.
Input is case-insensitive.
```
n35 %87%52 g"..."√≤)mc
```
[Try it](https://ethproductions.github.io/japt/?v=1.4.6&code=bjM1ICU4NyU1MiBnIiAgDz0LVlx1MDJiOFx1MDE1NhlLXHUwMmJiCyFaP0cYChgo/T48NCAgCBALPyAgICA66BElhwP2FhIWGlwiB1gi8iltYw==&input=IlN1biI=) or [test all inputs](https://ethproductions.github.io/japt/?v=1.4.6&code=bjM1ICU4NyU1MiBnIiAgDz0LVlx1MDJiOFx1MDE1NhlLXHUwMmJiCyFaP0cYChgo/T48NCAgCBALPyAgICA66BElhwP2FhIWGlwiB1gi8iltYw==&input=WyJTdW4iLCJKdXBpdGVyIiwiU2F0dXJuIiwiVXJhbnVzIiwiTmVwdHVuZSIsIkVhcnRoIiwiVmVudXMiLCJNYXJzIiwiR2FueW1lZGUiLCJUaXRhbiIsIk1lcmN1cnkiLCJDYWxsaXN0byIsIklvIiwiTW9vbiIsIkV1cm9wYSIsIlRyaXRvbiIsIlBsdXRvIiwiRXJpcyIsIkhhdW1lYSIsIlRpdGFuaWEiXQotbQ==)
The `"..."` represents a string containing many unprintables. The codepoints are:
```
32,32,15,61,11,86,696,342,25,75,699,11,33,90,63,71,24,10,24,40,253,62,60,52,32,32,8,16,11,63,32,32,32,32,58,232,17,37,135,3,246,22,18,22,26,34,7,88
```
To offer a quick explanation: the string gets split into chunks of 2 characters. We then index into that array using part of [ovs' formula](https://codegolf.stackexchange.com/a/177031/58974) plus some index-wrapping and then map the 2 characters to their codepoints.
* Saved a byte/point thanks to [ETH](https://codegolf.stackexchange.com/users/42545/ethproductions)
## 54 bytes, score = 58
A port of [Olivier's solution](https://codegolf.stackexchange.com/a/177028/58974).
```
"√ΩCƒÑ (·¨∫!ÀÇF…ç"cU¬§¬¨xc %96%49)-7 *L
```
[Test all inputs](https://ethproductions.github.io/japt/?v=1.4.6&code=IhkX/RMYQ1x1MDEwNBMHFSAfKB9cdTFiM2EPByEHXHUwMmMyD0YHB1x1MDI0ZCJjVaSseGMgJTk2JTQ5KS03ICpM&input=WyJTdW4iLCJKdXBpdGVyIiwiU2F0dXJuIiwiVXJhbnVzIiwiTmVwdHVuZSIsIkVhcnRoIiwiVmVudXMiLCJNYXJzIiwiR2FueW1lZGUiLCJUaXRhbiIsIk1lcmN1cnkiLCJDYWxsaXN0byIsIklvIiwiTW9vbiIsIkV1cm9wYSIsIlRyaXRvbiIsIlBsdXRvIiwiRXJpcyIsIkhhdW1lYSIsIlRpdGFuaWEiXQotbQ==)
[Answer]
# [Ruby](https://www.ruby-lang.org/), 105 bytes, score 109
```
->n{7E5/('!)"0 r&zZ&1#}3Mfh-~~d@'[0,j=" =1&%)AM<I>2,-B#($D  7@".index((n[1,9].sum%50+34).chr)].sum-j*32)}
```
[Try it online!](https://tio.run/##PYxdT4MwFIbv/RXIHKUKCMNlMZFlfhCdCcZk6oWEi7qV0AUKObSJuLG/jmlnvDnnyXPe84L86oY8Gtw5383i6aWNTrHpG2D9fFrBqA@TvHAPh80Cpb6zjUwjCqwxvk1ulvOJ496N7LMHw5gtTI/xDf22bZ4GznXmtbIaT/2L8Ap76wKwFu72PJzgfmikaO0UrSRHjoGeZcMEBYUrIiRo@Q6Ey1bRC22E5FRhTEAUCj7o3zEhoPcj4V1FNzr1xgTRHQmFtYRO4T0pS9aKWvFSz6SudSiWUDdE/wETR/daymM0Bqbrn4isKPkvZwRlXkWa3Z7t85RlPT4ZfgE "Ruby ‚Äì Try It Online")
If we divide 700000 by the radii, we get a sequence which increases reasonably linearly (though rather erratically). The increments in the table below can be approximated by the ASCII values of characters. The problem with this approach is it requires the input to be decoded to a value which orders the different names by size. 
A minor issue is that the difference between Eris and Haumea is quite large. Three characters `~~d` are required to encode this increment in ASCII only format. The planet-to-index string has two "ghost planet"spaces in it to pad the index. 
```
700000/r    increment from previous
0.994774    
9.960407    8.965633
11.95806    1.997657
27.45612    15.49805
28.28129    0.825178
109.2987    81.0174
115.0598    5.761118
205.4106    90.3508
264.3667    58.95612
270.4241    6.057335
285.3861    14.96199
288.9386    3.552524
382.1855    93.24692
400.8877    18.70223
446.0871    45.19939
514.6652    68.57806
587.1349    72.46972
598.7463    11.61144
853.3603    254.6139
883.6827    30.32245
```
[Answer]
# T-SQL, ~~203 202 201~~ 196 bytes, score = ~~217 216 212~~ *208*
```
SELECT IIF(v='Titan',13,STUFF(value,1,2,''))*198
FROM i,STRING_SPLIT('Ca12,Ea32,Er6,Eu8,Ga13,Ha4,Io9,Ju353,Ma17,Me12,Mo9,Ne124,Pl6,Sa294,Su3517,Ti4,Tr7,Ur128,Ve31',',')
WHERE LEFT(v,2)=LEFT(value,2)
```
Line breaks are for readability only.
Input is taken via pre-existing table **i** with varchar column **v**, [per our IO standards](https://codegolf.meta.stackexchange.com/questions/2447/default-for-code-golf-input-output-methods/5341#5341).
Joins the input table to an in-memory table on the first two characters, and returns the remaining digits x100.
Treats "Titan" as a special case using `IIF`.
**EDIT**: Saved 1 byte (and 1 point) by using `STUFF` to erase the first two characters instead of `SUBSTRING`. Thanks, t-clausen.dk!
**EDIT 2**: I wanted to see what would happen if I tried to save another byte by multiplying each lookup value by 99 instead of 100, and found to my surprise that it actually *increased* the accuracy (of the least accurate estimate)!.
This led me to some trial and error testing, and some fancy Excel what-if data tables, where I found an optimal solution using a multiplier of **89** (which of course changed all my stored values).
So while this saves me only one byte, it actually improves my score by **4.6** from my prior solution.
**EDIT 3**: Searched higher instead of lower, and found an even *better* multiplication factor, **198**. Values stay reasonably accurate while shortening my stored string by quite a few characters, which improves my score.
[Answer]
# [PowerShell](https://github.com/TryItOnline/TioSetup/wiki/Powershell), 203 bytes, score 203
```
param($a)if($a-eq'Titan'){2575;exit}(696342,69911,58232,25362,24622,6371,6052,3390,2634,2440,2410,1822,1737,1561,1353,1186,1163,816,788)["SuJuSaUrNeEaVeMaGaMeCaIoMoEuTrPlErHaTi".indexOf(-join$a[0..1])/2]
```
[Try it online!](https://tio.run/##JY5BS8NAEIX/SykkgWnM7GRnN3gsoSpEhaZeSg8DbnElTdq1wYL429cFLx@P977DO0/fLnx9uGGI8SxBTvlSCn9MXLlL1vurjFnxo7TR9@7mr785N0y1Am4aRNBWkQKliRNrVqkng8CVVkDUVKCSnJY6pRorQJsUNGQANSMgaQJEywlMYJHBWFvsF9v5ad7KLjy7Vt5cJxvp3Foep25q5z68Dm14kN4vSj@@u9vLMV99Tn5cyr4qSzwUd@oQY/w/7yX7Aw "PowerShell ‚Äì Try It Online")
Very similar to Olivier's answer, now that I see it, but developed independently.
[Answer]
# [Charcoal](https://github.com/somebody1234/Charcoal), 101 bytes, score = 101
```
Ôº©‚çò¬ß‚™™‚Äú_‚Ä≥FJ‚Åº‚¶Ñb\l‚âï)Ôº¥‚Äπ#‚äôxO-nŒ∑‚Åª√Ä‚ÜìŒ∂‚Ü•œÇ¬ß%Ôº®8H‚ÄúœÅj‚ú≥HœÅl√ó S‚Ü∂‚Ä¶|ÔºµÔº§‚éáÔº¨kfZ‚Äù¬≥‚åï‚™™‚Äù@/rjmq_‚Üô¬ßÔº•‚ñ∂ŒΩÔº¶‚Ü®o¬∫‚Å∑√∑Ôº´‚ÅªeDH:_Tbk¬¶ÔøΩ‚Äù¬≤‚Å∫¬ßŒ∏‚Å∞¬ßŒ∏œáŒ≥
```
[Try it online!](https://tio.run/##TU7LasMwAPsVkUPnFq/kcSghvWwh21JICDgLOwyKcd3W4Dld4mQ77N9dX1omkEACCYkzH0TPtXPNoIwlOR8teeajZNb7E3mypTnIX8IuWlkSfK1/Ho7zYvf3GWhPGUEssBfIOTKJbIWUI82RRIgzhCXWG9AadAPyAbINKJIlxYsyh9sgm3aKDe9TbYui66rh1bRtJXJdllVfXNq@aQr1Jlvuq7GvNnoa75@@KUKf/bNRuPSgOHnNnGOTcY@zvgI "Charcoal ‚Äì Try It Online") Link is to verbose version of code. Explanation:
```
‚Å∫¬ßŒ∏‚Å∞¬ßŒ∏œá
```
Take the 1st and 11th character (cyclically) of the input string and concatenate them.
```
‚åï‚™™‚Äù@/rjmq_‚Üô¬ßÔº•‚ñ∂ŒΩÔº¶‚Ü®o¬∫‚Å∑√∑Ôº´‚ÅªeDH:_Tbk¬¶ÔøΩ‚Äù¬≤
```
Look them up in the string `SuJiSrUuNtEEVVMrGnTTMcClIIMoEpToPPEiHeTa` split into pairs of characters.
```
¬ß‚™™‚Äú_‚Ä≥FJ‚Åº‚¶Ñb\l‚âï)Ôº¥‚Äπ#‚äôxO-nŒ∑‚Åª√Ä‚ÜìŒ∂‚Ü•œÇ¬ß%Ôº®8H‚ÄúœÅj‚ú≥HœÅl√ó S‚Ü∂‚Ä¶|ÔºµÔº§‚éáÔº¨kfZ‚Äù¬≥
```
Split the string `m.w'fv&J|\"l|\"e1 c& _c Ca ;e ;* 9a 9C 31 2; 0I .7 ,N ,7 (X (<` into groups of three characters and take the corresponding group.
```
Ôº©‚çò ... Œ≥
```
Decode the result as a base-95 number using the printable ASCII character set as the digits. Example: `Io`'s 11th character is `I`, so we look up `II` and find it's the 13th largest object and its size is `31` which maps to `19 * 95 + 17 = 1822`.
[Answer]
# [Swift 4](https://developer.apple.com/swift/), 225 bytes, score = 241
Probably golfable a bunch more (maybe in the "Ga-Me-Ca" area?), but Swift is not often used (for a reason, maybe.)
```
func b(i:String){print(i=="Titan" ?2575:["Su":6963,"Ju":699,"Sa":582,"Ur":253,"Ne":246,"Ea":63,"Ve":60,"Ma":33,"Ga":26,"Me":24,"Ca":24,"Io":18,"Mo":17,"Eu":16,"Tr":14,"Pl":12,"Er":12,"Ha":8,"Ti":8][String(i.prefix(2))]!*100)}
```
and ungolfed
```
func size(ofAstralObject object: String) {
  let objectToRadius = // Map size/100 of all objects to the first two chars
   ["Su":6963,
    "Ju":699,
    "Sa":582,
    "Ur":253,
    "Ne":246,
    "Ea":63,
    "Ve":60,
    "Ma":33,
    "Ga":26,
    "Me":24,
    "Ca":24,
    "Io":18,
    "Mo":17,
    "Eu":16,
    "Tr":14,
    "Pl":12,
    "Er":12,
    "Ha":8,
    "Ti":8] // Ti is Titania, while Titan is treated differently
  print(object == "Titan" ? 
    2575 : // If "Titan", print the exact size
    objectToRadius[String(i.prefix(2))]!*100 // get the size from the map and multiply by 100
  )
}
```
[Try It Online!](https://tio.run/##PVHBbsIwDL3zFZlP7VRNtNACldAOqAImFSG1cEEcAku3TCWtTKINIb69c9Jpl7xnv2c7Tq7fstLjrquMOrOTJ9NCo1Qf/r0l0J6cz6GUmitgr1E8idMDFAbSZJaMAnhzbBZAwSGNp1EAO4Q0iknaCCLjJICMJOvdUyIZBpBTPKJ4SRiRnjtjAAve47qBNJxS3uKE6mlGSL6SOoekb2tCmpRhjyuqI3spCY6H/vKefGlRVPLHi3z/@PQcDof@o6saZM3pi0nF7BIKAkYbtFILtLTg2qBL7pArc7VsI1ptlLA046g/LdmLPzHn6HDJ1e0i3p2rfyorCjwbvFm64HUtr7qxfO3OvGmcKTPYtNzVodR9blub3pqhdO1X3FwE/28uORzZfWB/ipbxB49B9ws)
I tried different "key sizes" for the map, but of course 1 has many clashes and using three chars doesn't give me `i=="Titan" ?2575:`'s 17 chars, since there's "Io" to manage (and it'll take more than 3 chars, I think).
[Answer]
# JavaScript (ES6), 152 bytes, score = 163
Well, it's a pretty standard solution, but I enjoyed the challenge anyway!
```
s=>s=='Titan'?2575:[6963,699,582,254,246,64,60,34,26,24,24,18,17,16,14,12,12,8,8]["SuJuSaUrNeEaVeMaGaMeCaIoMoEuTrPlErHaTi".match(s[0]+s[1]).index/2]*100
```
My Score:
```
Max. penalty ratio = 1.07068 for Triton
Score = ceil(152 x 1.07068) = 163
```
[Try it Online!](https://tio.run/##PZFdT8IwFIav5Vcs3gyk4jq2MsTphVn8SGZIQG@WXZxAkZrRLv0wGuNvx54hJO1z3r59e5KzfcAnmJUWrb2Uas33@01u8luT5@FSWJDhXZxO0uuKTdmYsOmUpFlM4jQhccIISwiLyNgfmD/johmhE0IZoV7HuDKS1dX5wj27BbzqF17AGy/hAUp@D0@qVIVb6nlT6EdYivPRDuxq2zdVVA9NRevBSMg1/7qK6wsaRftP0EHbgOTWBHlQhQsnQxKEz64VlmuUC7BOd@arBukMqhfeWic5ygK03aJ44/@XJeiuPoD83vF1lzoMjpdcr5z@RnkPTSOMVaifOpZKdaHCadVC904Le/DmjTtECy269o/gdhxOzQWE9ay3UbqPI4nATxPNfL05jTdquHy3W28Oh4Of3tlKSaMaPmrUe3/TP6YqUQ8Gs97v3n@dHmNphCVDptOJp/93yCRF/2B7jBM02QnjI2iGwBzFF7TzYgT2zxK/afQH)
[Answer]
# [FALSE](http://strlen.com/false-language/), 152 bytes, Score = 563
```
[911*.]^$0\[~][1+^]#$$2=\$4=\8=||[2 0!]?$3=[764 0!]?$5=[\$$69=\86=|$[6\]?~[2]?0!]?$6=[\$$83=\85=|$[46\]?~[$72=$[1\]?~[2]?]?0!]?$7=[\$84=$[1\]?~[52]?0!]?
```
Lazy answer using word lengths and first letters but my excuse is that I'm using a weird language
[Try it online!](http://www.quirkster.com/iano/js/false-js.html) (copy paste the code, hit show and then run)
```
[911*.]          {defines a function that multiplies a number by 911 and then prints it}
^$0\[~][1+^]#    {counts the length of the name as it's input, also records the first char}
$$2=\$4=\8=||[1 0!]?  {if the name is 2, 4, or 8 chars long print 911*2 (0! calls the function)}
$3=[764 0!]?          {if name is 3 long print 911*764}
$5=[\$$69=\86=|$[6\]?~[2]?0!]? {5 long? print 911*6 if it starts with E or V, otherwise *2}
$6=[\$$83=\85=|$[46\]?~[       {6 long? print 911*46 if it starts with S or U, otherwise:}
    $72=$[1\]?~[2]?            {if name starts with H print 911*1 else *2
]?0!]?
$7=[\$84=$[1\]?~[26]?0!]?      {7 long? print 1822*1 if it starts with NT otherwise *26 (for jupiter}
```
My results:
```
Sun       : 696004.00 penalty ratio = (696342.00 / 696004.00 )¬≤ = 1.00097
Jupiter   : 47372.00  penalty ratio = (69911.00  / 47372.00  )¬≤ = 2.17795
Saturn    : 41906.00  penalty ratio = (58232.00  / 41906.00  )¬≤ = 1.93095
Uranus    : 41906.00  penalty ratio = (41906.00  / 25362.00  )¬≤ = 2.73014
Neptune   : 47372.00  penalty ratio = (47372.00  / 24622.00  )¬≤ = 3.70166
Earth     : 5466.00   penalty ratio = (6371.00   / 5466.00   )¬≤ = 1.35855
Venus     : 5466.00   penalty ratio = (6052.00   / 5466.00   )¬≤ = 1.22591
Mars      : 1822.00   penalty ratio = (3390.00   / 1822.00   )¬≤ = 3.46181
Ganymede  : 1822.00   penalty ratio = (2634.00   / 1822.00   )¬≤ = 2.08994
Titan     : 1822.00   penalty ratio = (2575.00   / 1822.00   )¬≤ = 1.99737
Mercury   : 1822.00   penalty ratio = (2440.00   / 1822.00   )¬≤ = 1.79342
Callisto  : 1822.00   penalty ratio = (2410.00   / 1822.00   )¬≤ = 1.74959
Io        : 1822.00   penalty ratio = (1822.00   / 1822.00   )¬≤ = 1.00000
Moon      : 1822.00   penalty ratio = (1822.00   / 1737.00   )¬≤ = 1.10026
Europa    : 1822.00   penalty ratio = (1822.00   / 1561.00   )¬≤ = 1.36236
Triton    : 1822.00   penalty ratio = (1822.00   / 1353.00   )¬≤ = 1.81343
Pluto     : 1822.00   penalty ratio = (1822.00   / 1186.00   )¬≤ = 2.36008
Eris      : 1822.00   penalty ratio = (1822.00   / 1163.00   )¬≤ = 2.45435
Haumea    : 911.00    penalty ratio = (911.00    / 816.00    )¬≤ = 1.24640
Titania   : 911.00    penalty ratio = (911.00    / 788.00    )¬≤ = 1.33655
Max. penalty ratio = 3.70166 for Neptune
Score = ceil(152 x 3.70166) = 563
```
[Answer]
# [C (gcc)](https://gcc.gnu.org/), 118 bytes, score = 135
```
i;f(char*s){i=exp((strchr("(~?_q#m#.(`(=*2,r-v.h2z2p3d3j6>Qb>a?{Qx]",(*s^s[1]*4)+(strlen(s)!=5)&127|32)[1]+55)/13.5);}
```
[Try it online!](https://tio.run/##VY5fT8IwFMWf3aeYI5p2/DFsTh8I8GCIYoKRoL4oau26rWbr5m1LQMSP7hwkK/p2fvfcc@6l7ZjSsuS9CNGEgCvxmvfZskBIKqAJIAd9D18@Glmjg15R3/Va0F50Eu/TK/zQfz8bTN8GZLieLudOC7nyWT525@4pbm7jKRNI4sN@gI@73vmX7@HKbAYBPun6nQD3NuUi56Ed7y7b1WlrbR0UwIWKkHMUPgmnZUdVA@5ZG8uqxnZGuEC7tRg5My2cytrKa11wxaDGGVEajHkPRGhZ0w0rlBasxhEBldTwwP4sTggYfUnEKmOhSd1xRUz/hAHVsKrxgqQplyqveWzUJM9NaKQhL4jpA6723m2q9/ERcPPGFdEZI/@e4DvclD80Skksy3aa/QI "C (gcc) ‚Äì Try It Online")
[Scoring](https://tio.run/##ZVPtTtswFP2fp7iKEHUgS@Ok@egYTNPUbkyUTS3bn1IJqzHgKXUyx0GtoC@1R9iLddcudAx@2Mk9Pvfc42v7J7tjzVyJWr@RVcE3mzEcw3TqTlrp@mk/jXvRzJ@6X9paaK4M1KfUIBOmW4WcJI9iS/mumGwb14@SOLXAOa91KzkivTSyyIApfYsacWYlfnCbkIaJXR0xhVEc90MTfWJyteCFSUcTBrkQmkmjnyWWztW8VSsj37MZH1lZikZXBqEWOcV/mm9rj6oKk2kWZ9ZJq6qaYZyk1sqFEtqux0ls4m9la4QozVNLV6IxUWoXP7N2wTE5p@nOl8A4y/PZ7Mhxpmc@BEHwAWbYS8V/tUJx0rluOl6gOCuGouSTlZyTTrfgd91GF0Likq4mWgl5Q7ygqUuhSefSwAtWEwnHJ3AovSPnulILplHWQhKThmLJCxJ5Qc2KgSwIDZG2YEvkhOhlHGDKgM1vCZlKtuA@KFaItpn5ID2jce8AzCvZVCUPyuqGGNKTVt@DQ3DhLY5D2JYmCoVrPCk@LCsMP0zlzDM0Ippzdk6UBw8PoOAdlof3QBTTosIUCl0IfXAH4/HXsesZzZpLVuoVPFHIsyojpm9x60uydYuubRG3C69IQr4keX9@o5wh7sr/00MfO7r9GsCDgwOIvF07E8/DLsKjtRMw/dzfB7Ltq0V9qEsmuT0LbBnS1zgccY2NGAqJr8Ww0dDLBl9dyhFbBvBy@3v3yH/mYG22iei2zPrKGvpPaDKvFMfMORcl2bs/W8PytYpnpe3@Le8MDsx2PCu4dnjZ8FcW8eadyjtWigKvb9OWGq8ukjcbfA9Omvb6NMSPmZMs7WdOFGdR@DinURI5SR6mThwhAV/r0xTn6XaiWdZzaNrLHZrEoUNj2ncojfPtlOWJGX8B "JavaScript (Node.js) ‚Äì Try It Online")
## Rundown
The object name is turned into a single-character hash through the cumbersome process
```
(((*s ^ s[1] << 2) + (strlen(s) != 5)) & 127) | 32
```
whose bloat points to "Titan"/"Titania" as the main offenders. Including the last character in the hash was considered, but that still requires a `strlen()` in C. The first occurence of the hash character is searched for in the hash/data string. When found, the next character is taken and used to approximate the radius of the object in question.
The data character holds the shifted, scaled natural logarithm of the radius. Generated like so:
```
for (int i = 0; i < 20; i++)
    data[i] = log(radii[i]) * 13.5 - 55;
```
The scale was chosen through highly scientific trial-and-error, and the shift for bringing the value within printable ASCII range while avoiding backslashes. Some rearrangement of the objects in the string was necessary due to some hash/data collisions.
```
i;                                      Return value
f(char*s){                              s is object name
    i=                                  Implicit return
    exp(                                Raise e to some power
        (
            strchr(                     Find hash
                "...",                  Hash/data string
                (*s^s[1]*4)+            Calculate...
                (strlen(s)!=5)&127|32   ...hash
            )
            [1]                         Char following hash holds the power
            +55                         Shift it
        )/13.5                          Scale it
    );                                  Use it
}                                       Exit
```
[Answer]
# [Python 2](https://docs.python.org/2/), 89 bytes, Score = 234
```
lambda(p):39**4/'zzuSJJaSrUNNrEnVsMeGtTMMoCoInMuErTuPsEaHTT'.find(p[7%len(p)]+p[0])**2.18
```
[Try it online!](https://tio.run/##pVLLTuMwFN33K7ypnGQynTjOE4nNoAiolApNA5sSITNxwaPEjvyQpvx8sdOCijSLEdzFvdfH5x4/dMadfhY83m/P7/c9GR474o3@GS6DIPkBX17Merkka3m7WsmK36maXuqmrsWFuOa1qWRjblRFrpoGLraMd964yec95Vai/TZuotYPgniBiv2j6BhV4Bxs4NpwGAK4NCPTVLp2TbSRE3grCTfKdSs6asOpaysi9TMMZ@A94B090moip3pJ@G6g3cRvmCaTWk3lbyN3rr0gfc@UFh9lrsVEE2KiV0aKkUwKkukDdtMbPZEqydTH4StiBkreD2QEtjNJOsbcK7Myw0kcgqwsEQpBWsTYruIUZ64kWez2cI5OFLMotSDGZWQZdtrR89SxE4ckKDoho8IpoBznNqeZPQLhFNuMiszlDJ@QC2SxvCja2SgZ1wD@FN0OnMQve22jjotKaTYQTeEb@@F/As6e7LuPBlL@GYBzKzifRA/ZFuiyp@yXARh4KPrurKJ8PwTTx20OLllYI9G/Fm9DsHXbbxe553DxRzDuDWT0lJYhcM1TCLxPm@pLVvqEgf5lG9/G/hU "Python 2 ‚Äì Try It Online")
Most answers posted appear to have used a "encode/decode" strategy. I wondered how well I could do by estimating the diameter of celestial bodies using a simple equation. It's been a fun exercise, but the moderate byte savings are more than made up for by the accuracy penalty.
The core of this solution is the estimating equation:
```
Radius = 39**4/x**2.18
```
where x is twice the rank order of the radius of the body.
I generate the value of x based on the input string using a modification of @Erik the Outgolfer's Python 2 solution. I saved a few bytes on his code by recasting my equations to work with [2..40] instead of [1..20].
The code for generating rank orders takes up more than 2/3 of the bytes of the whole solution. If anyone has a more compact way of generating ranks, this solution could be shortened further. Because of the accuracy penalty (around 2.6), the score would improve quite a bit.
## Generating the Equation
I used statistical methods to search for simple equations to estimate the size of each body based on its rank. In part following up on the insights in @Level River St's Ruby solution and generalizing, I settled on equations of the form:
```
Radius = A/(Rank)**B
```
Working in R, I used linear models on the log of the radii to develop initial estimates, and then used non-linear optimization, seeding the optimization with the results of the linear models, to search for solutions that minimized the penalty function specified in the problem.
The estimated value of A in the above equation is seven digits, so I searched for a simple expression to save a couple of bytes. I looked for expressions of the form
```
x**y
```
for two digit x and 1 digit y (for a total of five bytes, saving two bytes, or about five points, given the penalty) that was not too different from the optimum value of A and did not inflate the penalty much, and ended up with the (otherwise inexplicable):
```
39**4
```
[Answer]
# TI-BASIC (TI-84), 285 bytes, Score = 285
```
Ans‚ÜíStr1:{696342,69911,58232,25362,24622,6371,6052,3390,2634,2575,2440,2410,1822,1737,1561,1353,1186,1163,816,788:Ans(-int(-.125inString("SUN     JUPITER SATURN  URANUS  NEPTUNE EARTH   VENUS   MARS    GANYMEDETITAN   MERCURY CALLISTOIO      MOON    EUROPA  TRITON  PLUTO   ERIS    HAUMEA  TITANIA",Str1
```
A simple "index in string to list" program. Can be golfed further.
Input is in `Ans` and is one of the objects' name in full uppercase.  
Output is in `Ans` and is automatically printed out.
**Example:**
```
"MOON
MOON
prgmCDGFC
            1737
"IO
IO
prgmCDGFC
            1822
```
**Explanation:**  
(Radii list and name string have been shortened for brevity. `...` is used to indicate the rest of the list/string.)
```
Ans‚ÜíStr1:{696342,69911,5...:Ans(-int(-.125inString("SUN     JU...",Str1  ;complete source
Ans‚ÜíStr1                                                                 ;store the input string
                                                                         ; in "Str1"
         {696342,69911,5...                                              ;generate the list of
                                                                         ; radii and leave it in
                                                                         ; "Ans"
                                          inString("SUM     JU...",Str1  ;get the index of the
                                                                         ; input string in the
                                                                         ; name string
                                      .125                               ;multiply the index by 1/8
                                -int(-                                   ;then round it towards
                                                                         ; positive infinity
                            Ans(                                         ;use the result as the
                                                                         ; index of the radii list
```
**Visual Model:**
```
Ans‚ÜíStr1                                            ;Ans = "MOON"
                                                    ;Str1 = "MOON"
{696342,69911,5...                                  ;Ans = {696232 69911 ... }
                                                    ;Str1 = "MOON"
inString("SUN      JU...",Str1                      ;Ans = {696232 69911 ... }
                                                    ;Str1 = "MOON"
                                                    ;current evaluation: 105
.125                                                ;Ans = {696232 69911 ... }
                                                    ;current evaluation: 13.125
-int(-                                              ;Ans = {696232 69911 ... }
                                                    ;current evaluation: 14
Ans(                                                ;Ans = 1737
```
]