The World Series is about to begin, and we’re being treated to a doozy of a series between the Brewers and the Rays. However, for the 28 other teams, they are turning their attention to 2027, so we’ll join them in that for a bit with some starting pitcher rankings for next season.
This is now my fourth year publishing my starting pitcher rankings and my second year doing it this early. In many ways, I like doing a first pass at rankings this year. At this point, it’s hard to overthink. Most players aren’t playing games or posting videos of new pitches, so there is nothing to get geeked about. Instead, these rankings are more “gut feel” rankings based on how I feel about all of these pitchers at the end of the season. While I tried not to get too in the weeds about stats, I did look back at the general profile that allowed a pitcher to finish among the top 30 overall starters in recent years, and tried to prioritize pitchers who fit that profile, which mostly meant elevating pitchers who get swings and misses, and penalizing pitchers who don’t seem like a good bet for a full season of innings.
As always, the pitchers are split into tiers based on their skillset or what they’ll provide your fantasy team. The tiers themselves are more important than the rankings inside the tiers, so I wouldn’t split hairs over a few spots in the rankings. I’ve also ranked these pitchers as if I’m doing a 12-team league, so safe but boring low-end starters take a hit in value, etc. I won’t have really long write-ups here, but I’ll be back with updated rankings after the new year, where we can get a little more into the nitty-gritty of the rankings.
OK? Ok, so let’s get started.
2027 Fantasy Baseball Starting Pitcher Rankings
| Rank | Player | Team | Injured Season? | Pocket/Grouping |
Aces | ||||
| 1 | Jacob Misiorowski | MIL | No | Aces |
| 2 | Tarik Skubal | Free Agent | No | Aces |
| 3 | Cam Schlittler | NYY | No | Aces |
| 4 | Cristopher Sánchez | PHI | No | Aces |
| 5 | Yoshinobu Yamamoto | LAD | No | Aces |
There’s not much to discuss about these aces. All five posted a K-BB% of at least 21%, and four of them carried a Stuff+ of 113 or higher. They seem like the clear top five starters in baseball, if they can remain healthy.
Fringe Young Aces | Injured Season? | Pocket/Grouping | ||
| 6 | Chase Burns | CIN | No | Young power arms |
| 7 | Payton Tolle | BOS | No | Young power arms |
| 8 | Logan Gilbert | SEA | No | Strikeout guys |
| 9 | Paul Skenes | PIT | No - Maybe? | Young power arms |
There’s an argument to be made for all of these guys being aces. Obviously, Paul Skenes is the key name because he was an ace coming into last season and then posted a
3.82 ERA with a 3.34 SIERA. His Stuff+ also fell from 110 in 2025 to 99 this past season, and he didn’t look fully healthy. Still, he’s one year removed from a 1.97 ERA over 187 IP and was the best young arm in baseball. It’s hard to completely ignore 2024 and 2025. All four of these guys finished with a K-BB% between 20% and 22%, and all are power-first pitchers. Chase Burns threw 154.1 IP with a 2.86 ERA, 3.46 SIERA, 14.4% SwStr%, and 112 Stuff+, and I think that innings number will rise, which will give him even more value. Payton Tolle’s first full season was 148.2 IP with a 3.03 ERA, 21.7% K-BB, and 115 Stuff+. Like Burns, I also expect his innings to rise and his value to tick up.
Aces With Injury Risk | Injured Season? | Pocket/Grouping | ||
| 10 | Chris Sale | ATL | No (Previous risk) | Elite vets, health risk |
| 11 | Garrett Crochet | BOS | Yes | Elite vets, health risk |
| 12 | Jacob deGrom | TEX | No (Previous risk) | Elite vets, health risk |
| 13 | Zack Wheeler | PHI | Yes | Elite vets, health risk |
| 14 | Bryan Woo | SEA | No | Weak contact and durability |
| 15 | Jesús Luzardo | PHI | No | Elite vets, health risk |
| 16 | Dylan Cease | TOR | Yes | Elite vets, health risk |
If you wanted to take any of these starters over the guys in the tier above, that wouldn’t be crazy. They’re not down in this tier because they’re worse pitchers; they’re in this tier because they carry more injury risk than the pitchers in the tier above, and injury risk with your ace is a serious gamble. Chris Sale and Jacob deGrom have been healthy the last two years, but have a lengthy injury history, while Garrett Crochet missed essentially the entire year with an injury, and Dylan Cease saw his velocity plummet at the end of the season and then ended the year on the IL with a shoulder injury. You draft this group for ace outcomes at a price that already reflects the innings risk.
Ace Upside - Limited Track Record | Injured Season? | Pocket/Grouping | ||
| 17 | Drew Rasmussen | TBR | No (Previous Risk) | WHIP guys |
| 18 | Cade Cavalli | WSN | Coming off injury | Rising arms, unproven |
| 19 | Braxton Ashcraft | PIT | No | Rising arms, unproven |
| 20 | Logan Henderson | MIL | Coming off injury | Rising arms, unproven |
| 21 | Gavin Williams | CLE | No | Rising arms, unproven |
Almost everyone here has one strong season to point to, which is why the tier name fits. Of course, Drew Rasmussen has more than one good season, but he also has had three elbow surgeries and has only pitched over 150 innings once in his MLB career. That prevents me from drafting him where I think his talent should have him because he carries so much extra risk. Cade Cavalli and Logan Henderson also have injury track records that make me a little bit concerned about their durability, and Cavalli’s breakout 2026 season was so closely tied to a velocity increase that I’m just not sure if I want to fully ignore the first three months of the season for him, which were pretty inconsistent. This feels like a fair hedge on the bets for Cavalli. Gavin Williams arguably has the best skills of the group (2.95 SIERA, 25.1% K-BB, 15% SwStr%), but he also had a 3.76 ERA because he is prone to losing his command for an inning in basically every outing.
High-End SP2 Without Elite K% | Injured Season? | Pocket/Grouping | ||
| 22 | Parker Messick | CLE | No | Weak contact and durability |
| 23 | Max Fried | NYY | Yes | Weak contact and durability |
| 24 | Griffin Jax | TBR | No | Weak contact and durability |
| 25 | Hunter Brown | HOU | Yes | Weak contact and durability |
These four are valuable because of ERA and WHIP, not big strikeout totals. Parker Messick had moments where he looked like a fantasy ace, but he has just a 97 Stuff+ and his strikeout rate is not the same as the guys in the tier above. Max Fried had another solid season, but his fantasy finishes over the last four years have been super inconsistent because he seems to always miss time with an injury. Hunter Brown was clearly hurt and not pitching well this season, but his strikeout numbers also fell off a cliff in the second half of last season, so I’m not sure we can really rely on him for strikeouts. Griffin Jax is an interesting bet because he only moved into the rotation in the middle of the season, but he had 103.1 innings as a starter and registered a 3.14 ERA, 18.8% K-BB, and 13.6% SwStr%. That’s pretty damn good.
There’s an Ace in There Somewhere | Injured Season? | Pocket/Grouping | ||
| 26 | Joe Ryan | MIN | Yes | Strikeout guys |
| 27 | Jared Jones | PIT | Yes | Rising arms, unproven |
| 28 | Reid Detmers | LAA | No | Rising arms, unproven |
| 29 | Blake Snell | LAD | Yes | Missed most of 2026 |
| 30 | Shohei Ohtani | LAD | Yes | Strikeout, innings concerns |
| 31 | Carlos Rodón | NYY | Yes | Power arms, command concern |
| 32 | Nolan McLean | NYM | No | Young power arms |
| 33 | Eury Pérez | MIA | No | Power arms, command concern |
| 34 | Emmet Sheehan | LAD | No | Rising arms, unproven |
This tier is a bet on ceiling, and the group has the skills to justify it, but not the track record of consistent production. Obviously, Blake Snell, Shohei Ohtani, and Carlos Rodon are all in here because of injury concerns that prevent me from giving them enough innings to have them qualify as an ace. Reid Detmers finally had his breakout year in 185.0 innings with a 3.36 ERA and 22.0% K-BB, and Jared Jones shook the rust after his return from injury and pitched 101.2 innings with a 3.28 SIERA and 22.2% K-BB. He really came on at the end of the season. We also still see enough strikeout upside and raw, natural ability from Nolan McLean, Eury Perez, and Emmet Sheehan to have them here. I do worry that McLean had just a 9.6% swinging strike rate, and there may not be as much strikeout upside as people want to believe. This is the range that Misiorowski and Schlittler were going last year, and somebody in here is going to make that jump.
No Longer Aces, But Safe Floor | Injured Season? | Pocket/Grouping | ||
| 35 | Gerrit Cole | NYY | No | Strikeout guys |
| 36 | Sonny Gray | BOS | No | Contact managers, low strikeout |
| 37 | Shota Imanaga | Free Agent | No | WHIP guys |
| 38 | Logan Webb | SFG | No | Contact managers, low strikeout |
| 39 | Freddy Peralta | Free Agent | No | Weak contact and durability |
| 40 | Sandy Alcantara | MIA | No | Weak contact and durability |
The pitchers here have a long record of quality, and the case for them is volume and ratios. Sandy Alcantara is probably the weakest of the bunch, but he threw 211 innings this season, and we’re back to getting that bulk production from him; a 4.24 SIERA is just not ideal. Freddy Peralta has turned his season around with the Rays, and we’ve seen him be a good starting pitcher for too long to not assume he can continue to pitch well in 2027.
Fun Upside With Volatility | Injured Season? | Pocket/Grouping | ||
| 41 | Ian Seymour | TBR | No | Strikeout guys |
| 42 | Andrew Painter | PHI | No | Strikeout guys |
| 43 | Christian Scott | NYM | No | Power arms, command concern |
| 44 | Kade Anderson | SEA | No | Top prospects, clear 2027 job |
| 45 | Kaima Taira | Intl (NPB) | No | International, unproven |
| 46 | Walbert Ureña | LAA | No | Low-strikeout, command concern |
The appeal here is strikeout ability, and the risk is large, which is why they’re all down in this range. Ian Seymour flashed the best MLB skills in the tier. In 77 innings as a starter this season, he posted a 2.84 SIERA, 26.7% K-BB, and 14.4% SwStr%. I know the 4.44 ERA wasn’t tremendous, but I believe in the underlying skill set here. Andrew Painter made some key pitch mix changes in the second half of the season that I really like, but, much like Cavalli, his ability to hold velocity will be crucial. Walbert Ureña is confusing. He throws hard and has a nasty changeup plus a sweeper that flashed the ability to miss bats this season. You watch him pitch, and you see a potential stud. But his four-seamer is pretty average, and his 4.14 SIERA and 12.3% K-BB% say he got lucky this season.
The two biggest wild cards here are Kade Anderson and Kaima Taira. Anderson was the top pitching prospect in baseball, but he relies on command and movement over velocity and raw stuff, so it remains to be seen how that translates at the big league level. Taira is almost certain to come over from Japan this offseason after pitching to a 1.36 ERA and 0.97 WHIP with 134 K and 44 BB over 139 IP in NPB this year. We’ve heard he touches 100 mph, has an eight-pitch mix, and could be the best pitching free agent this offseason, other than Skubal.
Boring But It Can Work | Injured Season? | Pocket/Grouping | ||
| 47 | Michael King | FA | No | Weak contact |
| 48 | Kevin Gausman | Free Agent | No | Weak contact and durability |
| 49 | Aaron Nola | PHI | No | Command-first, strikeout upside |
| 50 | George Kirby | SEA | No | Command-first, strikeout upside |
All of these guys had pretty gross ERAs but underlying metrics that say they pitched better than the results. We just have to decide if we believe that or not. Aaron Nola made some pitch mix changes in the second half (limiting elevated fastballs) that helped him to produce better results, but George Kirby simply never got it going this year. The draft case for each of these guys is innings, a discounted price based on ERA over SIERA, and a decent chance of a bounce-back, with Kevin Gausman the safest of the three, depending on where he signs.
Hurt But Should Be Healthy Opening Day | Injured Season? | Pocket/Grouping | ||
| 51 | Tyler Glasnow | LAD | Yes | Ace upside, coming off injury |
| 52 | Nathan Eovaldi | FA | Yes | Strikeout, innings concerns |
| 53 | Shane McClanahan | TBR | Yes | Strikeout, innings concerns |
| 54 | Max Meyer | MIA | Yes | Strikeout, innings concerns |
| 55 | Ryan Weathers | NYY | Yes | Strikeout, innings concerns |
| 56 | Ryan Pepiot | TBR | Yes | Missed most of 2026 |
| 57 | Pablo López | MIN | Yes | Ace upside, coming off injury |
| 58 | Nick Pivetta | SDP | Yes | Missed most of 2026 |
| 59 | Corbin Burnes | ARI | Yes | Ace upside, coming off injury |
| 60 | Justin Steele | CHC | Yes | Missed most of 2026 |
This is another tier of injuries. These guys ended the season hurt or were hurt for basically the entire year. However, all of them seem likely to begin the year healthy and on the mound for their respective teams. You’re drafting them if the injury discount leaves a bigger gap than the missed time justifies.
Is There a Next Step? | Injured Season? | Pocket/Grouping | ||
| 61 | Jackson Jobe | DET | No | Strikeout guys |
| 62 | Didier Fuentes | ATL | No | Strikeout guys |
| 63 | Trey Yesavage | TOR | No | Power arms, command concern |
| 64 | Roki Sasaki | LAD | No | Young power arms |
| 65 | Taj Bradley | MIN | No | Power arms, command concern |
| 66 | Sean Burke | CHW | No | Strikeout guys |
| 67 | Nick Lodolo | CIN | Yes | Strikeout, innings concerns |
| 68 | River Ryan | DET | No | Top prospects, clear 2027 job |
| 69 | Bubba Chandler | PIT | No | Prospects, command concern |
These pitchers have flashed the physical tools, but the consistent results are not there yet. Roki Sasaki, Taj Bradley, and Sean Burke all had stretches in 2026 where they showed clear improvement from 2025. But those stretches didn’t last. Can we count of them in 2027? Trey Yesavage and Jackson Jobe both spent most of the year recovering from injury, but they are top pitching prospects who have shown upside when on the mound. Didier Fuentes was lights out in relief for Atlanta and should get a chance to start, and River Ryan figures to be in the rotation for the Tigers after being the headliner in the Skubal deal. He has flashed real ability before, but he needs to stay healthy. Bubba Chandler was once one of the best pitching prospects in baseball, but he had an up-and-down rookie year and hasn’t quite shown the upside we thought with a 4.54 ERA, 4.86 SIERA, 8.4% K-BB, and 100.6 Stuff+. There could be more in the tank though.
More About Command or Weak Contact | Injured Season? | Pocket/Grouping | ||
| 70 | Trevor Rogers | FA | No | Command-first, strikeout upside |
| 71 | Troy Melton | DET | No | WHIP guys |
| 72 | Sean Manaea | NYM | No | Command-first, strikeout upside |
| 73 | Framber Valdez | DET | No | Weak contact and durability |
| 74 | Foster Griffin | FA | No | Contact managers, low strikeout |
| 75 | Emerson Hancock | SEA | No | Command-first, strikeout upside |
| 76 | Jake Bennett | BOS | No | Command-first, strikeout upside |
| 77 | Tyler Mahle | FA | No | WHIP guys |
| 78 | Ranger Suarez | BOS | No | Contact managers, low strikeout |
| 79 | Michael Wacha | KCR | No | Contact managers, low strikeout |
| 80 | Nick Martinez | FA | No | Weak contact and durability |
| 81 | Eduardo Rodriguez | ARI | No | Weak contact and durability |
| 82 | Clay Holmes | FA | Yes | Weak contact and durability |
These pitchers win with walks and contact, not strikeouts, and many have a Stuff+ under 100 (Tyler Mahle 88, Jake Bennett 93, Ranger Suarez 94). Some of these guys have been top 30 pitchers before and potentially could again, but the ceiling just doesn’t feel overly high. This tier also has two All-Stars that probably pitched above their heads. Nick Martinez pitched 180 innings as a starter with a 3.10 ERA, 1.09 WHIP, and a 3.6% walk rate, but his 4.63 SIERA, 11.5% K-BB, and 8.2% SwStr% suggest that those results outpaced his skills. Same goes for Eduardo Rodriguez, who pitched 189.2 innings with a 2.89 ERA and a 1.24 WHIP, but a 4.62 SIERA, 10.3% K-BB, and 92 Stuff+. I would draft this group for innings and WHIP, especially in deeper formats.
Inconsistent But Has Flashed | Injured Season? | Pocket/Grouping | ||
| 83 | Kyle Bradish | BAL | No (Kinda) | Strikeout, innings concerns |
| 84 | Robbie Ray | FA | No | Strikeouts, command concern |
| 85 | Robert Gasser | MIL | No | Contact managers, low strikeout |
| 86 | MacKenzie Gore | TEX | No | Strikeouts, command concern |
| 87 | José Soriano | TOR | No | Low-strikeout, command concern |
| 88 | Joey Cantillo | CLE | No | Low-strikeout, command concern |
| 89 | Will Warren | NYY | No | Young power arms |
| 99 | Tanner Bibee | CLE | No | Weak contact and durability |
| 91 | Connelly Early | WAS | Yes | Strikeout, innings concerns |
| 92 | Bryce Miller | SEA | Yes | Strikeout guys |
| 93 | Noah Cameron | KCR | No | WHIP guys |
| 94 | Andrew Abbott | CIN | No | Contact managers, low strikeout |
Every pitcher here has had a good stretch, but none has strung together a full good year. Some of that is due to injury (Bryce Miller and Connelly Early), but there is just a lot of volatility in this group. Even pitchers that have had good full seasons, like Andrew Abbott, have seemingly never had the profile to back up that success. I do like guys like Early, Miller, Joey Cantillo, or MacKenzie Gore as late-round flyers just in case they can ever put it together or stay healthy.
Could be a Stud, Could be Demoted | Injured Season? | Pocket/Grouping | ||
| 95 | Ryan Sloan | SEA | No | Depth prospects, unproven |
| 96 | Hagen Smith | CHW | No | Prospects, command concern |
| 97 | Brandon Sproat | MIL | No | Strikeouts, command concern |
| 98 | Connor Prielipp | MIN | No | Strikeout guys |
| 99 | Shane Drohan | MIL | No | Strikeout guys |
| 100 | Reese Olson | DET | Yes | Strikeout guys |
| 101 | Jack Leiter | TEX | Yes | Strikeouts, command concern |
| 102 | Zebby Matthews | MIN | No | Strikeout guys |
This tier is about uncertainty, and it mixes prospects with young arms who have not settled in. Hagen Smith may be the most interesting. He made his MLB debut as a reliever with a 1.32 ERA, 0.95 WHIP, 37.4% K, 23.4% K-BB, 2.97 SIERA, 14.6% SwStr%, and 108 Stuff+ over 27.1 IP. However, his Triple-A stats were not as good, and he has some major command concerns. Connor Prielipp also intrigued me in his 116.2 innings, and while the surface-level results aren’t great, a 4.02 SIERA and 15.1% K-BB support the upside. Treat this tier as late-round upside.
Low Upside But a Safe Floor | Injured Season? | Pocket/Grouping | ||
| 103 | Shane Baz | BAL | No | Weak contact and durability |
| 104 | Merrill Kelly | ARI | No | Contact managers, low strikeout |
| 105 | Matthew Boyd | CHC | No | WHIP guys |
| 106 | Kyle Leahy | STL | No | Contact managers, low strikeout |
| 107 | Michael Soroka | Free Agent | No | WHIP guys |
| 108 | Peter Lambert | HOU | No | Strikeout guys |
| 109 | Justin Wrobleski | LAD | No | Contact managers, low strikeout |
| 110 | Brandon Pfaadt | ARI | No | Contact managers, low strikeout |
| 111 | Dean Kremer | MIN | No | Command-first, strikeout upside |
| 112 | Ryne Nelson | ARI | No | Strikeout guys |
| 113 | Cody Bradford | TEX | No | WHIP guys |
| 114 | Casey Mize | Free Agent | No | Command-first, strikeout upside |
| 115 | Andre Pallante | STL | No | Contact managers, low strikeout |
Most of these pitchers will not win you a league, but they are likely to produce solid ratios and good innings totals. Most of these guys feel like streamers or solid targets in 15-team leagues and draft-and-hold formats.
No Idea What You Are | Injured Season? | Pocket/Grouping | ||
| 116 | Luis Castillo | CHW | No | Command-first, strikeout upside |
| 117 | Dustin May | FA | No | Strikeout guys |
| 118 | Anthony Kay | CHW | No | Young power arms |
| 119 | Tatsuya Imai | HOU | No | Strikeout guys |
| 120 | Landen Roupp | SFG | No | Low-strikeout, command concern |
| 121 | Matthew Liberatore | STL | No | Weak contact and durability |
| 122 | Jacob Lopez | ATH | No | Low-strikeout, command concern |
| 123 | Janson Junk | MIA | No | Command-first, strikeout upside |
| 124 | Brayan Bello | BOS | No | Weak contact and durability |
| 125 | Cristian Javier | HOU | No | Strikeout, innings concerns |
I think the title of this group kind of says it all. I have no idea what to make of most of these guys. Matthew Liberatore had an intriguing stretch in the second half. Janson Junk has a deep pitch mix and a solid Stuff+ grade. Brayan Bello looked like an entirely different pitcher when he moved into the bulk reliever role. I was high on Landen Roupp for much of last year, but the results never came. Maybe we need to see something in spring from this group, or maybe we avoid.
Are You Healthy? I’m Interested If Yes | Injured Season? | Pocket/Grouping | ||
| 126 | Kyle Harrison | MIL | Yes | Strikeout, innings concerns |
| 127 | Cade Horton | CHC | Yes | Missed most of 2026 |
| 128 | Kris Bubic | FA | Yes | Missed most of 2026 |
| 129 | Edward Cabrera | CHC | Yes | Strikeout, innings concerns |
| 130 | Jack Flaherty | FA | Yes | Flagged, but pitched in 2026 |
| 131 | Clarke Schmidt | NYY | Yes | Missed most of 2026 |
| 132 | Luis Gil | NYY | Yes | Missed most of 2026 |
| 133 | Tylor Megill | NYM | Yes | Missed most of 2026 |
| 134 | Joe Musgrove | SDP | Yes | Missed most of 2026 |
| 135 | AJ Smith-Shawver | ATL | Yes | Strikeout, innings concerns |
All ten of these arms have an injury discount, and the question heading into your fantasy drafts is whether the production will be there when they return. As of now, I can’t draft any of them as more than a late-round dart throw.
Young Arms But Might Have Rotation Spots | Injured Season? | Pocket/Grouping | ||
| 136 | Gage Jump | ATH | No | Power arms, command concern |
| 137 | Quinn Mathews | STL | No | Unclassified |
| 138 | David Sandlin | CHW | No | Prospects, command concern |
| 139 | Jonah Tong | NYM | No | Prospects, command concern |
| 140 | George Klassen | LAA | No | Prospects, command concern |
| 141 | Zac Thornton | NYM | No | WHIP guys |
| 142 | Drew Thorpe | CHW | Yes | Missed most of 2026 |
| 143 | Noah Schultz | CHW | No | Young power arms |
| 144 | Blade Tidwell | SFG | No | Rising arms, unproven |
| 145 | J.T. Ginn | ATH | No | Low-strikeout, command concern |
Maybe I’m too low on these arms, but I don’t see a lot of security in any of them. All of them have a legit case to be in their team’s starting rotation, but I also see a world where they begin the year in Triple-A. Gage Jump and J.T. Ginn also get dinged for their brutal home park.
Probably Not Healthy to Begin | Injured Season? | Pocket/Grouping | ||
| 146 | Spencer Schwellenbach | ATL | Yes | Missed most of 2026 |
| 147 | Cole Ragans | KCR | Yes | Missed most of 2026 |
| 148 | Hunter Greene | CIN | Yes | Missed most of 2026 |
| 150 | David Festa | MIN | Yes | Missed most of 2026 |
| 151 | DJ Herz | WSN | Yes | Missed most of 2026 |
| 152 | Nestor Cortes | Free Agent | Yes | Missed most of 2026 |
| 153 | Reynaldo López | ATL | Yes | Missed most of 2026 |
| 154 | Bowden Francis | TOR | Yes | Missed most of 2026 |
| 155 | Hurston Waldrep | ATL | Yes | Missed most of 2026 |
| 156 | Ben Brown | CHC | Yes | Missed most of 2026 |
| 157 | Brandon Walter | HOU | Yes | Missed most of 2026 |
| 158 | Zach Eflin | BAL | Yes | Missed most of 2026 |
| 160 | Jordan Montgomery | Free Agent | Yes | Missed most of 2026 |
| 161 | Spencer Strider | ATL | Yes | Missed most of 2026 |
We end with a tier of guys who we feel confident either won’t begin the year healthy or have missed so much time that it’s hard to know what to get from them. I wanted to list them here because the offseason could change how we rank them, but these are not really names to be targeting in your drafts.