diff --git a/scouting/db/db.go b/scouting/db/db.go
index 940d96e..162f973 100644
--- a/scouting/db/db.go
+++ b/scouting/db/db.go
@@ -232,6 +232,14 @@
 	return result.Error
 }
 
+func (database *Database) DeleteFromStats(compLevel_ string, matchNumber_ int32, setNumber_ int32, teamNumber_ string) error {
+	var stats2023 []Stats2023
+	result := database.
+		Where("comp_level = ? AND match_number = ? AND set_number = ? AND team_number = ?", compLevel_, matchNumber_, setNumber_, teamNumber_).
+		Delete(&stats2023)
+	return result.Error
+}
+
 func (database *Database) AddOrUpdateRankings(r Ranking) error {
 	result := database.Clauses(clause.OnConflict{
 		UpdateAll: true,
@@ -297,6 +305,12 @@
 	return stats, result.Error
 }
 
+func (database *Database) ReturnStats2023() ([]Stats2023, error) {
+	var stats2023 []Stats2023
+	result := database.Find(&stats2023)
+	return stats2023, result.Error
+}
+
 func (database *Database) ReturnRankings() ([]Ranking, error) {
 	var rankins []Ranking
 	result := database.Find(&rankins)
