diff --git a/server/src/core/server/models/comment/counts/counts.ts b/server/src/core/server/models/comment/counts/counts.ts
index 5a38598af0..7748d8730a 100644
--- a/server/src/core/server/models/comment/counts/counts.ts
+++ b/server/src/core/server/models/comment/counts/counts.ts
@@ -12,7 +12,6 @@ import {
   GQLCommentTagCounts,
 } from "coral-server/graph/schema/__generated__/types";
 
-import { Story } from "coral-server/models/story";
 import {
   createEmptyCommentModerationQueueCounts,
   createEmptyCommentStatusCounts,
@@ -224,7 +223,7 @@ interface RelatedCommentCountsDocument extends Document {
 }
 
 export async function updateRelatedCommentCounts(
-  collection: Collection<Readonly<Story>>,
+  collection: Collection,
   tenantID: string,
   id: string,
   commentCounts: DeepPartial<RelatedCommentCounts>
diff --git a/server/src/core/server/models/site/index.ts b/server/src/core/server/models/site/index.ts
index 0a8e0417e3..6c9b4cc740 100644
--- a/server/src/core/server/models/site/index.ts
+++ b/server/src/core/server/models/site/index.ts
@@ -1,5 +1,5 @@
 import { identity, isNumber } from "lodash";
-import { MongoError } from "mongodb";
+import { Collection, MongoError } from "mongodb";
 import { v4 as uuid } from "uuid";
 
 import { FirstDeepPartial } from "coral-common/common/lib/types";
@@ -186,4 +186,12 @@ export const updateSiteCounts = (
   tenantID: string,
   id: string,
   commentCounts: FirstDeepPartial<RelatedCommentCounts>
-) => updateRelatedCommentCounts(mongo.sites(), tenantID, id, commentCounts);
+) =>
+  updateRelatedCommentCounts(
+    // the generics on this won't let us extend to
+    // all Coral types
+    mongo.sites() as unknown as Collection,
+    tenantID,
+    id,
+    commentCounts
+  );
diff --git a/server/src/core/server/models/story/story.ts b/server/src/core/server/models/story/story.ts
index 4800e9d34d..bc19966286 100644
--- a/server/src/core/server/models/story/story.ts
+++ b/server/src/core/server/models/story/story.ts
@@ -1,4 +1,4 @@
-import { MongoError } from "mongodb";
+import { Collection, MongoError } from "mongodb";
 import { v4 as uuid } from "uuid";
 
 import { DeepPartial, FirstDeepPartial } from "coral-common/common/lib/types";
@@ -674,7 +674,15 @@ export const updateStoryCounts = (
   tenantID: string,
   id: string,
   commentCounts: FirstDeepPartial<RelatedCommentCounts>
-) => updateRelatedCommentCounts(mongo.stories(), tenantID, id, commentCounts);
+) =>
+  updateRelatedCommentCounts(
+    // the generics on this won't let us extend to
+    // all Coral types
+    mongo.stories() as unknown as Collection,
+    tenantID,
+    id,
+    commentCounts
+  );
 
 export async function addStoryExpert(
   mongo: MongoContext,
diff --git a/server/src/core/server/models/user/user.ts b/server/src/core/server/models/user/user.ts
index 4bcea4d90d..2e177c80a1 100644
--- a/server/src/core/server/models/user/user.ts
+++ b/server/src/core/server/models/user/user.ts
@@ -1,6 +1,6 @@
 import bcrypt from "bcryptjs";
 import { DateTime, DurationObject } from "luxon";
-import { MongoError } from "mongodb";
+import { Collection, MongoError } from "mongodb";
 import { v4 as uuid } from "uuid";
 
 import { DeepPartial, Sub } from "coral-common/common/lib/types";
@@ -3602,7 +3602,15 @@ export const updateUserCommentCounts = (
   tenantID: string,
   id: string,
   commentCounts: DeepPartial<UserCommentCounts>
-) => updateRelatedCommentCounts(mongo.users(), tenantID, id, commentCounts);
+) =>
+  updateRelatedCommentCounts(
+    // the generics on this won't let us extend to
+    // all Coral types
+    mongo.users() as unknown as Collection,
+    tenantID,
+    id,
+    commentCounts
+  );
 
 export const updateLastFeaturedDate = async (
   mongo: MongoContext,