# Finance: bill the customer and get paid

> A process map exported from forks.world (https://forks.world). Author: Brian. Source: https://forks.world/p/cmv4pv7ir000mjm060llbjzcy
> It describes who does what, in what order, and with which technology. Read the plain-language sections first; the JSON at the end is the exact, complete data.

## Summary

- 10 steps across 1 layer
- Persona: Billing team, Customer, Bank, Collections

## Pain points

Where this process hurts, worst first:

- **Escalate or write off as a bad debt** (Finance: bill the customer and get paid; critical): Late payments hurt cash flow

## How to read this file

- A process is made of **layers**. The main layer is the top level; any step of kind `subprocess` opens a detail layer with its own lanes and steps.
- **Lanes** are either persona (people/roles) or technology (systems). Each step belongs to one lane; `using` lists tools a person uses for that step.
- Step kinds: `start`, `task`, `decision` (its arrows carry the answer as a label), `subprocess`, `end`.

## Finance: bill the customer and get paid

Lanes:
- Billing team: person / role (id `fin`)
- Customer: person / role (id `cust`)
- Bank: person / role (id `bank`)
- Collections: person / role (id `ar`)

Steps, in the order they run:

1. **Know what is owed from the order or the subscription** [start; Billing team; id `f1`]
   - then Create and send the invoice
2. **Create and send the invoice** [subprocess; Billing team; id `f2`], links to the published process "Invoice the customer: get paid without the drama" (https://forks.world/p/cmv0ie8nd0036jw06z0tkx45t; full text at https://forks.world/api/public/cmv0ie8nd0036jw06z0tkx45t/export)
   - then Receives it and pays
3. **Receives it and pays** [task; Customer; id `f3`]
   - then Does the payment arrive on time?
4. **Does the payment arrive on time?** [decision; Bank; id `f4`]
   - if "Yes" go to Apply the cash to the invoice; if "No" go to Send reminders and call the customer
5. **Apply the cash to the invoice** [task; Billing team; id `f5`]
   - then Close the books for the period
6. **Close the books for the period** [end; Billing team; id `f9`]
7. **Send reminders and call the customer** [subprocess; Collections; id `f6`], links to the published process "Collect payment: from late to paid" (https://forks.world/p/cmv0ie93x003bjw06cukcnjmj; full text at https://forks.world/api/public/cmv0ie93x003bjw06cukcnjmj/export)
   - then Is there a dispute?
8. **Is there a dispute?** [decision; Collections; id `f7`]
   - if "Yes" go to Fix the invoice or issue a credit; if "No" go to Escalate or write off as a bad debt
9. **Fix the invoice or issue a credit** [task; Billing team; id `f8`]
   - then Create and send the invoice
10. **Escalate or write off as a bad debt** [task; Collections; id `f5a`] ⚠ PAIN POINT (critical): Late payments hurt cash flow
   - then Close the books for the period

```mermaid
flowchart LR
  subgraph l_fin["Billing team"]
    n_f1(["Know what is owed from the order or the subscription"])
    n_f2[["Create and send the invoice"]]
    n_f5["Apply the cash to the invoice"]
    n_f8["Fix the invoice or issue a credit"]
    n_f9(["Close the books for the period"])
  end
  subgraph l_cust["Customer"]
    n_f3["Receives it and pays"]
  end
  subgraph l_bank["Bank"]
    n_f4{"Does the payment arrive on time?"}
  end
  subgraph l_ar["Collections"]
    n_f6[["Send reminders and call the customer"]]
    n_f7{"Is there a dispute?"}
    n_f5a["Escalate or write off as a bad debt"]
  end
  n_f1 --> n_f2
  n_f2 --> n_f3
  n_f3 --> n_f4
  n_f4 -->|"Yes"| n_f5
  n_f4 -->|"No"| n_f6
  n_f5 --> n_f9
  n_f6 --> n_f7
  n_f7 -->|"Yes"| n_f8
  n_f7 -->|"No"| n_f5a
  n_f8 --> n_f2
  n_f5a --> n_f9
```

## Full data (JSON)

```json
{
  "title": "Finance: bill the customer and get paid",
  "maps": {
    "m_root": {
      "id": "m_root",
      "lanes": [
        {
          "id": "fin",
          "name": "Billing team",
          "type": "person"
        },
        {
          "id": "cust",
          "name": "Customer",
          "type": "person"
        },
        {
          "id": "bank",
          "name": "Bank",
          "type": "person"
        },
        {
          "id": "ar",
          "name": "Collections",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "f1",
          "kind": "start",
          "lane": "fin",
          "next": [
            {
              "to": "f2"
            }
          ],
          "uses": [],
          "label": "Know what is owed from the order or the subscription"
        },
        {
          "id": "f2",
          "kind": "subprocess",
          "lane": "fin",
          "link": {
            "id": "cmv0ie8nd0036jw06z0tkx45t",
            "scope": "public",
            "title": "Invoice the customer: get paid without the drama"
          },
          "next": [
            {
              "to": "f3"
            }
          ],
          "uses": [],
          "label": "Create and send the invoice"
        },
        {
          "id": "f3",
          "kind": "task",
          "lane": "cust",
          "next": [
            {
              "to": "f4"
            }
          ],
          "uses": [],
          "label": "Receives it and pays"
        },
        {
          "id": "f4",
          "kind": "decision",
          "lane": "bank",
          "next": [
            {
              "to": "f5",
              "label": "Yes"
            },
            {
              "to": "f6",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Does the payment arrive on time?"
        },
        {
          "id": "f5",
          "kind": "task",
          "lane": "fin",
          "next": [
            {
              "to": "f9"
            }
          ],
          "uses": [],
          "label": "Apply the cash to the invoice"
        },
        {
          "id": "f6",
          "kind": "subprocess",
          "lane": "ar",
          "link": {
            "id": "cmv0ie93x003bjw06cukcnjmj",
            "scope": "public",
            "title": "Collect payment: from late to paid"
          },
          "next": [
            {
              "to": "f7"
            }
          ],
          "uses": [],
          "label": "Send reminders and call the customer"
        },
        {
          "id": "f7",
          "kind": "decision",
          "lane": "ar",
          "next": [
            {
              "to": "f8",
              "label": "Yes"
            },
            {
              "to": "f5a",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Is there a dispute?"
        },
        {
          "id": "f8",
          "kind": "task",
          "lane": "fin",
          "next": [
            {
              "to": "f2"
            }
          ],
          "uses": [],
          "label": "Fix the invoice or issue a credit"
        },
        {
          "id": "f5a",
          "kind": "task",
          "lane": "ar",
          "next": [
            {
              "to": "f9"
            }
          ],
          "pain": {
            "note": "Late payments hurt cash flow",
            "level": 3
          },
          "uses": [],
          "label": "Escalate or write off as a bad debt"
        },
        {
          "id": "f9",
          "kind": "end",
          "lane": "fin",
          "next": [],
          "uses": [],
          "label": "Close the books for the period"
        }
      ],
      "title": "Finance: bill the customer and get paid",
      "parent": null
    }
  }
}
```
