---
title: "How do I create a pricing template?"
slug: "how-do-i-create-a-fund-configuration-module"
updated: 2026-03-02T10:58:58Z
published: 2026-03-02T10:58:58Z
canonical: "support.lusid.com/how-do-i-create-a-fund-configuration-module"
---

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

# How do I create a pricing template?

You can create a pricing template (also known as a fund configuration module) that identifies general ledger accounts in an existing [chart of accounts](/v1/docs/how-do-i-create-a-chart-of-accounts) (CoA) responsible for recording activity such as dealing (subscriptions and redemptions) and P&L.

This is important because LUSID calculates fund GAV as dealing plus P&L.

## Methods

LUSID web appLUSID APILuminesce

Call the [CreateFundConfiguration](https://www.lusid.com/docs/api/lusid/endpoints/fund-configuration-entities/CreateFundConfiguration/) API:

```json
curl -X POST 'https://<your-domain>.lusid.com/api/api/fundconfigurations/MyFunds'
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'
  -d '{
  "code": "Standard",
  "displayName": "Standard pricing template",
  "dealingFilters": [
    {
      "filterId": "SUBS",
      "filter": "generalLedgerAccountCode eq '3-Subscriptions'"
    },
    {
      "filterId": "REDS",
      "filter": "generalLedgerAccountCode eq '4-Redemptions'"
    }
  ],
  "pnlFilters": [
    {
      "filterId": "PnL",
      "filter": "generalLedgerAccountCode eq '5-PnL'"
    }
  ]
}'
```

Navigate to **Fund Accounting > Pricing templates** and click the **Create pricing template** button:

![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image(318).png)

Write a Luminesce SQL query using the [Lusid.FundConfiguration.Writer](/v1/docs/lusidfundconfigurationwriter) provider and execute it from a tool such as the LUSID web app:

![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image(969).png)

## Data fields and properties

This section supplements the [API documentation](https://www.lusid.com/docs/api/lusid/endpoints/fund-configuration-entities/CreateFundConfiguration/) and on-screen help text in the LUSID web app.

### Fields

> **Note**: Please do not add `backOutFilters` or `externalFeeFilters` for now.

A pricing template is identified by a `scope` and a `code` that must be unique within that scope.

You should specify at least one filter for each of:

- `dealingFilters` to identify account(s) associated with subscription and redemption activity.
- `pnlFilters` to identify account(s) associated with profit and loss.

If you specify multiple filters for either, note the order is significant; LUSID uses ***the first matching filter found***. Each filter must consist of:

- A `filterId`:
  - For `pnlFilters.filterId`, this can be any meaningful string uniquely identifying the filter in the set.
  - For `dealingFilters.filterId`, this must be `SUBS` or `REDS` in this release. This restriction should be lifted shortly.
- A `filter` expression. [Syntax and allowed values](/v1/docs/how-do-i-create-a-fund-configuration-module#syntax-of-a-filter).

### Properties

You can optionally extend the data model of a pricing template by adding [custom properties](/v1/docs/properties) from the `FundConfiguration` domain, either when you create it or subsequently using the [UpsertFundConfigurationProperties](https://www.lusid.com/docs/api/lusid/endpoints/fund-configuration/UpsertFundConfigurationProperties) API.

## Subsequent updates

Once a pricing template is created, you can change most aspects using the [PatchFundConfiguration](https://www.lusid.com/docs/api/lusid/endpoints/fund-configuration/PatchFundConfiguration) API.

Note the easiest way to change the order of filters is to use the grab handles in the LUSID web app:

![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image(319).png)

## Syntax of a filter

The syntax of a `filter` expression is:

`&lt;attribute&gt; &lt;operator&gt; &lt;value&gt;`

...where:

- `&lt;attribute&gt;` and `&lt;value&gt;` are explained in the table below.
- `&lt;operator&gt;` is one of the [LUSID filter operators](/v1/docs/filtering-information-retrieved-from-lusid#appendix-a-supported-operators).

Note the following:

- A `filter` expression is case-insensitive.
- A string `&lt;value&gt;` must be enclosed in single straight quote marks (the `%27` UTF-8 encoding).
- You can concatenate expressions using the `and` and `or` operators. If you use both, [standard boolean operator precedence](/v1/docs/filtering-information-retrieved-from-lusid#logical-operators) applies.

| `&lt;attribute&gt;` | **Data type** | **Example expression** | **Explanation/origin of** `&lt;value&gt;` |
| --- | --- | --- | --- |
| An account field | System-defined | `Account.type in 'Asset', 'Liabilities'` | This can be any of the [stored fields for an account](https://www.lusid.com/docs/api/lusid/schemas/Account/), prefixed by `Account.` Nested fields can be accessed using dot notation. ![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/b91ef994-b388-4c54-8c6d-57c459887ecf.png) |
| An account property | User-defined | `properties[Account/Type/AssetClass] eq 'Equity'` | This can be any property with a 3-stage key in the `Account` domain. |
| A fund property | User-defined | `properties[Fund/Managers/Name] eq 'Fred Bloggs'` | This can be any property with a 3-stage key in the `Fund` domain. |
| An ABOR property (V1 funds only) | User-defined | `properties[Abor/Client/Accountant] not in 'Fred Bloggs', 'Sarah Smart'` | This can be any property with a 3-stage key in the `Abor` domain. |
