Battery degradation happens on an S-curve - it will be steepest from new, then it will level out after 12-18 months, be fairly flat for a LONG time, then start to drop more rapidly as the battery comes to the end of its life.
You can affect how quickly it occurs by your behaviour - prolonged high temperatures are bad, prolonged high charge is bad.
However, what tends to occur more with Teslas is that the BMS simply doesn't know what's going on. The battery needs to balance itself at diffent SoC levels (eg 20%, 30%, 40%, etc) for a period of time, and it can only do that when the car is sleeping - sentry mode prevents it from sleeping. There's also lots of people who plug it in every night (in fairness, the manual tells you to) and charge back up to 80% every night. The result of that is that the BMS knows really well how the battery is behaving at 80%, but everything else is a bit fuzzy...
I rarely plug ours in (only when actually charging - mostly 11kW at work or local free rapid when i pop into town). It sits at all sorts of weird %ages for days (past week it's been sat in the garage at 45%) so the BMS gets all the data it needs. Teslacore shows 2.92% degradation, on SR+ that is over 14 months old (June '19 build, August '19 registered) and 8k miles.
When I first got Teslacore (June 2020) it showed 4.58% degradation, but it had been a long time since I'd charged it up to 100% - i took it up to 100% then drove for abit and after a week or two it settled to less than 3% degradation. It has not been over 3% since then.
Given that our 24kWh Leaf was at 88.4% SoH (ie 11.6% degradation) at 30 months old and 13k miles, I'm pretty happy. I anticipate that the degradation will level out at somewhere around 4% once I get onto the flat bit of the S-curve. Given that over the 19 months we had the Leaf, and added 12.5k miles to it it dropped from 88.4% to 87.99% (worst ever seen) SoH, I'm fairly confident that I can look after a battery well. I anticipate maybe 5% by 5 years old.
So, the point is that you need to make sure that the BMS has full data available to it. Teslacore simply derives the degradation figure by comparing hte current "full range" figure to the as new full range figure. Make sure it gets to balance (sleep) at various SoC levels, and very occasionally 100% balance it. Most of the "degradation" you'll be seeing is BMS data lacking rather than true degradation, but also remember that a larger chunk of the degradation happens from new in the first year.
See also:
Battery degradation is one of the biggest concerns for electric car owners and potential buyers, but data from Tesla battery packs...
electrek.co
Like many others, I have been concerned with loss of 100% indicated battery range on one of my Model 3s. My P3D (build date 9/13/2018, delivery date 10/8/2018) had gotten down to 270.3 miles at 100% charge on January 20, 2020, at about 30,700 miles, which is a loss of 40.8 miles since the car...
teslamotorsclub.com