> 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/manage-service-versions-and-effective-dates.md).

# Manage service versions and effective dates

{% hint style="info" %}
After an Excel file has been uploaded to Spark and the logic is converted to code, it is referred to as a service. Multiple versions of a service can be added to an existing service, called service versions.
{% endhint %}

In Spark, each service version has effective start and effective end dates. Spark can serve the different service versions of one service based upon a transaction date input.

## Define effective from and effective until dates for a service version

* In any action that leads to a new service version, you can set the **Effective from** and **Effective until** dates for the service version.
* By default, **Effective from** is set to the upload date and time. **Effective until** date is set `100 years` into the future.
* Dates and times are defined in your local time. Check the detected time zone in the [Navigation menu](/navigation/navigation-menu.md#user-menu).
* You can also change the dates for an existing service version in[Service Documentation](/navigation/service-documentation.md#edit-a-service-property).

## Resolve service versions

<figure><img src="https://2714190325-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fc7fek1ZgAUH5MA3m5pH8%2Fuploads%2FdJczjU2H2WaEIlRpyXKT%2Fimage.png?alt=media&amp;token=63d4701e-0901-4fb9-bec6-743db7b21c89" alt=""><figcaption></figcaption></figure>

[Execute API (v3)](/spark-apis/execute-api/execute-api-v3.md) uses the `request_meta` `transaction_date`.

* If a specific `version` or `version_id` is being called, the API will ignore the `transaction_date`.
* If the `transaction_date` is specified and no version is specified, it will use the latest version that applies at the time of the `transaction_date`.
* It is important to note that the Execute API will always resolve the `version_id` parameter first, `service_id` parameter second, and then `service_uri` last. It is possible for an API request that these three parameters may refer to different services but Spark will resolve the reference in the same order.
* This functionality cannot be tested within the [API Tester](/navigation/api-tester.md) as it is service version specific. You must use an external application to make the API request.

<table><thead><tr><th width="224.33333333333331">Invocation method</th><th>transaction_date</th><th>Version resolution</th></tr></thead><tbody><tr><td><code>version_id</code></td><td>has no impact on version resolution</td><td>Version specified by the API call.</td></tr><tr><td><code>service_id</code> or <code>service_uri</code></td><td>none provided</td><td>Latest version that applies where the <code>transaction_date</code> equals the current time.</td></tr><tr><td><code>service_id</code> or <code>service_uri</code></td><td>user provided</td><td>Latest version that applies at the <code>transaction_date</code>.<br>If the <code>transaction_date</code> is outside of the effective from or effective until dates for any service versions, then no calculation will be returned.</td></tr></tbody></table>
