I’m a player in a 5e Eberron group. We’ve played on most Fridays for over a year now, and it’s a great group of folks.
My character is a dwarf1 celestial warlock, whose patron is a couatl. Couatls are prominent in Eberron lore, and last week, our DM had the party travel to the Plane of Irian. My warlock met his patron in the flesh, something I was totally not expecting.
As the encounter progressed, I realized how frustrating it is that the only official couatl stats are for the CR 4 creature that appears in the Monster Manual.2 Searches online for higher-level couatl stats turn up very little in the way of homebrew attempts, besides Keith Baker’s recommendation that DMs reskin one of the higher-CR celestials.
Regardless, I stat’ed up my own “greater couatl” this weekend. I’m posting it here in the hopes I can save someone a bit of trouble down the road.

Design Notes
I’m rather adept with the peculiarities of Roll20’s D&D sheets at this point, so creating this actually didn’t take as long as I thought it would. I spent most of the time trying to figure out how to set the token to be gargantuan-sized on drop.3 Also, you’ll see that the syntax of the first and last sentences of the Legendary Actions description section is incorrect. This text is created automatically when you give a creature legendary actions, and apparently it cannot be edited.
Along with the official CR 4 couatl, I looked at other celestials and fiends in the CR 18 to CR 22 range (e.g., the solar), and then looked at their less-powerful cousins (e.g., the deva) to get a sense for how spell-like abilities scale within the official entries.4 I also considered some of the ancient dragons with respect to reach and damage for bite and tail attacks.
Curiously, both the CR 4 couatl and the CR 21 solar have mere resistance to radiant damage, not immunity. This was a surprise, but it is reflected in the final result. I was also surprised that the official CR 4 couatl did not already have poison resistance or immunity, since it has a poison bite attack. I added poison immunity to my greater couatl, since I gave its bite actual poison damage in addition to the poisoned condition effect.
With respect to healing abilities, solars have a limited-use healing touch action which has always felt to me like it should be replaced with one of the existing healing spells as an innate spellcasting ability. So instead I gave the greater couatl heal as an innate spell three times a day.
This isn’t the first time I’ve created something for the Eberron group. Really, I should do it more often.
Footnotes
1 With very few exceptions, I always play some variety of dwarf.
2 Granted, it’s a strong CR 4.
3 I would say that default token size is “broken” in Roll20, but the fact of the matter is that it’s never worked. I figured out a complicated work around anyway, basically by beating my head against it for thirty minutes.
4 This is the range of CR that most warlock patrons fall into, at least in my experience with 5e games. I think most players and DMs assume that warlock patrons have to be on a level with demigods and similar powers, despite the fact that the two most prominent examples of warlock patrons in D&D canon (viz., Lorcan and Sairché in the Brimstone Angels novels) are both cambions (CR 5). I don’t see anything wrong with lower-level creatures serving as warlock patrons, but it does make things interesting when a patron’s CR is low enough that a determined low-level party could kill them.