How to pass rendered form results to page
in your submitForm function you need to set rebuilt to true (the default is false) on the FormStateInterface then add the result as a value to the form_state. And in the buildForm function you need to check for the presence of the results variable and accordingly you can add it to the form. Something like this:  

  public function buildForm(array $form, FormStateInterface $form_state) {

    ...

    $result = $form_state-&gt;getValue('result');
    if($result){
      $form['calculation'] = $result;
    }

    ...

    return $form;
  }


and  

public function submitForm(array &amp;$form, FormStateInterface $form_state) {

  ...

  // Result overview.
  $result = [
    '#theme' =&gt; 'THEME_calculation_overview',
    '#name' =&gt; !empty($values['company_name']) ? $values['company_name'] : $form_state-&gt;getValue('firstname') . ' ' . $form_state-&gt;getValue('surname'),
    '#product' =&gt; $product,
    '#address' =&gt; $address,
    '#results' =&gt; $result_clean,
    '#urls' =&gt; $product_urls,
  ];

  $form_state-&gt;setRebuild();
  $form_state-&gt;setValue('result', $result);

}