# Verb Function

URL: /code/project-structure/verb-function · Id: `convention:verb-function`

> A Verb Function is the code that runs one Verb, named for its Noun and Verb, so the file name binds it with no registration.

A [Verb](/business/nouns/verb) [Function](/business/nouns/function) is the code that runs one Verb, named for its [Noun](/business/nouns/noun) and Verb, so the file name binds it with no registration.

| Property | Value |
| --- | --- |
| Path | `nouns/[Noun].[verb].ts` |
| Holds | [Function](/business/nouns/function) |
| Kind | file |
| Leaders | db-first, git-first |
| Team | [Engineering Team](/agents/engineering) |
| Written by | [Change.merge](/business/nouns/change/merge) |
| Compiled by | [SoftwareBuilder](/code/builders/software) |

### Example
`nouns/Close.reconcile.ts` in a Startup repository. Closewise, a sample business, declares a `Close` Noun.

```ts title="nouns/Close.reconcile.ts"
export default async (close: Close, input: CloseReconcileInput, $: $) => {
  const open = await $.Transaction.list({ where: `receipt = null and settledAt <= '${input.through}'` })
  return $.Close.update({ id: close.$id, balanced: open.length === 0 })
}
```

### Exports
| Export | Kind | Type |
| --- | --- | --- |
| `default` | default | `(thing: Noun, input: NounVerbInput, $: $) => Promise<Output>` |

### Signature
```ts
(thing: Noun, input: NounVerbInput, $: $) => Promise<Output>
```

### Generates
[SoftwareBuilder](/code/builders/software) compiles it into these records, Verbs and routes.

| Kind | What |
| --- | --- |
| Records | [Function](/business/nouns/function), [Action](/business/nouns/action) |
| Verbs | None. |
| Routes | `POST /{ns}/{nouns}/{noun}/{verb}` |