# Contest a parking ticket

> A process map exported from forks.world (https://forks.world). Author: forks.world community. Source: https://forks.world/p/cmv3g9nz0000pjk06oo7ekv2h
> 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: You, City parking office
- Technology / systems: City parking website

## Pain points

Where this process hurts, worst first:

- **Photograph the signs, curb, meter and your car's spot** (Contest a parking ticket; painful): Evidence is hardest to get once you've driven away
- **Request a hearing** (Contest a parking ticket; painful): Some cities ask you to pay the fine first and refund it if you win

## 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`.

## Contest a parking ticket

Lanes:
- You: person / role (id `you`)
- City parking office: person / role (id `city`)
- City parking website: technology / system (id `site`)

Steps, in the order they run:

1. **Find a ticket on your car** [start; You; id `g1`]
   - then Check the deadline and whether the ticket details are right
2. **Check the deadline and whether the ticket details are right** [task; You; id `g2`]
   - then Worth contesting?
3. **Worth contesting?** [decision; You; id `g3`]
   - if "Yes" go to Photograph the signs, curb, meter and your car's spot; if "No, pay it" go to Pay the fine before late fees kick in
4. **Photograph the signs, curb, meter and your car's spot** [task; You; id `g4`] ⚠ PAIN POINT (painful): Evidence is hardest to get once you've driven away
   - then Submit a written contest with your evidence
5. **Submit a written contest with your evidence** [task; You; id `g5`], using City parking website
   - then Review it
6. **Review it** [task; City parking office; id `g6`]
   - if "Dismissed" go to Ticket resolved; if "Upheld" go to Request a hearing
7. **Ticket resolved** [end; You; id `g11`]
8. **Request a hearing** [task; You; id `g7`] ⚠ PAIN POINT (painful): Some cities ask you to pay the fine first and refund it if you win
   - then Hold the hearing
9. **Hold the hearing** [task; City parking office; id `g8`]
   - if "Dismissed" go to Ticket resolved; if "Upheld" go to Pay the fine before late fees kick in
10. **Pay the fine before late fees kick in** [task; You; id `g10`], using City parking website
   - then Ticket resolved

```mermaid
flowchart LR
  subgraph l_you["You"]
    n_g1(["Find a ticket on your car"])
    n_g2["Check the deadline and whether the ticket details are right"]
    n_g3{"Worth contesting?"}
    n_g4["Photograph the signs, curb, meter and your car's spot"]
    n_g5["Submit a written contest with your evidence"]
    n_g7["Request a hearing"]
    n_g10["Pay the fine before late fees kick in"]
    n_g11(["Ticket resolved"])
  end
  subgraph l_city["City parking office"]
    n_g6["Review it"]
    n_g8["Hold the hearing"]
  end
  n_g1 --> n_g2
  n_g2 --> n_g3
  n_g3 -->|"Yes"| n_g4
  n_g3 -->|"No, pay it"| n_g10
  n_g4 --> n_g5
  n_g5 --> n_g6
  n_g6 -->|"Dismissed"| n_g11
  n_g6 -->|"Upheld"| n_g7
  n_g7 --> n_g8
  n_g8 -->|"Dismissed"| n_g11
  n_g8 -->|"Upheld"| n_g10
  n_g10 --> n_g11
```

## Full data (JSON)

```json
{
  "title": "Contest a parking ticket",
  "maps": {
    "m_root": {
      "id": "m_root",
      "lanes": [
        {
          "id": "you",
          "name": "You",
          "type": "person"
        },
        {
          "id": "city",
          "name": "City parking office",
          "type": "person"
        },
        {
          "id": "site",
          "name": "City parking website",
          "type": "system"
        }
      ],
      "steps": [
        {
          "id": "g1",
          "kind": "start",
          "lane": "you",
          "next": [
            {
              "to": "g2"
            }
          ],
          "uses": [],
          "label": "Find a ticket on your car"
        },
        {
          "id": "g2",
          "kind": "task",
          "lane": "you",
          "next": [
            {
              "to": "g3"
            }
          ],
          "uses": [],
          "label": "Check the deadline and whether the ticket details are right"
        },
        {
          "id": "g3",
          "kind": "decision",
          "lane": "you",
          "next": [
            {
              "to": "g4",
              "label": "Yes"
            },
            {
              "to": "g10",
              "label": "No, pay it"
            }
          ],
          "uses": [],
          "label": "Worth contesting?"
        },
        {
          "id": "g4",
          "kind": "task",
          "lane": "you",
          "next": [
            {
              "to": "g5"
            }
          ],
          "pain": {
            "note": "Evidence is hardest to get once you've driven away",
            "level": 2
          },
          "uses": [],
          "label": "Photograph the signs, curb, meter and your car's spot"
        },
        {
          "id": "g5",
          "kind": "task",
          "lane": "you",
          "next": [
            {
              "to": "g6"
            }
          ],
          "uses": [
            "site"
          ],
          "label": "Submit a written contest with your evidence"
        },
        {
          "id": "g6",
          "kind": "task",
          "lane": "city",
          "next": [
            {
              "to": "g11",
              "label": "Dismissed"
            },
            {
              "to": "g7",
              "label": "Upheld"
            }
          ],
          "uses": [],
          "label": "Review it"
        },
        {
          "id": "g7",
          "kind": "task",
          "lane": "you",
          "next": [
            {
              "to": "g8"
            }
          ],
          "pain": {
            "note": "Some cities ask you to pay the fine first and refund it if you win",
            "level": 2
          },
          "uses": [],
          "label": "Request a hearing"
        },
        {
          "id": "g8",
          "kind": "task",
          "lane": "city",
          "next": [
            {
              "to": "g11",
              "label": "Dismissed"
            },
            {
              "to": "g10",
              "label": "Upheld"
            }
          ],
          "uses": [],
          "label": "Hold the hearing"
        },
        {
          "id": "g10",
          "kind": "task",
          "lane": "you",
          "next": [
            {
              "to": "g11"
            }
          ],
          "uses": [
            "site"
          ],
          "label": "Pay the fine before late fees kick in"
        },
        {
          "id": "g11",
          "kind": "end",
          "lane": "you",
          "next": [],
          "uses": [],
          "label": "Ticket resolved"
        }
      ],
      "title": "Contest a parking ticket",
      "parent": null
    }
  }
}
```
