# Moratoriums (Beta)



<Callout type="warn">
  This feature is currently in beta and may be subject to change. Before using it in production, please contact your Socotra representative.
</Callout>

Overview [#overview]

A moratorium is a temporary suspension of certain policy servicing operations and billing operations across a select group of policies. Moratoriums are typically used in scenarios where an insurer, often mandated by a regulatory body, must provide relief to a group of policyholders during a specific time period, such as during a natural disaster or economic hardship.

When creating a moratorium, users have the ability to specify the effective time and end time of the moratorium, the operations to be suspended (such as autopay, cancellations, and delinquency), and the criteria for identifying affected policies (such as product type, geographic location, or other policy attributes). Once a moratorium is active, the system automatically enforces the configuration, ensuring that relevant operations are suspended for all policies that match the specified criteria.

Multiple moratoriums can be active at the same time, and a single policy can be affected by multiple, overlapping moratoriums. If a policy is affected by a moratorium, the `inScope` flag of the <ApiLink name="MoratoriumStatus" /> will show as `true`.

Use Cases [#use-cases]

While the primary use case of the moratoriums feature is regulatory compliance, this feature has also been designed to support other forms of underwriting holds, such as a carrier deciding to suspend quotes for new business, and coverage increases as a result of a catastrophe or in response to shifting market conditions.

Moratorium Status [#moratorium-status]

To check if a given policy is currently being governed by a moratorium, users can check the <ApiLink name="getQuoteMoratoriumsStatuses">status</ApiLink> of the moratorium. This will return a list of all moratoriums for a given policy, including the status of each moratorium, as shown in the example below:

```json
{
	"locator": "01K4B2HRJRPM4TTWYHHAA11BB22CC",
	"moratoriums": {
		"moratorium_1": {
			"applicable": true,
			"eligible": true,
			"inScope": true,
			"applicationMode": "optOut"
		},
		"moratorium_2": {
			"applicable": false,
			"eligible": false,
			"inScope": false,
			"applicationMode": "mandatory"
		}
	}
}
```

The `inScope` flag of the <ApiLink name="MoratoriumStatus" /> object is set to `true` if the moratorium is currently governing the policy. A moratorium is considered to be `inScope` for a policy when **both** of the following conditions are met:

* The moratorium is `applicable` to the policy
* The policy is `eligible` for the moratorium

Applicability [#applicability]

When created, the Moratorium's `applicationMode` determines how the moratorium is applied to policies. The `applicationMode` can be one of the following:

* **Mandatory**: The moratorium is automatically applied to all eligible policies.
* **Opt-Out**: The moratorium is automatically applied to all eligible policies, unless the policy is explicitly set to opt-out.
* **Opt-In**: The moratorium is **not** applied to eligible policies, unless the policy is explicitly set to opt-in.

Eligibility [#eligibility]

A policy's `eligibility` for a moratorium is determined by evaluating the <ApiLink name="MoratoriumPolicyMatchCriteriaRef">productRules</ApiLink> within the moratorium's `policyMatchCriteria`.
This will generally involve checking for a match between the value of some data field whose position in the data model is described in the rule's `path`, against a list of values provided in the `criteriaValues` - for example, a moratorium may be defined to be eligible for all policies whose `zipCode` is one of a list of specified zip codes.

Reporting [#reporting]

Tables providing moratorium details, quote and policy opt-in and opt-out records, and lists of affected quotes and policies are available in [Data Lake](/features/reporting/datalake).

Suspending Operations [#suspending-operations]

There are two scopes that can be suspended by a moratorium: policy servicing operations and billing operations. When creating a moratorium, there must be at least one policy servicing operation or billing operation suspension specified.

Policy Servicing Operations [#policy-servicing-operations]

* Users can specify a list of transaction categories and transaction types that will be suspended for all policies governed by the moratorium. These values can be specified in the `transactionCategory` and `transactionType` fields of the `policyHoldScope` object.
* `transactionType` values provide more granular control over the operations to be suspended.
* Transaction categories and transaction types specified in the `policyHoldScope` object will be allowed up to the `accept` life cycle state, but will be prevented from proceeding to `issued`.
* Quotes can be suspended by including the `issuance` transaction category in the `transactionCategory` list.

Billing Operations [#billing-operations]

* Users can specify a list of billing operations that will be suspended for all policies governed by the moratorium. These operations can be specified using the `billingHoldScope` object.
* This can include:
  * **policyInvoicingHold** - If `true`, no new invoices are generated for policies governed by the moratorium.

  * **autopayHold** - If `true`, autopay will not be triggered for invoices associated with policies governed by the moratorium. Autopay will be rescheduled for 24 hours later until the moratorium ends.

  * **deliquencyHold** - If `true`, new [delinquencies](/features/billing/delinquency) for policies governed by the moratorium, will be created, but will remain in the `preGrace` state.

  * **deferredInvoiceDueOffsetDays** - If specified, any invoices deferred by the `policyInvoicingHold` flag, once generated, will have their due date offset by the specified number of days from the end of the moratorium.

Effective Time [#effective-time]

By default, only policies issued prior to the `effectiveTime` are considered for a moratorium. This requirement can be waived by setting the `effectiveTimeWaived` flag to `true`. These policies must still meet the eligibility criteria defined in the `policyMatchCriteria` object.

End Time [#end-time]

A moratorium remains in effect from its `effectiveTime` through its `endTime`, even if the end time is not known when the moratorium is created. To facilitate this, the `endTime` property is optional and can be added later.

When a moratorium ends, all policies that were governed by the moratorium will immediately allow previously suspended operations to resume.

Any policy servicing operations will be permitted to now move beyond the `accepted` state, but no automatic actions are taken.

Billing workflows such as invoice generation, delinquency, and autopay will resume when their scheduled jobs execute and deferred work queues are processed. Refer to our article on [Moratoriums Billing Recovery](/features/moratoriums/moratoriums-billing-recovery) for more details on the billing recovery process.

Configuration Example [#configuration-example]

* The Texas Department of Insurance has issued bulletin `TDI-B-0914-24`, effective September 14, 2024. The duration is not yet known.
* Invoicing, autopay, and policy cancellations are prohibited for all homeowner policies where the dwelling is in one of the specified zip codes or counties.
* Any invoices deferred during the period should have a due date of no sooner than 15 days from the end of the moratorium.
* Policyholders may elect to forego the protections offered by the bulletin.
* New business policies issued after the moratorium goes into effect are not subject to the protections offered by the bulletin.
* Carriers may choose to prohibit other transaction types, such as limit increases or deductible reductions, during the moratorium period.
* Affected zip codes: \[`75001`, `75006`, `75007`, `75009`, `75010`, `75019`, `75020`]
* Affected counties: \[`Dallas`, `Collin`, `Rockwall`, `Kaufman`, `Ellis`]

Product Configuration [#product-configuration]

```json
{
    "products": {
        "Ho3": {
            "data": {
                "dwellingZip": {
                    "type": "string?"
                },
                "dwellingCounty": {
                    "type": "string?"
                }
            }
        },
        "Ho6": {
            "data": {
                "dwellingAddress": {
                    "type": "Address?"
                }
            },
            "customTypes": {
                "Address": {
                    "data": {
                        "zip": {
                            "type": "string?"
                        },
                        "county": {
                            "type": "string?"
                        }
                    }
                }
            }
        }
    },
    "transactionTypes": {
        "limitIncrease": {
            {
                "category" : "change",
                "costBearing" : true
            }
        },
        "reduceDeductible": {
            {
                "category" : "change",
                "costBearing" : true
            }
        }
    }
}
```

Moratorium Configuration [#moratorium-configuration]

```json
{
	"moratoriums": {
		"TDI_B_0914_24": {
			"type": "disaster",
			"description": "test moratorium",
			"applicationMode": "optOut",
			"effectiveTime": "2025-10-01T00:00:00Z",
			"policyMatchCriteria": {
				"criteriaValues": {
					"zipCode": [
						"75001",
						"75006",
						"75007",
						"75009",
						"75010",
						"75019",
						"75020"
					],
					"counties": ["Dallas", "Collin", "Rockwall", "Kaufman", "Ellis"]
				},
				"productsRules": {
					"rule1": {
						"product": "Ho3",
						"operator": "OR",
						"rules": [
							{
								"path": "data.dwellingZip",
								"criteriaKey": "zipCode"
							},
							{
								"path": "data.dwellingCounty",
								"criteriaKey": "counties"
							}
						]
					},
					"rule2": {
						"product": "Ho6",
						"operator": "OR",
						"rules": [
							{
								"path": "data.dwellingAddress.zip",
								"criteriaKey": "zipCode"
							},
							{
								"path": "data.dwellingAddress.county",
								"criteriaKey": "counties"
							}
						]
					}
				}
			},
			"effectiveTimeWaived": false,
			"policyHoldScope": {
				"transactionCategory": ["cancellation"],
				"transactionType": ["limitIncrease", "reduceDeductible"]
			},
			"billingHoldScope": {
				"policyInvoicingHold": true,
				"autopayHold": true,
				"deferredInvoiceDueOffsetDays": 15
			},
			"displayName": "TDI Bulletin TDI-B-0914-24"
		}
	}
}
```

<ApiSchema name="MoratoriumRef" />

Next Steps [#next-steps]

* [Moratoriums Billing Recovery](/features/moratoriums/moratoriums-billing-recovery)

See Also [#see-also]

* [Moratoriums API](/api/moratoriums)


## API Reference

MoratoriumRef
Properties:
  type (string, required)
  description (string)
  applicationMode (Enum optIn | optOut | mandatory, required) — Indicates whether the moratorium applies to all eligible policies or whether there is an option to opt in or out.
  effectiveTime (datetime, required)
  endTime (datetime) — The time the moratorium ends. This can be set after creation and updated to earlier or later.
  policyMatchCriteria (MoratoriumPolicyMatchCriteriaRef, required) — The criteria used to identify which policies are eligible for the moratorium.
  effectiveTimeWaived (boolean) — Indicates whether eligible policies issued after the moratorium effectiveTime are affected.
  policyHoldScope (PolicyHoldScopeRef, required) — Must be at least one of either policyHoldScope or billingHoldScope.
  billingHoldScope (BillingHoldScopeRef, required)
  displayName (string)