What is "routined" and why is it eating my CPU? After my fans started blazing, I checked top and found that a process named routined was using 60-70% cpu. Surprisingly, I found no information about this process via Google, other than a mention of it in relation to a keychain issue which doesn't apply to me. 

Anybody know what this process is doing?

The process was owned by my user, but after killing it, it came back running as root. After a minute or so, the cpu usage droped to 0.

macOS Catalina 10.15.2 on a MacBook Pro
I wondered the same thing! It does have a small but somewhat helpful man page, which you can get via man routined in Terminal.

NAME
     routined -- A daemon that learns the historical location patterns of a user.

DESCRIPTION
     routined is a per-user daemon that learns historical location patterns of a user and predicts
     future visits to locations.

     There are no configurations to routined, and users should not run routined manually.


As to what it's doing? One way to find this out for (nearly) any process is to take a sample using Activity Monitor:



That will then produce a fairly verbose report that you can send to Apple using Feedback Assistant: https://developer.apple.com/bug-reporting/

In my sample, it appears to be training a machine learning model:

 +               1440 __44-[RTLearnedLocationEngine trainWithHandler:]_block_invoke  (in libcoreroutine.dylib) + 475  [0x7fff6ff29e85]
    +                 1440 -[RTLearnedLocationEngine _trainWithHandler:]  (in libcoreroutine.dylib) + 1041  [0x7fff6ff29612]
    +                   1440 -[RTLearnedLocationEngine _trainWithFromDate:ToDate:forLastLearnedVisit:handler:]  (in libcoreroutine.dylib) + 765  [0x7fff6ff2996a]
    +                     1440 -[RTLearnedLocationEngine _trainLocationsOfInterestModelWithError:]  (in libcoreroutine.dylib) + 121  [0x7fff6ff2a1f7]
    +                       1440 -[RTLearnedLocationEngine _relabelWithError:]  (in libcoreroutine.dylib) + 303  [0x7fff6ff2e58e]
    +                         1440 -[RTLearnedLocationEngine _relabelWithRelabeler:relabelerPersister:error:]  (in libcoreroutine.dylib) + 1619  [0x7fff6ff2ec22]
    +                           1440 -[RTLearnedLocationStore enumerateStoredLocationsOfInterestWithOptions:enumerationBlock:]  (in libcoreroutine.dylib) 


I would expect such activity to eventually complete and stop chewing CPU, but you never know!