> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fusioncore.us/llms.txt
> Use this file to discover all available pages before exploring further.

# Anniversary Subscription Plans

> Create an Anniversary Subscription Plan, a subscription that lasts a set number of months from each subscriber's individual start date.

## Overview

An **Anniversary Subscription Plan** lasts a fixed number of months from the date each subscriber starts. Because the term is measured from the individual start date, two subscribers who join on different days renew on different days. Use this plan type when members, donors, or certification holders join at varying times throughout the year.

An Anniversary plan is a record of the `Subscription_Plan__c` object that uses the `FC_Anniversary` **record type** (label "Anniversary"). A record type is a Salesforce setting that makes one object behave in more than one way; choosing the Anniversary record type is what makes the plan calculate its term by anniversary. There is no separate "type" picklist to set.

## Before You Start

* You need permission to create `Subscription_Plan__c` records (the **fusionCore Subscriptions** permission set or equivalent).
* Decide the term length in months — for example, 12 for a one-year subscription.

## How the Term Is Calculated

At purchase time, fusionCore sets the subscription's end date from the plan's **Join Term**:

```
endDate = startDate.addMonths(Join_Term__c).addDays(-1)
```

So a subscriber who starts on March 15, 2025 with a **Join Term** (`Join_Term__c`) of 12 has an end date of March 14, 2026 — twelve months later, minus one day, so the next term begins cleanly on the anniversary.

<Info>
  **Join Term** (`Join_Term__c`) is required for an Anniversary plan to work. Without it, the term cannot be calculated and the purchase fails. See [Limitations and Common Pitfalls](#limitations-and-common-pitfalls) below.
</Info>

## How to Create an Anniversary Subscription Plan

<Steps>
  <Step title="Open the Subscription Plans list">
    Click the **App Launcher** (the nine dots at the top left of Salesforce) and type **Subscription Plan**, then open the **Subscription Plans** list.

    <Frame caption="Searching for Subscription Plan in the App Launcher">
      <img src="https://mintcdn.com/fusionspan/4u-JGPkRA8QDMGYi/images/end-user-guides/4856250396/AppLauncher_SubscriptionPlan.png?fit=max&auto=format&n=4u-JGPkRA8QDMGYi&q=85&s=2ca0416380f0254a0971b74a9badf949" alt="The App Launcher search box with Subscription Plan typed in" width="3400" height="1744" data-path="images/end-user-guides/4856250396/AppLauncher_SubscriptionPlan.png" />
    </Frame>
  </Step>

  <Step title="Create a new plan with the Anniversary record type">
    At the top right of the list view, click **New**.

    <Frame caption="The New button on the Subscription Plans list view">
      <img src="https://mintcdn.com/fusionspan/4u-JGPkRA8QDMGYi/images/end-user-guides/4856250396/New_SubscriptionPlan.png?fit=max&auto=format&n=4u-JGPkRA8QDMGYi&q=85&s=afa88715f26e151f0bf150ebcade4ff4" alt="The New button at the top right of the Subscription Plans list view" width="3396" height="1744" data-path="images/end-user-guides/4856250396/New_SubscriptionPlan.png" />
    </Frame>

    Select the **Anniversary** record type, then click **Next**. This is the step that makes the plan an Anniversary plan.

    <Frame caption="Selecting the Anniversary record type">
      <img src="https://mintcdn.com/fusionspan/4u-JGPkRA8QDMGYi/images/end-user-guides/4856250396/SubscriptionPlan_RecordType.png?fit=max&auto=format&n=4u-JGPkRA8QDMGYi&q=85&s=ab0004faa800fadfa42c2bda88c8baed" alt="The record type selection dialog with Anniversary chosen" width="3398" height="1728" data-path="images/end-user-guides/4856250396/SubscriptionPlan_RecordType.png" />
    </Frame>
  </Step>

  <Step title="Fill in the plan fields">
    Complete the plan's fields:

    * **Name** (required)
    * **Join Term** (`Join_Term__c`) — required; the term length in months
    * **Renewal Days** (`Renewal_Days__c`) — optional; how many days before the end date the nightly renewal job generates the renewal order
    * **Grace Period** (`Grace_Period__c`) — optional; extra days after the end date before the subscription lapses
    * **Auto Charge** (`Auto_Charge__c`) — optional; whether renewals charge a stored payment method automatically (Disabled, Enabled, or Required)
    * **Active** (`Active__c`) — leave checked so the plan can be used; it is checked by default

    <Frame caption="The Anniversary Subscription Plan information fields">
      <img src="https://mintcdn.com/fusionspan/4u-JGPkRA8QDMGYi/images/end-user-guides/4856250396/SP_AnniversaryInfo.png?fit=max&auto=format&n=4u-JGPkRA8QDMGYi&q=85&s=ebe5e7623ddbe200378cbb81a6fde2d0" alt="The new Anniversary Subscription Plan form with the information fields filled in" width="1682" height="1070" data-path="images/end-user-guides/4856250396/SP_AnniversaryInfo.png" />
    </Frame>
  </Step>

  <Step title="Save the plan">
    Click **Save**.

    <Note>
      After saving, link the plan to a subscription product through a `Product_Subscription_Plan__c` record, and mark exactly one plan as the default for that product. The product must have **Is Subscription** checked (and **Is Membership** for memberships). See [Subscription Products](/end-user-guides/products/product-set-up/subscription-products).
    </Note>
  </Step>
</Steps>

## Key Fields

| Field        | API name          | Notes                                                                                |
| ------------ | ----------------- | ------------------------------------------------------------------------------------ |
| Active       | `Active__c`       | Checkbox, checked by default. The plan must be active to be used.                    |
| Join Term    | `Join_Term__c`    | Number of months. Required — drives the term end date.                               |
| Renewal Days | `Renewal_Days__c` | Number of days before the end date that the renewal job generates the renewal order. |
| Grace Period | `Grace_Period__c` | Number of days after the end date before the subscription lapses.                    |
| Auto Charge  | `Auto_Charge__c`  | Disabled, Enabled, or Required — controls automatic charging of renewals.            |

## Limitations and Common Pitfalls

* **Join Term is required, but it is enforced at purchase, not at save.** A plan can save without **Join Term** (`Join_Term__c`), yet a subscription purchase that uses the plan fails with a validation error (`Anniversary_Subscription_Plan_Validation_Failed_V2`) when **Join Term** is missing. Always set it.
* **The plan must be active to be used.** If **Active** (`Active__c`) is unchecked, the plan is not available for new subscriptions.
* **Renewal Days drives the automatic renewal job.** If **Renewal Days** (`Renewal_Days__c`) is blank, the nightly renewal job never picks up subscriptions on this plan, so renewal orders are not generated automatically. Manual renewals still work.
* **An unrecognized record type stops processing.** Subscription term logic only handles the `FC_Anniversary` and `FC_Calendar` record types. A plan on any other record type raises an unhandled-record-type error (`Error_Unhandled_Record_Type_Id_V2`).
