Saving throws statistics
I managed to extract the text from a player's handbook 5e pdf file; below you can find some statistical information regarding the number of times each saving throw type appears.
This piece of information isn't an indicator of which class is the best one, as class features (like spells) aren't taken under consideration, at all; however, I found it to be interesting and worth sharing.
Below you can find the two tables above presented in a more viewing-friendly way:
This piece of information isn't an indicator of which class is the best one, as class features (like spells) aren't taken under consideration, at all; however, I found it to be interesting and worth sharing.
dictum@mortuum:~$ egrep -io "[a-zA-Z]+ saving throw" ph5etxt | grep -i strength | wc -lAdditionally, I created a small .sql file containing the information above, as well as class names and class saving throws:
26
dictum@mortuum:~$ egrep -io "[a-zA-Z]+ saving throw" ph5etxt | grep -i dexterity | wc -l
78
dictum@mortuum:~$ egrep -io "[a-zA-Z]+ saving throw" ph5etxt | grep -i constitution | wc -l
64
dictum@mortuum:~$ egrep -io "[a-zA-Z]+ saving throw" ph5etxt | grep -i intelligence | wc -l
6
dictum@mortuum:~$ egrep -io "[a-zA-Z]+ saving throw" ph5etxt | grep -i wisdom | wc -l
85
dictum@mortuum:~$ egrep -io "[a-zA-Z]+ saving throw" ph5etxt | grep -i charisma | wc -l
18
drop table if exists tClass;Running a simple sql query to rank which class has proficiency against most effects:
create table if not exists tClass (class_name, saving_throw);
insert into tClass (class_name,saving_throw) values ('barbarian', 'strength');
insert into tClass (class_name,saving_throw) values ('barbarian', 'constitution');
insert into tClass (class_name,saving_throw) values ('bard', 'dexterity');
insert into tClass (class_name,saving_throw) values ('bard', 'charisma');
insert into tClass (class_name,saving_throw) values ('cleric', 'wisdom');
insert into tClass (class_name,saving_throw) values ('cleric', 'charisma');
insert into tClass (class_name,saving_throw) values ('druid', 'intelligence');
insert into tClass (class_name,saving_throw) values ('druid', 'wisdom');
insert into tClass (class_name,saving_throw) values ('fighter', 'strength');
insert into tClass (class_name,saving_throw) values ('fighter', 'constitution');
insert into tClass (class_name,saving_throw) values ('monk', 'strength');
insert into tClass (class_name,saving_throw) values ('monk', 'dexterity');
insert into tClass (class_name,saving_throw) values ('paladin', 'wisdom');
insert into tClass (class_name,saving_throw) values ('paladin', 'charisma');
insert into tClass (class_name,saving_throw) values ('ranger', 'strength');
insert into tClass (class_name,saving_throw) values ('ranger', 'dexterity');
insert into tClass (class_name,saving_throw) values ('rogue', 'dexterity');
insert into tClass (class_name,saving_throw) values ('rogue', 'intelligence');
insert into tClass (class_name,saving_throw) values ('sorcerer', 'constitution');
insert into tClass (class_name,saving_throw) values ('sorcerer', 'charisma');
insert into tClass (class_name,saving_throw) values ('warlock', 'wisdom');
insert into tClass (class_name,saving_throw) values ('warlock', 'charisma');
insert into tClass (class_name,saving_throw) values ('wizard', 'intelligence');
insert into tClass (class_name,saving_throw) values ('wizard', 'wisdom');
drop table if exists tSavingThrow;
create table if not exists tSavingThrow (saving_throw_name, appearances);
insert into tSavingThrow (saving_throw_name,appearances) values ('strength', 26);
insert into tSavingThrow (saving_throw_name,appearances) values ('dexterity', 78);
insert into tSavingThrow (saving_throw_name,appearances) values ('constitution', 64);
insert into tSavingThrow (saving_throw_name,appearances) values ('intelligence', 6);
insert into tSavingThrow (saving_throw_name,appearances) values ('wisdom', 85);
insert into tSavingThrow (saving_throw_name,appearances) values ('charisma', 18);
sqlite> select class_name, sum(appearances) from tclass,tsavingthrow where tclass.saving_throw = tsavingthrow.saving_throw_name group by class_name order by 2;It seems that the difference between the first and last class in this list isn't that big; it's a difference of only 22 points.
sorcerer 82
rogue 84
barbarian 90
fighter 90
druid 91
wizard 91
bard 96
cleric 103
paladin 103
warlock 103
monk 104
ranger 104
Below you can find the two tables above presented in a more viewing-friendly way:
Saving Throw | # of times it appears in Player's Handbook 5e |
Strength | 26 |
Dexterity | 78 |
Constitution | 64 |
Intelligence | 6 |
Wisdom | 85 |
Charisma | 18 |
Class | # of times their specialty saves appear in Player's Handbook 5e |
sorcerer | 82 |
rogue | 84 |
barbarian | 90 |
fighter | 90 |
druid | 91 |
wizard | 91 |
bard | 96 |
cleric | 103 |
paladin | 103 |
warlock | 103 |
monk | 104 |
ranger | 104 |