Index: trunk/ippToPsps/src/ippToPspsBatchStack.c
===================================================================
--- trunk/ippToPsps/src/ippToPspsBatchStack.c	(revision 29298)
+++ trunk/ippToPsps/src/ippToPspsBatchStack.c	(revision 29319)
@@ -16,5 +16,4 @@
  */
 int ippToPsps_batchStack(IppToPsps *this) {
-
 
     int status = 0;
@@ -39,10 +38,19 @@
 
 
+    char** assocDate = (char**)calloc(MAXDETECT, sizeof(char**));
+    for (uint32_t i=0; i<MAXDETECT;i++) assocDate[i] = (char*)calloc(20,sizeof(char));
+    int8_t filterIDs[MAXDETECT], surveyIDs[MAXDETECT];
+
+
     // write StackMeta
     ippToPspsConfig_writeTable(this->config, fitsIn, this->fitsOut, 1, "StackMeta", true);
+    fits_write_col(this->fitsOut, TLONG, STACKMETA_SKYCELLID, 1, 1, 1, &this->id, &status);
 
     int8_t filterID = -1;
     if (!ippToPspsConfig_getFilterId(this->config, filterType, &filterID)) {return PS_EXIT_DATA_ERROR;}
     fits_write_col(this->fitsOut, TBYTE, STACKMETA_FILTERID, 1, 1, 1, &filterID, &status);
+
+    fits_write_col(this->fitsOut, TBYTE, STACKMETA_SURVEYID, 1, 1, 1, &this->surveyID, &status);
+
 
     // psf detections
@@ -54,5 +62,14 @@
     }
     else {
-    
+   
+        // some stuff is the same for all detections so we can populate here
+        for (long s = 0; s<MAXDETECT; s++) {
+
+            filterIDs[s] = filterID;
+            surveyIDs[s] = this->surveyID;
+            strcpy(assocDate[s], this->todaysDate);
+        }
+
+
         long nDet = 0;
         if (fits_get_num_rows(fitsIn, &nDet, &status)) {
@@ -96,4 +113,9 @@
 
             ippToPspsConfig_writeTable(this->config, fitsIn, this->fitsOut, nDet, "StackDetection", false);
+            fits_write_col(this->fitsOut, TLONG, STACKDETECTION_SKYCELLID, 1, 1, 1, &this->id, &status);
+            fits_write_col(this->fitsOut, TBYTE, STACKDETECTION_FILTERID, 1, 1, nDet, filterIDs, &status);
+            fits_write_col(this->fitsOut, TBYTE, STACKDETECTION_SURVEYID, 1, 1, nDet, surveyIDs, &status);
+            fits_write_col(this->fitsOut, TSTRING, STACKDETECTION_ASSOCDATE, 1, 1, nDet, assocDate, &status);
+
             if (numInvalidFlux) fits_delete_rowlist(this->fitsOut, removeList, numInvalidFlux, &status);
 
@@ -129,7 +151,7 @@
         }
 
-
-
         ippToPspsConfig_writeTable(this->config, fitsIn, this->fitsOut, nDet, "StackApFlx", false);
+        fits_write_col(this->fitsOut, TBYTE, STACKAPFLX_FILTERID, 1, 1, nDet, filterIDs, &status);
+        fits_write_col(this->fitsOut, TBYTE, STACKAPFLX_SURVEYID, 1, 1, nDet, surveyIDs, &status);
     }
 
