> For the complete documentation index, see [llms.txt](https://docs.coherent.global/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.coherent.global/build-spark-services/how-to-create-a-spark-service.md).

# How to: Create a Spark service

If you have not done so already, we recommend applying the recommendations from [How to: Prepare an Excel file for Spark](/build-spark-services/how-to-prepare-an-excel-file-for-spark.md) to your candidate Excel file and reviewing [Tutorial: Map inputs and outputs](/build-spark-services/tutorial-map-inputs-and-outputs.md).

## Sample file

This sample file from [Tutorial: Map inputs and outputs](/build-spark-services/tutorial-map-inputs-and-outputs.md) can be used to follow along with the steps.

{% file src="/files/ZFUenVfQtWjA49VUHfZd" %}

## Add a new service <a href="#how-to-add-a-service" id="how-to-add-a-service"></a>

See [Tutorial: Get started in 5 minutes](/tutorial-get-started-in-5-minutes.md) for an overview of this process.

1. Go to the [Folder overview](/navigation/folder-overview.md) to where you want to add the new service or [Home](/navigation/home.md#add-a-new-folder) first.
2. There are two ways to start adding a new service.
   1. Select **New service** at the top right.
      1. If you want to choose a different version of the [Neuron](/build-spark-services/neuron.md) compiler for compatibility or testing reasons, you can select the **Neuron version**.
      2. Select **Browse** or drag the workbook into the upload area. Spark supports `.xlsx` and `.xlsm` files.
   2. Drag and drop an Excel file into a blank area of the screen.
3. The upload will commence and the **New service** modal appears.
4. You can change the **Service name**. The initial name is taken from the uploaded filename.
5. After the metadata from the file is read, the version details will be populated with workbook statistics.
   * **The person months estimate is based upon the 'Constructive Cost Model' (COCOMO), similar to the "NASA STRS COCOMO Calculation". `1` person-month would represent one month effort by one person to complete the development of a task.**
6. The remaining fields can be edited at your discretion:
   1. Spark's version numbering system supports [Semantic Versioning](https://semver.org/) `MAJOR.MINOR.PATCH`. Select between **Major**, **Minor**, or **Patch** increment for the initial version number. A **Custom** semantic version can also be entered.
   2. Add a **Version label** to better differentiate between versions in the user interface.
   3. Apply tags to the Spark service. The `tenant-admin` can make this a required action.
   4. Set **Effective dates** by clicking the expand and setting the **Effective from** and **Effective until**. These dates can be used by Spark to [Manage service versions and effective dates](/build-spark-services/manage-service-versions-and-effective-dates.md) functionality and to dynamically select the latest version given a particular transaction date.
   5. In the **Notes** tab add a **Release note** and **Description**.
7. When the model is successfully converted, the progress bar will show **Successfully converted 100%**.
8. Any warnings or errors raised by the compiler will appear in the **Upload log** tab.
   * Learn more about these messages in [Upload log messages](/build-spark-services/upload-log-messages.md).
   * The log messages can be copied or downloaded.
   * The messages can be reviewed again later in [Service Documentation](/navigation/service-documentation.md#upload-details).
9. Select **Publish**.
