# Settings

URL: /code/file-conventions/settings · Id: `page:code/file-conventions/settings`

> The settings file holds the Settings a Startup sets that its root file does not, inherited nearest-holder first.

`settings.mdx` holds the [Settings](/business/nouns/setting) a [Startup](/business/nouns/startup) sets that `startup.ts` does not. A Setting is inherited from its nearest holder, [Studio](/business/nouns/studio) to [Startup](/business/nouns/startup) to [Product](/business/nouns/product), unless a file sets its own.

```text
leaseline/
├── startup.ts
└── settings.mdx      Settings not set in startup.ts
```

## Reference
MDX, frontmatter only. Each key is a Setting, and its value overrides the inherited one.

| Key | Type | Holds |
| --- | --- | --- |
| `trial` | duration | How long a trial runs before the first charge, such as `14d` |
| `signup` | `email \| workEmail \| magicLink \| keyless \| apiKey \| oauth \| agentIdentity` | How a buyer signs up to the Startup's [App](/business/nouns/app) |
| `priceMove` | number | The largest [Price change](/workflows/processes/pricing/price-change), as a share, an [Agent](/business/nouns/agent) makes without an [Approval](/business/nouns/approval) |
| `delayWindow` | map | How long each one-way [Verb](/business/nouns/verb) waits before it runs, by Verb |
| `locked` | list | Settings no Product below may change |

## Examples
### Minimal
```mdx title="settings.mdx"
---
trial: 30d
---
```

### Leaseline
```mdx title="settings.mdx"
---
trial: 30d
signup: magicLink
priceMove: 0.1
delayWindow: { refund: 1 business hour }
locked: [signup]
---
```

## What it builds
The [StartupBuilder](/code/builders/startup) compiles each key into one Setting value on the Startup.

- a `Setting` per key, with `locked` where listed
- a [Change](/business/nouns/change) when a value moves, so every Setting has a history
- an [Approval](/business/nouns/approval) when a later [Action](/business/nouns/action) exceeds a Setting such as `priceMove`

## Good to know
- A key set in both `startup.ts` and `settings.mdx` fails the parse check, so every Setting has one home.
- A Studio sets defaults for every Startup below it in `studio.ts`.
- [Policies](/business/nouns/policy) are rulings on how numbers are computed, in the [policies file](/code/file-conventions/policies). Settings are choices.