diff --git a/doc/images/MAC_costs.png b/doc/images/MAC_costs.png
new file mode 100644
index 0000000000000000000000000000000000000000..b4bdb721a65356466986fb440e55c29b5b6097f7
Binary files /dev/null and b/doc/images/MAC_costs.png differ
diff --git a/modules/37_industry/fixed_shares/equations.gms b/modules/37_industry/fixed_shares/equations.gms
index 84c42339f9e49a01da8dda06ec1e6e6478ab12dd..f0b827491e6743609be483e67463a30b9aca464e 100644
--- a/modules/37_industry/fixed_shares/equations.gms
+++ b/modules/37_industry/fixed_shares/equations.gms
@@ -60,9 +60,25 @@ q37_cementCCS(ttot,regi)$( ttot.val ge cm_startyear
 
 *' Industry CCS costs (by subsector) are equal to the integral below the MAC 
 *' cost curve.
-*' $$C_j = E_{\text{base},j} p \sum_{i = 1}^{n} \left(q_{n,j} - q_{i,j}\right)$$
-*' with $E_\text{base}$ the baseline emissions, $p$ the price step, and $q_i$ 
-*' the abatement fraction at step $i$ on the MAC.
+*' For the calculation, consider this figure:
+*' ![MAC curve example](MAC_costs.png)
+*' To make the calculations involving MAC curves leaner, they are discretised 
+*' into 5 $/tC steps (parameter `sm_dmac`) and transformed into step-wise 
+*' curves.  The parameter `pm_macStep` holds the current step on the MAC curve
+*' the model is on (given the CO~2~ price of the last iteration), and 
+*' `pm_macAbat` holds the abatement level (as a fraction) on that step.  The 
+*' emission abatement equals the area under the MAC curve (turqoise area in the 
+*' figure).  To calculate it, `pm_macStep` is multiplied by `pm_macAbat` (the 
+*' horizontal and vertical lines enclosing the colourd rectangle in the 
+*' figure).  The `sum(steps$( ord(steps) eq pm_macStep ... )` part simply 
+*' selects the right step within the MAC curve.  From this product (rectangle),
+*' the area above the MAC curve (pink) is subtractad.  To calculate it, the 
+*' abatement level at each MAC step up to and including the current step is 
+*' summed up.  The area is subdivided into `pm_macStep` rectangles of height 
+*' `1 sm_dmac` and width `pm_macAbat(steps)` (which is zero for the first $n$ 
+*' steps at which price level no abatement is available). 
+*' Multiplying the area under the curve with the step width `sm_dmac` and the 
+*' baseline emissions (before mitigation) converts the units to $/tC and GtC.
 q37_IndCCSCost(ttot,regi,emiInd37)$( ttot.val ge cm_startyear ) .. 
   vm_IndCCSCost(ttot,regi,emiInd37)
   =e=