> For the complete documentation index, see [llms.txt](https://help.taglo.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.taglo.io/importing-models/importing-models.md).

# Importing Models

How to save time and improve quality by re-using Models

## Overview

[**Models**](/models/home-tab.md) allows you to take an existing Model, and duplicate it inside another one. In this way you can create templates for commonly re-used sections, generating huge time-savings and improving consistency of your Models.

## Importing a Model

The process for importing a Model is straightforward: simply navigate through the menu to **Edit > Import Model**. This will open a wizard showing available Models to import. Select the Model you want to import, and it will be duplicated and inserted into your Model, including its Layout and Dashboards.

{% hint style="info" %}
Only Models within available [**Namespaces**](/using-taglo-software/namespaces.md) will be shown. Before importing, make sure that your Model's Namespace references the Namespace of the Model you want to import.
{% endhint %}

## Replacing Variables

When importing a Model, you will often want to connect it to the structure of your current Model. This can be done manually, by editing Calculations in the imported Model, but Models provides a shortcut for this proces&#x73;**,** the **Replace Variable** function.

In the example below, we have a Variable, `Revenues` <mark style="color:green;">**(2)**</mark>, in our current Model, which reflects the specific revenue line of the business that we are modelling. When we import the `Financial Statements` template Model, a second placeholder `Revenues` Variable <mark style="color:green;">**(1)**</mark> is added. We want to override all instances of this second `Revenues` Variable with our original. To do so, we perform the following:

* Select the new `Revenues` Variable
* Press the **Replace** button ![](https://2847533834-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVy65sax6FVoNo2UTlJ0x%2Fuploads%2F9LT2hoWTMtyvUQubK75p%2Fimage.png?alt=media\&token=b1e2058b-5da8-4e74-9e28-6567abc8bb05)
* Select the original `Revenues` Variable, and press **Finish**

<figure><img src="https://2847533834-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVy65sax6FVoNo2UTlJ0x%2Fuploads%2FSKwyAPiPTKgly1sgQwmq%2Fimage.png?alt=media&amp;token=471e70e6-377f-46b2-8b51-b7de70a7e9c5" alt=""><figcaption><p>Replacing a Variable</p></figcaption></figure>

All instances of the new `Revenues` Variable have now been replaced <mark style="color:green;">**(3)**</mark>, including in [**Dashboards**](/dashboards/dashboards-basics.md) and the [**Layout**](/layout/generating-excel.md). We can now remove the new `Revenues` Variable and associated [**Assumptions**](/assumptions/introduction-to-assumptions.md).

{% hint style="info" %}
Note that after we replace the new Variable, it appears as a top-level node in the Variable tree-view <mark style="color:green;">**(4)**</mark>, because it is no longer referenced by any other Variables. This tells us that it is safe to delete.
{% endhint %}

## Creating Template Models

You can import any Model into any other Model. However, if there are Models you want to use only as Templates, like the Financial Statements Model in the examples above, there are steps you can take to make them easier to import - we list some of these below.

### Make all Assumptions Constant

Generally a template Model will have different [**Timings**](/models/home-tab/creating-a-model/timings.md) from the Model you want to import it into. That means it's a good idea to use a [**Constant Unit**](/units/key-unit-concepts.md#constants) for any Assumptions in the template Model - this way, when you import the Model, it will be immediately fully-working, regardless of the Timings of the target Model.

This can be achieved in two ways:

* For any Assumptions Variable that is genuinely Constant (e.g. `Number of months per year`), make sure the Unit is Constant
* For any Assumptions Variable that is not Constant, but acts as a placeholder for a Variable in the target Model (e.g. `Revenues`), use a single [**Default Assumption**](/variables/default-assumptions.md). Default Assumptions are always of Constant Unit.

{% hint style="info" %}
It is not always possible to make all Assumptions Constant. For instance, if you had a template Model including a country's population over time, the population figures would reflect specific points in time. In this case, you will just need to add or remove Assumptions after importing to update the Variable in question to the Timings of the new Model. Time Segment warnings will help you determine where updates need to be made.
{% endhint %}

### Make the Model independent of Interval Type

A template Model may have a different [**Interval Type**](/models/home-tab/creating-a-model/timings.md#interval-type) from the Model you want to import it into (e.g. a template Model in `Years` imported into a Model in `Quarters`).

To ensure that a template Model will work across multiple Interval Types, you should use time conversion Variables, as shown in the example below.

Here, our template Model is in `Years`, but instead of just using the Variable `Years of depreciation/amortization` directly in our depreciation calculation, we first convert it into a time-generic Variable, `Periods of depreciation/amortization` using a conversion Variable of `Periods per year`. In our template Model, `Periods per year` has a constant value `1`, but if we import it into a Model with Interval Type `Months`, we can simply change the value of the `Periods per year` Assumption to `12` and our Model will work as intended.

<figure><img src="https://2847533834-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVy65sax6FVoNo2UTlJ0x%2Fuploads%2Fc9TzddU5aWWzJUX4pBE4%2Fimage.png?alt=media&amp;token=2d989696-c1aa-446a-b650-c0f3d67f7e56" alt=""><figcaption><p>Using time conversion Variables to make a template Model compatible with different Interval Types</p></figcaption></figure>
