diff --git a/src/renderer/components/Experiment/Eval/EvalJobsTable.tsx b/src/renderer/components/Experiment/Eval/EvalJobsTable.tsx
index ba8444fafeb961d13ca888e98e9a5393619d67e8..481c36d42ec3b45b7fc36a9a0d3047b7bee463b4 100644
--- a/src/renderer/components/Experiment/Eval/EvalJobsTable.tsx
+++ b/src/renderer/components/Experiment/Eval/EvalJobsTable.tsx
@@ -91,13 +91,15 @@ function RenderScore({ score }) {
   ));
 }
 
+
 const EvalJobsTable = () => {
   const [selected, setSelected] = useState<readonly string[]>([]);
   const [viewOutputFromJob, setViewOutputFromJob] = useState(-1);
   const [openCSVModal, setOpenCSVModal] = useState(false);
   const [openPlotModal, setOpenPlotModal] = useState(false);
   const [currentJobId, setCurrentJobId] = useState('');
-  const [currentScore, setCurrentScore] = useState('');
+  const [currentData, setCurrentData] = useState('');
+  const [chart, setChart] = useState(true);
   const [currentTensorboardForModal, setCurrentTensorboardForModal] = useState(-1);
   const [fileNameForDetailedReport, setFileNameForDetailedReport] = useState('');
 
@@ -119,14 +121,33 @@ const EvalJobsTable = () => {
     fallbackData: [],
   });
 
+    const handleCombinedReports = async () => {
+      try {
+        const jobIdsParam = selected.join(',');
+        const compareEvalsUrl = chatAPI.Endpoints.Charts.CompareEvals(jobIdsParam);
+        const response = await fetch(compareEvalsUrl, { method: 'GET' });
+        if (!response.ok) {
+          throw new Error('Network response was not ok');
+        }
+        const data = await response.json();
+        console.log('data', data);
+        setCurrentData(JSON.stringify(data));
+        setOpenPlotModal(true);
+        setChart(false);
+        setCurrentJobId('-1');
+      } catch (error) {
+        console.error('Failed to fetch combined reports:', error);
+      }
+    };
+
+
   const handleOpenCSVModal = (jobId) => {
     setCurrentJobId(jobId);
     setOpenCSVModal(true);
   };
 
-  const handleOpenPlotModal = (jobId, score) => {
-    setCurrentJobId(jobId);
-    setCurrentScore(score);
+  const handleOpenPlotModal = (score) => {
+    setCurrentData(score);
     setOpenPlotModal(true);
   };
 
@@ -145,8 +166,9 @@ const EvalJobsTable = () => {
       <ViewPlotModal
         open={openPlotModal}
         onClose={() => setOpenPlotModal(false)}
+        data={currentData}
         jobId={currentJobId}
-        score={currentScore}
+        chart={chart}
       />
       <ViewOutputModalStreaming
         jobId={viewOutputFromJob}
@@ -170,9 +192,11 @@ const EvalJobsTable = () => {
           <Typography
             level="body-sm"
             startDecorator={<ChartColumnIncreasingIcon size="20px" />}
-            onClick={() => {
-              alert('this feature coming soon');
-            }}
+            // Uncomment this line to enable the combined reports feature
+            onClick={handleCombinedReports}
+            // onClick={() => {
+            //   alert('this feature coming soon');
+            // }}
             sx={{ cursor: 'pointer' }}
           >
             <>Compare Selected Evals</>
diff --git a/src/renderer/components/Experiment/Eval/ViewPlotModal.tsx b/src/renderer/components/Experiment/Eval/ViewPlotModal.tsx
index 9ffb898ef3afa6af7cfe82f1060f3a0232d0cfbe..2623586cb05faa90589bef7572282c6bc89cbc5b 100644
--- a/src/renderer/components/Experiment/Eval/ViewPlotModal.tsx
+++ b/src/renderer/components/Experiment/Eval/ViewPlotModal.tsx
@@ -3,15 +3,15 @@ import { Modal, ModalDialog, ModalClose, Box, Typography } from '@mui/joy';
 import Chart from './Chart';
 import * as chatAPI from 'renderer/lib/transformerlab-api-sdk';
 
-function parseJSON(score) {
+function parseJSON(data) {
   try {
-    return JSON.parse(score);
+    return JSON.parse(data);
   } catch {
     return [];
   }
 }
 
-export default function ViewPlotModal({ open, onClose, jobId, score }) {
+export default function ViewPlotModal({ open, onClose, data, jobId, chart = true}) {
   if (!jobId) {
     return <></>;
   }
@@ -46,7 +46,11 @@ export default function ViewPlotModal({ open, onClose, jobId, score }) {
               p: 2,
             }}
           >
-            <Chart metrics={parseJSON(score)} />
+           {chart ? (
+    <Chart metrics={parseJSON(data)} />
+  ) : (
+    <div>{JSON.stringify(parseJSON(data))}</div>
+  )}
           </Box>
         </Box>
       </ModalDialog>
diff --git a/src/renderer/lib/transformerlab-api-sdk.ts b/src/renderer/lib/transformerlab-api-sdk.ts
index e20f61823ae0b8c86700ebaf21df9702e1d6e9de..819a33154002cbc8cfc59cf243ff344c369616f6 100644
--- a/src/renderer/lib/transformerlab-api-sdk.ts
+++ b/src/renderer/lib/transformerlab-api-sdk.ts
@@ -1198,6 +1198,11 @@ Endpoints.ServerInfo = {
   StreamLog: () => API_URL() + 'server/stream_log',
 };
 
+Endpoints.Charts = {
+  CompareEvals: (jobIds: string) =>
+    API_URL() + 'evals/compare_evals?job_list=' + jobIds,
+}
+
 export function GET_TRAINING_TEMPLATE_URL() {
   return API_URL() + 'train/templates';
 }