diff --git a/src/DynamicModel.cc b/src/DynamicModel.cc
index 7f336dc15fed86ee2e184cc23698c943b1f7ae69..610a822aef666a1cd378d8cb4f8fba9d3249128b 100644
--- a/src/DynamicModel.cc
+++ b/src/DynamicModel.cc
@@ -3657,6 +3657,8 @@ DynamicModel::writeOutput(ostream &output, const string &basename, bool block_de
       if (growth_param_index >= 0)
         output << modstruct << "pac." << it.first << ".growth_neutrality_param_index = "
                << symbol_table.getTypeSpecificID(growth_param_index) + 1 << ";" << endl;
+
+      output << modstruct << "pac." << it.first << ".auxiliary_model_type = '" << get<2>(it.second) << "';" << endl;
     }
 
   for (auto & pit : pac_equation_info)
@@ -4606,6 +4608,7 @@ void
 DynamicModel::fillPacModelInfo(const string &pac_model_name,
                                vector<int> lhs,
                                int max_lag,
+                               string aux_model_type,
                                const map<pair<string, string>, pair<string, int>> &eqtag_and_lag,
                                const vector<bool> &nonstationary,
                                int growth_symb_id, int growth_lag)
@@ -4675,7 +4678,7 @@ DynamicModel::fillPacModelInfo(const string &pac_model_name,
 
       pac_expectation_substitution[make_pair(pac_model_name, eqtag)] = subExpr;
     }
-  pac_model_info[pac_model_name] = make_tuple(move(lhs), growth_param_index);
+  pac_model_info[pac_model_name] = make_tuple(move(lhs), growth_param_index, move(aux_model_type));
 }
 
 void
diff --git a/src/DynamicModel.hh b/src/DynamicModel.hh
index c23dffc5de8465e6d4282890e631a8eb73c7d4e6..8ea9e2ad084276c8a447d4fb97278eecedf56619 100644
--- a/src/DynamicModel.hh
+++ b/src/DynamicModel.hh
@@ -346,6 +346,7 @@ public:
   void fillPacModelInfo(const string &pac_model_name,
                         vector<int> lhs,
                         int max_lag,
+                        string aux_model_type,
                         const map<pair<string, string>, pair<string, int>> &eqtag_and_lag,
                         const vector<bool> &nonstationary,
                         int growth_symb_id, int growth_lag);
@@ -476,8 +477,8 @@ public:
   map<pair<string, string>, expr_t> pac_expectation_substitution;
 
   //! Store info about pac models:
-  //! pac_model_name -> (lhsvars, growth_param_index)
-  map<string, pair<vector<int>, int>> pac_model_info;
+  //! pac_model_name -> (lhsvars, growth_param_index, aux_model_type)
+  map<string, tuple<vector<int>, int, string>> pac_model_info;
 
   //! Store info about pac models specific to the equation they appear in
   //! (pac_model_name, standardized_eqtag) ->
diff --git a/src/ModFile.cc b/src/ModFile.cc
index 6cdea487ad96a0dfbecf89c1007f74384294e0a5..5748bb57e02e9c11a023d87aa759cda59de32fc2 100644
--- a/src/ModFile.cc
+++ b/src/ModFile.cc
@@ -421,8 +421,10 @@ ModFile::transformPass(bool nostrict, bool stochastic, bool compute_xrefs, const
            int max_lag;
            vector<int> lhs;
            vector<bool> nonstationary;
+           string aux_model_type = "";
            if (trend_component_model_table.isExistingTrendComponentModelName(pms->aux_model_name))
              {
+               aux_model_type = "trend_component";
                max_lag = trend_component_model_table.getMaxLag(pms->aux_model_name) + 1;
                lhs = dynamic_model.getUndiffLHSForPac(pms->aux_model_name, diff_subst_table);
                // All lhs variables in a trend component model are nonstationary
@@ -430,6 +432,7 @@ ModFile::transformPass(bool nostrict, bool stochastic, bool compute_xrefs, const
              }
            else if (var_model_table.isExistingVarModelName(pms->aux_model_name))
              {
+               aux_model_type = "var";
                max_lag = var_model_table.getMaxLag(pms->aux_model_name);
                lhs = var_model_table.getLhs(pms->aux_model_name);
                // nonstationary variables in a VAR are those that are in diff
@@ -449,7 +452,7 @@ ModFile::transformPass(bool nostrict, bool stochastic, bool compute_xrefs, const
              dynamic_model.addPacModelConsistentExpectationEquation(pms->name, symbol_table.getID(pms->discount),
                                                                     eqtag_and_lag, diff_subst_table);
            else
-             dynamic_model.fillPacModelInfo(pms->name, lhs, max_lag,
+             dynamic_model.fillPacModelInfo(pms->name, lhs, max_lag, aux_model_type,
                                             eqtag_and_lag, nonstationary, pms->growth_symb_id, pms->growth_lag);
            dynamic_model.substitutePacExpectation(pms->name);
          }