diff --git a/binarycpython/utils/grid.py b/binarycpython/utils/grid.py
index d478af808bcc976cfc3005b30d5efd46f09cfe99..a0a2ea4ce99851b750ecdc5dee1704aa985839c8 100644
--- a/binarycpython/utils/grid.py
+++ b/binarycpython/utils/grid.py
@@ -5223,11 +5223,27 @@ eccentricity3=0
             system_generator = object.grid_options["_system_generator"]
             object.grid_options["_system_generator"] = None
 
-            # add datestamp
+            # add metadata if it doesn't exist
             if not 'metadata' in object.grid_ensemble_results:
                 object.grid_ensemble_results['metadata'] = {}
+
+            # add datestamp
             object.grid_ensemble_results['metadata']['save_population_time'] = datetime.datetime.now().strftime("%m/%d/%Y %H:%M:%S")
 
+            # add platform and build information
+            try:
+                object.grid_ensemble_results['metadata']['platform'] = platform()
+                object.grid_ensemble_results['metadata']['platform_uname'] = list(platform.uname())
+                object.grid_ensemble_results['metadata']['platform_machine'] = platform.machine()
+                object.grid_ensemble_results['metadata']['platform_node'] = platform.node()
+                object.grid_ensemble_results['metadata']['platform_release'] = platform.release()
+                object.grid_ensemble_results['metadata']['platform_version'] = platform.version()
+                object.grid_ensemble_results['metadata']['platform_processor'] = platform.processor()
+                object.grid_ensemble_results['metadata']['platform_python_build'] = platform.python_build()
+                object.grid_ensemble_results['metadata']['platform_python_version'] = platform.python_version()
+            except:
+                pass
+
             # add max memory use of the grid
             try:
                 object.grid_ensemble_results['metadata']['max_memory_use'] = copy.deepcopy(sum(shared_memory["max_memory_use_per_thread"]))