diff --git a/src/components/GenerateCourse/AICourseContent.tsx b/src/components/GenerateCourse/AICourseContent.tsx
index 9a7417ed7..21bce4eee 100644
--- a/src/components/GenerateCourse/AICourseContent.tsx
+++ b/src/components/GenerateCourse/AICourseContent.tsx
@@ -18,19 +18,6 @@ import { AICourseModuleView } from './AICourseModuleView';
 import { slugify } from '../../lib/slugger';
 import { CheckIcon } from '../ReactIcons/CheckIcon';
 
-type Lesson = string;
-
-type Module = {
-  title: string;
-  lessons: Lesson[];
-};
-
-type Course = {
-  title: string;
-  modules: Module[];
-  difficulty: string;
-};
-
 type AICourseContentProps = {
   courseSlug?: string;
   course: AiCourse;
@@ -115,6 +102,15 @@ export function AICourseContent(props: AICourseContentProps) {
   const totalModules = course.modules.length;
   const totalLessons = currentModule?.lessons.length || 0;
 
+  const totalCourseLessons = course.modules.reduce(
+    (total, module) => total + module.lessons.length,
+    0,
+  );
+  const totalDoneLessons = aiCourseProgress?.done?.length || 0;
+  const finishedPercentage = Math.round(
+    (totalDoneLessons / totalCourseLessons) * 100,
+  );
+
   if (error && !isLoading) {
     return (
       <div className="flex h-screen flex-col items-center justify-center px-4 text-center">
@@ -188,13 +184,21 @@ export function AICourseContent(props: AICourseContentProps) {
               </div>
             </div>
             <div className="mt-2 text-sm text-gray-500">
-              {totalModules} modules •{' '}
-              {course.modules.reduce(
-                (total, module) => total + module.lessons.length,
-                0,
-              )}{' '}
-              lessons
+              {totalModules} modules • {totalCourseLessons} lessons
             </div>
+
+            {!isLoading && (
+              <div className="mt-2 text-sm text-black">
+                <span className="rounded-lg bg-yellow-400 px-1 py-0.5">
+                  {finishedPercentage}%
+                </span>{' '}
+                Completed
+              </div>
+            )}
+
+            {isLoading && (
+              <div className="mt-2 h-5 w-1/2 animate-pulse rounded-lg bg-gray-200"></div>
+            )}
           </div>
 
           <AICourseModuleList
@@ -209,6 +213,7 @@ export function AICourseContent(props: AICourseContentProps) {
             setViewMode={setViewMode}
             expandedModules={expandedModules}
             setExpandedModules={setExpandedModules}
+            isLoading={isLoading}
           />
         </aside>
 
diff --git a/src/components/GenerateCourse/AICourseModuleList.tsx b/src/components/GenerateCourse/AICourseModuleList.tsx
index 6fa4f85c7..fecb34afe 100644
--- a/src/components/GenerateCourse/AICourseModuleList.tsx
+++ b/src/components/GenerateCourse/AICourseModuleList.tsx
@@ -24,6 +24,8 @@ type AICourseModuleListProps = {
 
   expandedModules: Record<number, boolean>;
   setExpandedModules: Dispatch<SetStateAction<Record<number, boolean>>>;
+
+  isLoading: boolean;
 };
 
 export function AICourseModuleList(props: AICourseModuleListProps) {
@@ -38,9 +40,11 @@ export function AICourseModuleList(props: AICourseModuleListProps) {
     setViewMode,
     expandedModules,
     setExpandedModules,
+
+    isLoading,
   } = props;
 
-  const { data: aiCourseProgress, isLoading } = useQuery(
+  const { data: aiCourseProgress } = useQuery(
     getAiCourseProgressOptions({ aiCourseSlug: courseSlug || '' }),
     queryClient,
   );
diff --git a/src/components/GenerateCourse/GenerateAICourse.tsx b/src/components/GenerateCourse/GenerateAICourse.tsx
index 0d39adb74..310dc8ad1 100644
--- a/src/components/GenerateCourse/GenerateAICourse.tsx
+++ b/src/components/GenerateCourse/GenerateAICourse.tsx
@@ -126,6 +126,7 @@ export function GenerateAICourse(props: GenerateAICourseProps) {
               .replace(COURSE_SLUG_REGEX, '');
 
             setCourseId(extractedCourseId);
+            setCourseSlug(extractedCourseSlug);
           }
 
           try {