{
  "pairs": [
    {
      "slug": "case-study",
      "appWidth": 1440,
      "variants": [
        {
          "label": "accepted",
          "sourceSha256": "233536866e325c46d0e2617b00bee26c6cbdfcb485aeed2e424374c0497b44d5",
          "file": "candidate-pairs/case-study--accepted--app-1440.png",
          "pngSha256": "402fdc75309d834de1381a9bf228c80f5ceda4d74ebce81c5878fc9ed103b1ea",
          "ariaTree": "- main:\n  - text: Case study · Freight & logistics\n  - heading \"Northwind Freight cut invoice disputes by 71% in one quarter\" [level=1]\n  - paragraph: 71%\n  - paragraph: fewer disputed invoices in Q2 2026, measured against Northwind's own twelve-month baseline — 19.4% of invoices down to 5.6%.\n  - term: Company\n  - definition: Northwind Freight\n  - term: Business\n  - definition: Regional LTL carrier\n  - term: Scale\n  - definition: 1,200 trucks · 22 branches\n  - term: Live since\n  - definition: March 2026\n  - region \"Before and after · Q2 2025 baseline vs Q2 2026\":\n    - table \"Before and after · Q2 2025 baseline vs Q2 2026\":\n      - caption: Before and after · Q2 2025 baseline vs Q2 2026\n      - rowgroup:\n        - row \"Metric Before After Change\":\n          - columnheader \"Metric\"\n          - columnheader \"Before\"\n          - columnheader \"After\"\n          - columnheader \"Change\"\n      - rowgroup:\n        - row \"Invoices disputed 19.4% 5.6% −71%\":\n          - cell \"Invoices disputed\"\n          - cell \"19.4%\"\n          - cell \"5.6%\"\n          - cell \"−71%\"\n        - row \"Clerk hours spent on disputes 854 / mo 179 / mo −79%\":\n          - cell \"Clerk hours spent on disputes\"\n          - cell \"854 / mo\"\n          - cell \"179 / mo\"\n          - cell \"−79%\"\n        - row \"Days sales outstanding 61 days 43 days −30%\":\n          - cell \"Days sales outstanding\"\n          - cell \"61 days\"\n          - cell \"43 days\"\n          - cell \"−30%\"\n        - row \"Time to resolve one dispute 22 min 16 min −27%\":\n          - cell \"Time to resolve one dispute\"\n          - cell \"22 min\"\n          - cell \"16 min\"\n          - cell \"−27%\"\n        - row \"Unrecovered accessorial write-offs $310K / yr $88K / yr −72%\":\n          - cell \"Unrecovered accessorial write-offs\"\n          - cell \"$310K / yr\"\n          - cell \"$88K / yr\"\n          - cell \"−72%\"\n      - rowgroup:\n        - row \"Bars show the after figure as a share of the before figure — shorter is better. Every row is pulled from Northwind's TMS and billing ledger, not from our own telemetry.\":\n          - cell \"Bars show the after figure as a share of the before figure — shorter is better. Every row is pulled from Northwind's TMS and billing ledger, not from our own telemetry.\"\n    - paragraph: Two branches still run a manual accessorial log and are excluded from the figures.\n  - figure \"Priya Raman, VP Finance, Northwind Freight\":\n    - blockquote: “We never had a disputes problem. We had a problem where nobody could see the weight ticket and the invoice at the same time.”\n    - text: Priya Raman, VP Finance, Northwind Freight\n  - region \"What was happening\":\n    - heading \"What was happening\" [level=2]\n    - paragraph: Northwind bills freight on weight, distance and accessorials — detention, liftgate, inside delivery, redelivery. The accessorials arrived as paper tickets, keyed in at the branch, and the invoice went out before anyone had compared the ticket to the rate confirmation. One invoice in five came back disputed.\n    - paragraph: A dispute cost 22 minutes of a billing clerk's time and, far worse, stopped the clock on the whole invoice. Average days sales outstanding sat at 61, against a target of 45, and finance was writing off roughly $310,000 a year in accessorials nobody could evidence by the time the customer pushed back.\n    - heading \"What changed\" [level=3]\n    - paragraph: A pre-bill audit now matches three documents — rate confirmation, weight ticket and accessorial log — before an invoice is released, and holds anything that disagrees by more than $25 or 200 lb. Held invoices go to a queue with the three documents side by side. It reads the existing TMS feed; nothing about the rating engine changed.\n    - paragraph: Three branches went live on 9 March. All twenty-two were live by 17 April.\n  - region \"What it cost, honestly\":\n    - heading \"What it cost, honestly\" [level=2]\n    - paragraph: Six weeks from kickoff to the first live branch, most of it spent on one integration to a TMS export that turned out to round weights to the nearest 50 lb.\n    - paragraph: The first fortnight was bad. The hold threshold shipped at $10, which held 31% of all invoices and made the queue worse than the disputes had been. Raising it to $25 on 23 March dropped holds to 7% and is the single change that made the numbers above possible.\n  - figure \"Devon Marsh, Billing Supervisor, Northwind Freight\":\n    - blockquote: “The first month I kept refreshing the dispute queue because I assumed it was broken.”\n    - text: Devon Marsh, Billing Supervisor, Northwind Freight\n  - region \"What Northwind is doing next\":\n    - heading \"What Northwind is doing next\" [level=2]\n    - list:\n      - listitem:\n        - strong: Driver capture at the tailgate.\n        - text: Photographing the accessorial ticket in the cab removes the branch keying step entirely — piloting at two terminals in October.\n      - listitem:\n        - strong: Customer-facing evidence packets.\n        - text: Attaching the three matched documents to the invoice itself, to test whether disputes fall further or simply resolve faster.\n      - listitem:\n        - strong: The two manual branches.\n        - text: Both are on the March 2027 integration plan.\n  - text: Figures supplied by Northwind Freight from their TMS and billing ledger on 14 July 2026 and reviewed with their finance team. Baseline is the twelve months to March 2026; the comparison quarter is April–June 2026. Two of twenty-two branches are excluded. Published with permission.",
          "semantics": {
            "roles": {
              "table": 1,
              "row": 7,
              "columnheader": 4,
              "cell": 21
            },
            "headers": [
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "Metric",
                "cellIndex": 0
              },
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "Before",
                "cellIndex": 1
              },
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "After",
                "cellIndex": 2
              },
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "Change",
                "cellIndex": 3
              }
            ],
            "rows": [
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Invoices disputed"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "19.4%"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "5.6%"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−71%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Clerk hours spent on disputes"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "854 / mo"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "179 / mo"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−79%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Days sales outstanding"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "61 days"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "43 days"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−30%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Time to resolve one dispute"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "22 min"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "16 min"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−27%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Unrecovered accessorial write-offs"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "$310K / yr"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "$88K / yr"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−72%"
                }
              ]
            ],
            "meters": [
              "width:29%",
              "width:21%",
              "width:70%",
              "width:73%",
              "width:28%"
            ]
          }
        },
        {
          "label": "candidate",
          "sourceSha256": "bda5f8984424f791f6707dc0565c198a6607fcd98f41d851eaed001e2151b007",
          "file": "candidate-pairs/case-study--candidate--app-1440.png",
          "pngSha256": "402fdc75309d834de1381a9bf228c80f5ceda4d74ebce81c5878fc9ed103b1ea",
          "ariaTree": "- main:\n  - text: Case study · Freight & logistics\n  - heading \"Northwind Freight cut invoice disputes by 71% in one quarter\" [level=1]\n  - paragraph: 71%\n  - paragraph: fewer disputed invoices in Q2 2026, measured against Northwind's own twelve-month baseline — 19.4% of invoices down to 5.6%.\n  - term: Company\n  - definition: Northwind Freight\n  - term: Business\n  - definition: Regional LTL carrier\n  - term: Scale\n  - definition: 1,200 trucks · 22 branches\n  - term: Live since\n  - definition: March 2026\n  - region \"Before and after · Q2 2025 baseline vs Q2 2026\":\n    - table \"Before and after · Q2 2025 baseline vs Q2 2026\":\n      - caption: Before and after · Q2 2025 baseline vs Q2 2026\n      - rowgroup:\n        - row \"Metric Before After Change\":\n          - columnheader \"Metric\"\n          - columnheader \"Before\"\n          - columnheader \"After\"\n          - columnheader \"Change\"\n      - rowgroup:\n        - row \"Invoices disputed 19.4% 5.6% −71%\":\n          - cell \"Invoices disputed\"\n          - cell \"19.4%\"\n          - cell \"5.6%\"\n          - cell \"−71%\"\n        - row \"Clerk hours spent on disputes 854 / mo 179 / mo −79%\":\n          - cell \"Clerk hours spent on disputes\"\n          - cell \"854 / mo\"\n          - cell \"179 / mo\"\n          - cell \"−79%\"\n        - row \"Days sales outstanding 61 days 43 days −30%\":\n          - cell \"Days sales outstanding\"\n          - cell \"61 days\"\n          - cell \"43 days\"\n          - cell \"−30%\"\n        - row \"Time to resolve one dispute 22 min 16 min −27%\":\n          - cell \"Time to resolve one dispute\"\n          - cell \"22 min\"\n          - cell \"16 min\"\n          - cell \"−27%\"\n        - row \"Unrecovered accessorial write-offs $310K / yr $88K / yr −72%\":\n          - cell \"Unrecovered accessorial write-offs\"\n          - cell \"$310K / yr\"\n          - cell \"$88K / yr\"\n          - cell \"−72%\"\n      - rowgroup:\n        - row \"Bars show the after figure as a share of the before figure — shorter is better. Every row is pulled from Northwind's TMS and billing ledger, not from our own telemetry.\":\n          - cell \"Bars show the after figure as a share of the before figure — shorter is better. Every row is pulled from Northwind's TMS and billing ledger, not from our own telemetry.\"\n    - paragraph: Two branches still run a manual accessorial log and are excluded from the figures.\n  - figure \"Priya Raman, VP Finance, Northwind Freight\":\n    - blockquote: “We never had a disputes problem. We had a problem where nobody could see the weight ticket and the invoice at the same time.”\n    - text: Priya Raman, VP Finance, Northwind Freight\n  - region \"What was happening\":\n    - heading \"What was happening\" [level=2]\n    - paragraph: Northwind bills freight on weight, distance and accessorials — detention, liftgate, inside delivery, redelivery. The accessorials arrived as paper tickets, keyed in at the branch, and the invoice went out before anyone had compared the ticket to the rate confirmation. One invoice in five came back disputed.\n    - paragraph: A dispute cost 22 minutes of a billing clerk's time and, far worse, stopped the clock on the whole invoice. Average days sales outstanding sat at 61, against a target of 45, and finance was writing off roughly $310,000 a year in accessorials nobody could evidence by the time the customer pushed back.\n    - heading \"What changed\" [level=3]\n    - paragraph: A pre-bill audit now matches three documents — rate confirmation, weight ticket and accessorial log — before an invoice is released, and holds anything that disagrees by more than $25 or 200 lb. Held invoices go to a queue with the three documents side by side. It reads the existing TMS feed; nothing about the rating engine changed.\n    - paragraph: Three branches went live on 9 March. All twenty-two were live by 17 April.\n  - region \"What it cost, honestly\":\n    - heading \"What it cost, honestly\" [level=2]\n    - paragraph: Six weeks from kickoff to the first live branch, most of it spent on one integration to a TMS export that turned out to round weights to the nearest 50 lb.\n    - paragraph: The first fortnight was bad. The hold threshold shipped at $10, which held 31% of all invoices and made the queue worse than the disputes had been. Raising it to $25 on 23 March dropped holds to 7% and is the single change that made the numbers above possible.\n  - figure \"Devon Marsh, Billing Supervisor, Northwind Freight\":\n    - blockquote: “The first month I kept refreshing the dispute queue because I assumed it was broken.”\n    - text: Devon Marsh, Billing Supervisor, Northwind Freight\n  - region \"What Northwind is doing next\":\n    - heading \"What Northwind is doing next\" [level=2]\n    - list:\n      - listitem:\n        - strong: Driver capture at the tailgate.\n        - text: Photographing the accessorial ticket in the cab removes the branch keying step entirely — piloting at two terminals in October.\n      - listitem:\n        - strong: Customer-facing evidence packets.\n        - text: Attaching the three matched documents to the invoice itself, to test whether disputes fall further or simply resolve faster.\n      - listitem:\n        - strong: The two manual branches.\n        - text: Both are on the March 2027 integration plan.\n  - text: Figures supplied by Northwind Freight from their TMS and billing ledger on 14 July 2026 and reviewed with their finance team. Baseline is the twelve months to March 2026; the comparison quarter is April–June 2026. Two of twenty-two branches are excluded. Published with permission.",
          "semantics": {
            "roles": {
              "table": 1,
              "row": 7,
              "columnheader": 4,
              "cell": 21
            },
            "headers": [
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "Metric",
                "cellIndex": 0
              },
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "Before",
                "cellIndex": 1
              },
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "After",
                "cellIndex": 2
              },
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "Change",
                "cellIndex": 3
              }
            ],
            "rows": [
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Invoices disputed"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "19.4%"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "5.6%"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−71%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Clerk hours spent on disputes"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "854 / mo"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "179 / mo"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−79%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Days sales outstanding"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "61 days"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "43 days"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−30%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Time to resolve one dispute"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "22 min"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "16 min"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−27%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Unrecovered accessorial write-offs"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "$310K / yr"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "$88K / yr"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−72%"
                }
              ]
            ],
            "meters": [
              "width:29%",
              "width:21%",
              "width:70%",
              "width:73%",
              "width:28%"
            ]
          }
        }
      ],
      "pngBytesEqual": true,
      "ariaTreeEqual": true,
      "nativeRelationshipsEqual": true,
      "pass": true
    },
    {
      "slug": "case-study",
      "appWidth": 768,
      "variants": [
        {
          "label": "accepted",
          "sourceSha256": "233536866e325c46d0e2617b00bee26c6cbdfcb485aeed2e424374c0497b44d5",
          "file": "candidate-pairs/case-study--accepted--app-768.png",
          "pngSha256": "3b3dfdb822d98757b4e2d818ad51df5c5d2c78f2881e4aa9995929522194ab36",
          "ariaTree": "- main:\n  - text: Case study · Freight & logistics\n  - heading \"Northwind Freight cut invoice disputes by 71% in one quarter\" [level=1]\n  - paragraph: 71%\n  - paragraph: fewer disputed invoices in Q2 2026, measured against Northwind's own twelve-month baseline — 19.4% of invoices down to 5.6%.\n  - term: Company\n  - definition: Northwind Freight\n  - term: Business\n  - definition: Regional LTL carrier\n  - term: Scale\n  - definition: 1,200 trucks · 22 branches\n  - term: Live since\n  - definition: March 2026\n  - region \"Before and after · Q2 2025 baseline vs Q2 2026\":\n    - table \"Before and after · Q2 2025 baseline vs Q2 2026\":\n      - caption: Before and after · Q2 2025 baseline vs Q2 2026\n      - rowgroup:\n        - row \"Metric Before After Change\":\n          - columnheader \"Metric\"\n          - columnheader \"Before\"\n          - columnheader \"After\"\n          - columnheader \"Change\"\n      - rowgroup:\n        - row \"Invoices disputed 19.4% 5.6% −71%\":\n          - cell \"Invoices disputed\"\n          - cell \"19.4%\"\n          - cell \"5.6%\"\n          - cell \"−71%\"\n        - row \"Clerk hours spent on disputes 854 / mo 179 / mo −79%\":\n          - cell \"Clerk hours spent on disputes\"\n          - cell \"854 / mo\"\n          - cell \"179 / mo\"\n          - cell \"−79%\"\n        - row \"Days sales outstanding 61 days 43 days −30%\":\n          - cell \"Days sales outstanding\"\n          - cell \"61 days\"\n          - cell \"43 days\"\n          - cell \"−30%\"\n        - row \"Time to resolve one dispute 22 min 16 min −27%\":\n          - cell \"Time to resolve one dispute\"\n          - cell \"22 min\"\n          - cell \"16 min\"\n          - cell \"−27%\"\n        - row \"Unrecovered accessorial write-offs $310K / yr $88K / yr −72%\":\n          - cell \"Unrecovered accessorial write-offs\"\n          - cell \"$310K / yr\"\n          - cell \"$88K / yr\"\n          - cell \"−72%\"\n      - rowgroup:\n        - row \"Bars show the after figure as a share of the before figure — shorter is better. Every row is pulled from Northwind's TMS and billing ledger, not from our own telemetry.\":\n          - cell \"Bars show the after figure as a share of the before figure — shorter is better. Every row is pulled from Northwind's TMS and billing ledger, not from our own telemetry.\"\n    - paragraph: Two branches still run a manual accessorial log and are excluded from the figures.\n  - figure \"Priya Raman, VP Finance, Northwind Freight\":\n    - blockquote: “We never had a disputes problem. We had a problem where nobody could see the weight ticket and the invoice at the same time.”\n    - text: Priya Raman, VP Finance, Northwind Freight\n  - region \"What was happening\":\n    - heading \"What was happening\" [level=2]\n    - paragraph: Northwind bills freight on weight, distance and accessorials — detention, liftgate, inside delivery, redelivery. The accessorials arrived as paper tickets, keyed in at the branch, and the invoice went out before anyone had compared the ticket to the rate confirmation. One invoice in five came back disputed.\n    - paragraph: A dispute cost 22 minutes of a billing clerk's time and, far worse, stopped the clock on the whole invoice. Average days sales outstanding sat at 61, against a target of 45, and finance was writing off roughly $310,000 a year in accessorials nobody could evidence by the time the customer pushed back.\n    - heading \"What changed\" [level=3]\n    - paragraph: A pre-bill audit now matches three documents — rate confirmation, weight ticket and accessorial log — before an invoice is released, and holds anything that disagrees by more than $25 or 200 lb. Held invoices go to a queue with the three documents side by side. It reads the existing TMS feed; nothing about the rating engine changed.\n    - paragraph: Three branches went live on 9 March. All twenty-two were live by 17 April.\n  - region \"What it cost, honestly\":\n    - heading \"What it cost, honestly\" [level=2]\n    - paragraph: Six weeks from kickoff to the first live branch, most of it spent on one integration to a TMS export that turned out to round weights to the nearest 50 lb.\n    - paragraph: The first fortnight was bad. The hold threshold shipped at $10, which held 31% of all invoices and made the queue worse than the disputes had been. Raising it to $25 on 23 March dropped holds to 7% and is the single change that made the numbers above possible.\n  - figure \"Devon Marsh, Billing Supervisor, Northwind Freight\":\n    - blockquote: “The first month I kept refreshing the dispute queue because I assumed it was broken.”\n    - text: Devon Marsh, Billing Supervisor, Northwind Freight\n  - region \"What Northwind is doing next\":\n    - heading \"What Northwind is doing next\" [level=2]\n    - list:\n      - listitem:\n        - strong: Driver capture at the tailgate.\n        - text: Photographing the accessorial ticket in the cab removes the branch keying step entirely — piloting at two terminals in October.\n      - listitem:\n        - strong: Customer-facing evidence packets.\n        - text: Attaching the three matched documents to the invoice itself, to test whether disputes fall further or simply resolve faster.\n      - listitem:\n        - strong: The two manual branches.\n        - text: Both are on the March 2027 integration plan.\n  - text: Figures supplied by Northwind Freight from their TMS and billing ledger on 14 July 2026 and reviewed with their finance team. Baseline is the twelve months to March 2026; the comparison quarter is April–June 2026. Two of twenty-two branches are excluded. Published with permission.",
          "semantics": {
            "roles": {
              "table": 1,
              "row": 7,
              "columnheader": 4,
              "cell": 21
            },
            "headers": [
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "Metric",
                "cellIndex": 0
              },
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "Before",
                "cellIndex": 1
              },
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "After",
                "cellIndex": 2
              },
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "Change",
                "cellIndex": 3
              }
            ],
            "rows": [
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Invoices disputed"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "19.4%"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "5.6%"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−71%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Clerk hours spent on disputes"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "854 / mo"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "179 / mo"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−79%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Days sales outstanding"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "61 days"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "43 days"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−30%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Time to resolve one dispute"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "22 min"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "16 min"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−27%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Unrecovered accessorial write-offs"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "$310K / yr"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "$88K / yr"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−72%"
                }
              ]
            ],
            "meters": [
              "width:29%",
              "width:21%",
              "width:70%",
              "width:73%",
              "width:28%"
            ]
          }
        },
        {
          "label": "candidate",
          "sourceSha256": "bda5f8984424f791f6707dc0565c198a6607fcd98f41d851eaed001e2151b007",
          "file": "candidate-pairs/case-study--candidate--app-768.png",
          "pngSha256": "3b3dfdb822d98757b4e2d818ad51df5c5d2c78f2881e4aa9995929522194ab36",
          "ariaTree": "- main:\n  - text: Case study · Freight & logistics\n  - heading \"Northwind Freight cut invoice disputes by 71% in one quarter\" [level=1]\n  - paragraph: 71%\n  - paragraph: fewer disputed invoices in Q2 2026, measured against Northwind's own twelve-month baseline — 19.4% of invoices down to 5.6%.\n  - term: Company\n  - definition: Northwind Freight\n  - term: Business\n  - definition: Regional LTL carrier\n  - term: Scale\n  - definition: 1,200 trucks · 22 branches\n  - term: Live since\n  - definition: March 2026\n  - region \"Before and after · Q2 2025 baseline vs Q2 2026\":\n    - table \"Before and after · Q2 2025 baseline vs Q2 2026\":\n      - caption: Before and after · Q2 2025 baseline vs Q2 2026\n      - rowgroup:\n        - row \"Metric Before After Change\":\n          - columnheader \"Metric\"\n          - columnheader \"Before\"\n          - columnheader \"After\"\n          - columnheader \"Change\"\n      - rowgroup:\n        - row \"Invoices disputed 19.4% 5.6% −71%\":\n          - cell \"Invoices disputed\"\n          - cell \"19.4%\"\n          - cell \"5.6%\"\n          - cell \"−71%\"\n        - row \"Clerk hours spent on disputes 854 / mo 179 / mo −79%\":\n          - cell \"Clerk hours spent on disputes\"\n          - cell \"854 / mo\"\n          - cell \"179 / mo\"\n          - cell \"−79%\"\n        - row \"Days sales outstanding 61 days 43 days −30%\":\n          - cell \"Days sales outstanding\"\n          - cell \"61 days\"\n          - cell \"43 days\"\n          - cell \"−30%\"\n        - row \"Time to resolve one dispute 22 min 16 min −27%\":\n          - cell \"Time to resolve one dispute\"\n          - cell \"22 min\"\n          - cell \"16 min\"\n          - cell \"−27%\"\n        - row \"Unrecovered accessorial write-offs $310K / yr $88K / yr −72%\":\n          - cell \"Unrecovered accessorial write-offs\"\n          - cell \"$310K / yr\"\n          - cell \"$88K / yr\"\n          - cell \"−72%\"\n      - rowgroup:\n        - row \"Bars show the after figure as a share of the before figure — shorter is better. Every row is pulled from Northwind's TMS and billing ledger, not from our own telemetry.\":\n          - cell \"Bars show the after figure as a share of the before figure — shorter is better. Every row is pulled from Northwind's TMS and billing ledger, not from our own telemetry.\"\n    - paragraph: Two branches still run a manual accessorial log and are excluded from the figures.\n  - figure \"Priya Raman, VP Finance, Northwind Freight\":\n    - blockquote: “We never had a disputes problem. We had a problem where nobody could see the weight ticket and the invoice at the same time.”\n    - text: Priya Raman, VP Finance, Northwind Freight\n  - region \"What was happening\":\n    - heading \"What was happening\" [level=2]\n    - paragraph: Northwind bills freight on weight, distance and accessorials — detention, liftgate, inside delivery, redelivery. The accessorials arrived as paper tickets, keyed in at the branch, and the invoice went out before anyone had compared the ticket to the rate confirmation. One invoice in five came back disputed.\n    - paragraph: A dispute cost 22 minutes of a billing clerk's time and, far worse, stopped the clock on the whole invoice. Average days sales outstanding sat at 61, against a target of 45, and finance was writing off roughly $310,000 a year in accessorials nobody could evidence by the time the customer pushed back.\n    - heading \"What changed\" [level=3]\n    - paragraph: A pre-bill audit now matches three documents — rate confirmation, weight ticket and accessorial log — before an invoice is released, and holds anything that disagrees by more than $25 or 200 lb. Held invoices go to a queue with the three documents side by side. It reads the existing TMS feed; nothing about the rating engine changed.\n    - paragraph: Three branches went live on 9 March. All twenty-two were live by 17 April.\n  - region \"What it cost, honestly\":\n    - heading \"What it cost, honestly\" [level=2]\n    - paragraph: Six weeks from kickoff to the first live branch, most of it spent on one integration to a TMS export that turned out to round weights to the nearest 50 lb.\n    - paragraph: The first fortnight was bad. The hold threshold shipped at $10, which held 31% of all invoices and made the queue worse than the disputes had been. Raising it to $25 on 23 March dropped holds to 7% and is the single change that made the numbers above possible.\n  - figure \"Devon Marsh, Billing Supervisor, Northwind Freight\":\n    - blockquote: “The first month I kept refreshing the dispute queue because I assumed it was broken.”\n    - text: Devon Marsh, Billing Supervisor, Northwind Freight\n  - region \"What Northwind is doing next\":\n    - heading \"What Northwind is doing next\" [level=2]\n    - list:\n      - listitem:\n        - strong: Driver capture at the tailgate.\n        - text: Photographing the accessorial ticket in the cab removes the branch keying step entirely — piloting at two terminals in October.\n      - listitem:\n        - strong: Customer-facing evidence packets.\n        - text: Attaching the three matched documents to the invoice itself, to test whether disputes fall further or simply resolve faster.\n      - listitem:\n        - strong: The two manual branches.\n        - text: Both are on the March 2027 integration plan.\n  - text: Figures supplied by Northwind Freight from their TMS and billing ledger on 14 July 2026 and reviewed with their finance team. Baseline is the twelve months to March 2026; the comparison quarter is April–June 2026. Two of twenty-two branches are excluded. Published with permission.",
          "semantics": {
            "roles": {
              "table": 1,
              "row": 7,
              "columnheader": 4,
              "cell": 21
            },
            "headers": [
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "Metric",
                "cellIndex": 0
              },
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "Before",
                "cellIndex": 1
              },
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "After",
                "cellIndex": 2
              },
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "Change",
                "cellIndex": 3
              }
            ],
            "rows": [
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Invoices disputed"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "19.4%"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "5.6%"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−71%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Clerk hours spent on disputes"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "854 / mo"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "179 / mo"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−79%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Days sales outstanding"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "61 days"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "43 days"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−30%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Time to resolve one dispute"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "22 min"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "16 min"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−27%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Unrecovered accessorial write-offs"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "$310K / yr"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "$88K / yr"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−72%"
                }
              ]
            ],
            "meters": [
              "width:29%",
              "width:21%",
              "width:70%",
              "width:73%",
              "width:28%"
            ]
          }
        }
      ],
      "pngBytesEqual": true,
      "ariaTreeEqual": true,
      "nativeRelationshipsEqual": true,
      "pass": true
    },
    {
      "slug": "case-study",
      "appWidth": 390,
      "variants": [
        {
          "label": "accepted",
          "sourceSha256": "233536866e325c46d0e2617b00bee26c6cbdfcb485aeed2e424374c0497b44d5",
          "file": "candidate-pairs/case-study--accepted--app-390.png",
          "pngSha256": "40b8ba3eae7165c4c197e4b3816febed08a15decd42963567759bad354fa4041",
          "ariaTree": "- main:\n  - text: Case study · Freight & logistics\n  - heading \"Northwind Freight cut invoice disputes by 71% in one quarter\" [level=1]\n  - paragraph: 71%\n  - paragraph: fewer disputed invoices in Q2 2026, measured against Northwind's own twelve-month baseline — 19.4% of invoices down to 5.6%.\n  - term: Company\n  - definition: Northwind Freight\n  - term: Business\n  - definition: Regional LTL carrier\n  - term: Scale\n  - definition: 1,200 trucks · 22 branches\n  - term: Live since\n  - definition: March 2026\n  - region \"Before and after · Q2 2025 baseline vs Q2 2026\":\n    - table \"Before and after · Q2 2025 baseline vs Q2 2026\":\n      - caption: Before and after · Q2 2025 baseline vs Q2 2026\n      - rowgroup:\n        - row \"Metric Before After Change\":\n          - columnheader \"Metric\"\n          - columnheader \"Before\"\n          - columnheader \"After\"\n          - columnheader \"Change\"\n      - rowgroup:\n        - row \"Invoices disputed Before 19.4% After 5.6% Change −71%\":\n          - cell \"Invoices disputed\"\n          - cell \"Before 19.4%\"\n          - cell \"After 5.6%\"\n          - cell \"Change −71%\"\n        - row \"Clerk hours spent on disputes Before 854 / mo After 179 / mo Change −79%\":\n          - cell \"Clerk hours spent on disputes\"\n          - cell \"Before 854 / mo\"\n          - cell \"After 179 / mo\"\n          - cell \"Change −79%\"\n        - row \"Days sales outstanding Before 61 days After 43 days Change −30%\":\n          - cell \"Days sales outstanding\"\n          - cell \"Before 61 days\"\n          - cell \"After 43 days\"\n          - cell \"Change −30%\"\n        - row \"Time to resolve one dispute Before 22 min After 16 min Change −27%\":\n          - cell \"Time to resolve one dispute\"\n          - cell \"Before 22 min\"\n          - cell \"After 16 min\"\n          - cell \"Change −27%\"\n        - row \"Unrecovered accessorial write-offs Before $310K / yr After $88K / yr Change −72%\":\n          - cell \"Unrecovered accessorial write-offs\"\n          - cell \"Before $310K / yr\"\n          - cell \"After $88K / yr\"\n          - cell \"Change −72%\"\n      - rowgroup:\n        - row \"Bars show the after figure as a share of the before figure — shorter is better. Every row is pulled from Northwind's TMS and billing ledger, not from our own telemetry.\":\n          - cell \"Bars show the after figure as a share of the before figure — shorter is better. Every row is pulled from Northwind's TMS and billing ledger, not from our own telemetry.\"\n    - paragraph: Two branches still run a manual accessorial log and are excluded from the figures.\n  - figure \"Priya Raman, VP Finance, Northwind Freight\":\n    - blockquote: “We never had a disputes problem. We had a problem where nobody could see the weight ticket and the invoice at the same time.”\n    - text: Priya Raman, VP Finance, Northwind Freight\n  - region \"What was happening\":\n    - heading \"What was happening\" [level=2]\n    - paragraph: Northwind bills freight on weight, distance and accessorials — detention, liftgate, inside delivery, redelivery. The accessorials arrived as paper tickets, keyed in at the branch, and the invoice went out before anyone had compared the ticket to the rate confirmation. One invoice in five came back disputed.\n    - paragraph: A dispute cost 22 minutes of a billing clerk's time and, far worse, stopped the clock on the whole invoice. Average days sales outstanding sat at 61, against a target of 45, and finance was writing off roughly $310,000 a year in accessorials nobody could evidence by the time the customer pushed back.\n    - heading \"What changed\" [level=3]\n    - paragraph: A pre-bill audit now matches three documents — rate confirmation, weight ticket and accessorial log — before an invoice is released, and holds anything that disagrees by more than $25 or 200 lb. Held invoices go to a queue with the three documents side by side. It reads the existing TMS feed; nothing about the rating engine changed.\n    - paragraph: Three branches went live on 9 March. All twenty-two were live by 17 April.\n  - region \"What it cost, honestly\":\n    - heading \"What it cost, honestly\" [level=2]\n    - paragraph: Six weeks from kickoff to the first live branch, most of it spent on one integration to a TMS export that turned out to round weights to the nearest 50 lb.\n    - paragraph: The first fortnight was bad. The hold threshold shipped at $10, which held 31% of all invoices and made the queue worse than the disputes had been. Raising it to $25 on 23 March dropped holds to 7% and is the single change that made the numbers above possible.\n  - figure \"Devon Marsh, Billing Supervisor, Northwind Freight\":\n    - blockquote: “The first month I kept refreshing the dispute queue because I assumed it was broken.”\n    - text: Devon Marsh, Billing Supervisor, Northwind Freight\n  - region \"What Northwind is doing next\":\n    - heading \"What Northwind is doing next\" [level=2]\n    - list:\n      - listitem:\n        - strong: Driver capture at the tailgate.\n        - text: Photographing the accessorial ticket in the cab removes the branch keying step entirely — piloting at two terminals in October.\n      - listitem:\n        - strong: Customer-facing evidence packets.\n        - text: Attaching the three matched documents to the invoice itself, to test whether disputes fall further or simply resolve faster.\n      - listitem:\n        - strong: The two manual branches.\n        - text: Both are on the March 2027 integration plan.\n  - text: Figures supplied by Northwind Freight from their TMS and billing ledger on 14 July 2026 and reviewed with their finance team. Baseline is the twelve months to March 2026; the comparison quarter is April–June 2026. Two of twenty-two branches are excluded. Published with permission.",
          "semantics": {
            "roles": {
              "table": 1,
              "row": 7,
              "columnheader": 4,
              "cell": 21
            },
            "headers": [
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "Metric",
                "cellIndex": 0
              },
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "Before",
                "cellIndex": 1
              },
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "After",
                "cellIndex": 2
              },
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "Change",
                "cellIndex": 3
              }
            ],
            "rows": [
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Invoices disputed"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "19.4%"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "5.6%"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−71%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Clerk hours spent on disputes"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "854 / mo"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "179 / mo"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−79%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Days sales outstanding"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "61 days"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "43 days"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−30%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Time to resolve one dispute"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "22 min"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "16 min"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−27%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Unrecovered accessorial write-offs"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "$310K / yr"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "$88K / yr"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−72%"
                }
              ]
            ],
            "meters": [
              "width:29%",
              "width:21%",
              "width:70%",
              "width:73%",
              "width:28%"
            ]
          }
        },
        {
          "label": "candidate",
          "sourceSha256": "bda5f8984424f791f6707dc0565c198a6607fcd98f41d851eaed001e2151b007",
          "file": "candidate-pairs/case-study--candidate--app-390.png",
          "pngSha256": "40b8ba3eae7165c4c197e4b3816febed08a15decd42963567759bad354fa4041",
          "ariaTree": "- main:\n  - text: Case study · Freight & logistics\n  - heading \"Northwind Freight cut invoice disputes by 71% in one quarter\" [level=1]\n  - paragraph: 71%\n  - paragraph: fewer disputed invoices in Q2 2026, measured against Northwind's own twelve-month baseline — 19.4% of invoices down to 5.6%.\n  - term: Company\n  - definition: Northwind Freight\n  - term: Business\n  - definition: Regional LTL carrier\n  - term: Scale\n  - definition: 1,200 trucks · 22 branches\n  - term: Live since\n  - definition: March 2026\n  - region \"Before and after · Q2 2025 baseline vs Q2 2026\":\n    - table \"Before and after · Q2 2025 baseline vs Q2 2026\":\n      - caption: Before and after · Q2 2025 baseline vs Q2 2026\n      - rowgroup:\n        - row \"Metric Before After Change\":\n          - columnheader \"Metric\"\n          - columnheader \"Before\"\n          - columnheader \"After\"\n          - columnheader \"Change\"\n      - rowgroup:\n        - row \"Invoices disputed Before 19.4% After 5.6% Change −71%\":\n          - cell \"Invoices disputed\"\n          - cell \"Before 19.4%\"\n          - cell \"After 5.6%\"\n          - cell \"Change −71%\"\n        - row \"Clerk hours spent on disputes Before 854 / mo After 179 / mo Change −79%\":\n          - cell \"Clerk hours spent on disputes\"\n          - cell \"Before 854 / mo\"\n          - cell \"After 179 / mo\"\n          - cell \"Change −79%\"\n        - row \"Days sales outstanding Before 61 days After 43 days Change −30%\":\n          - cell \"Days sales outstanding\"\n          - cell \"Before 61 days\"\n          - cell \"After 43 days\"\n          - cell \"Change −30%\"\n        - row \"Time to resolve one dispute Before 22 min After 16 min Change −27%\":\n          - cell \"Time to resolve one dispute\"\n          - cell \"Before 22 min\"\n          - cell \"After 16 min\"\n          - cell \"Change −27%\"\n        - row \"Unrecovered accessorial write-offs Before $310K / yr After $88K / yr Change −72%\":\n          - cell \"Unrecovered accessorial write-offs\"\n          - cell \"Before $310K / yr\"\n          - cell \"After $88K / yr\"\n          - cell \"Change −72%\"\n      - rowgroup:\n        - row \"Bars show the after figure as a share of the before figure — shorter is better. Every row is pulled from Northwind's TMS and billing ledger, not from our own telemetry.\":\n          - cell \"Bars show the after figure as a share of the before figure — shorter is better. Every row is pulled from Northwind's TMS and billing ledger, not from our own telemetry.\"\n    - paragraph: Two branches still run a manual accessorial log and are excluded from the figures.\n  - figure \"Priya Raman, VP Finance, Northwind Freight\":\n    - blockquote: “We never had a disputes problem. We had a problem where nobody could see the weight ticket and the invoice at the same time.”\n    - text: Priya Raman, VP Finance, Northwind Freight\n  - region \"What was happening\":\n    - heading \"What was happening\" [level=2]\n    - paragraph: Northwind bills freight on weight, distance and accessorials — detention, liftgate, inside delivery, redelivery. The accessorials arrived as paper tickets, keyed in at the branch, and the invoice went out before anyone had compared the ticket to the rate confirmation. One invoice in five came back disputed.\n    - paragraph: A dispute cost 22 minutes of a billing clerk's time and, far worse, stopped the clock on the whole invoice. Average days sales outstanding sat at 61, against a target of 45, and finance was writing off roughly $310,000 a year in accessorials nobody could evidence by the time the customer pushed back.\n    - heading \"What changed\" [level=3]\n    - paragraph: A pre-bill audit now matches three documents — rate confirmation, weight ticket and accessorial log — before an invoice is released, and holds anything that disagrees by more than $25 or 200 lb. Held invoices go to a queue with the three documents side by side. It reads the existing TMS feed; nothing about the rating engine changed.\n    - paragraph: Three branches went live on 9 March. All twenty-two were live by 17 April.\n  - region \"What it cost, honestly\":\n    - heading \"What it cost, honestly\" [level=2]\n    - paragraph: Six weeks from kickoff to the first live branch, most of it spent on one integration to a TMS export that turned out to round weights to the nearest 50 lb.\n    - paragraph: The first fortnight was bad. The hold threshold shipped at $10, which held 31% of all invoices and made the queue worse than the disputes had been. Raising it to $25 on 23 March dropped holds to 7% and is the single change that made the numbers above possible.\n  - figure \"Devon Marsh, Billing Supervisor, Northwind Freight\":\n    - blockquote: “The first month I kept refreshing the dispute queue because I assumed it was broken.”\n    - text: Devon Marsh, Billing Supervisor, Northwind Freight\n  - region \"What Northwind is doing next\":\n    - heading \"What Northwind is doing next\" [level=2]\n    - list:\n      - listitem:\n        - strong: Driver capture at the tailgate.\n        - text: Photographing the accessorial ticket in the cab removes the branch keying step entirely — piloting at two terminals in October.\n      - listitem:\n        - strong: Customer-facing evidence packets.\n        - text: Attaching the three matched documents to the invoice itself, to test whether disputes fall further or simply resolve faster.\n      - listitem:\n        - strong: The two manual branches.\n        - text: Both are on the March 2027 integration plan.\n  - text: Figures supplied by Northwind Freight from their TMS and billing ledger on 14 July 2026 and reviewed with their finance team. Baseline is the twelve months to March 2026; the comparison quarter is April–June 2026. Two of twenty-two branches are excluded. Published with permission.",
          "semantics": {
            "roles": {
              "table": 1,
              "row": 7,
              "columnheader": 4,
              "cell": 21
            },
            "headers": [
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "Metric",
                "cellIndex": 0
              },
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "Before",
                "cellIndex": 1
              },
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "After",
                "cellIndex": 2
              },
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "Change",
                "cellIndex": 3
              }
            ],
            "rows": [
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Invoices disputed"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "19.4%"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "5.6%"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−71%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Clerk hours spent on disputes"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "854 / mo"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "179 / mo"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−79%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Days sales outstanding"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "61 days"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "43 days"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−30%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Time to resolve one dispute"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "22 min"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "16 min"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−27%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Unrecovered accessorial write-offs"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "$310K / yr"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "$88K / yr"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−72%"
                }
              ]
            ],
            "meters": [
              "width:29%",
              "width:21%",
              "width:70%",
              "width:73%",
              "width:28%"
            ]
          }
        }
      ],
      "pngBytesEqual": true,
      "ariaTreeEqual": true,
      "nativeRelationshipsEqual": true,
      "pass": true
    },
    {
      "slug": "case-study",
      "appWidth": 320,
      "variants": [
        {
          "label": "accepted",
          "sourceSha256": "233536866e325c46d0e2617b00bee26c6cbdfcb485aeed2e424374c0497b44d5",
          "file": "candidate-pairs/case-study--accepted--app-320.png",
          "pngSha256": "d475fcc0d7bb68f0456ae697102f1cffbc7f231434f166a538d5ce847f824896",
          "ariaTree": "- main:\n  - text: Case study · Freight & logistics\n  - heading \"Northwind Freight cut invoice disputes by 71% in one quarter\" [level=1]\n  - paragraph: 71%\n  - paragraph: fewer disputed invoices in Q2 2026, measured against Northwind's own twelve-month baseline — 19.4% of invoices down to 5.6%.\n  - term: Company\n  - definition: Northwind Freight\n  - term: Business\n  - definition: Regional LTL carrier\n  - term: Scale\n  - definition: 1,200 trucks · 22 branches\n  - term: Live since\n  - definition: March 2026\n  - region \"Before and after · Q2 2025 baseline vs Q2 2026\":\n    - table \"Before and after · Q2 2025 baseline vs Q2 2026\":\n      - caption: Before and after · Q2 2025 baseline vs Q2 2026\n      - rowgroup:\n        - row \"Metric Before After Change\":\n          - columnheader \"Metric\"\n          - columnheader \"Before\"\n          - columnheader \"After\"\n          - columnheader \"Change\"\n      - rowgroup:\n        - row \"Invoices disputed Before 19.4% After 5.6% Change −71%\":\n          - cell \"Invoices disputed\"\n          - cell \"Before 19.4%\"\n          - cell \"After 5.6%\"\n          - cell \"Change −71%\"\n        - row \"Clerk hours spent on disputes Before 854 / mo After 179 / mo Change −79%\":\n          - cell \"Clerk hours spent on disputes\"\n          - cell \"Before 854 / mo\"\n          - cell \"After 179 / mo\"\n          - cell \"Change −79%\"\n        - row \"Days sales outstanding Before 61 days After 43 days Change −30%\":\n          - cell \"Days sales outstanding\"\n          - cell \"Before 61 days\"\n          - cell \"After 43 days\"\n          - cell \"Change −30%\"\n        - row \"Time to resolve one dispute Before 22 min After 16 min Change −27%\":\n          - cell \"Time to resolve one dispute\"\n          - cell \"Before 22 min\"\n          - cell \"After 16 min\"\n          - cell \"Change −27%\"\n        - row \"Unrecovered accessorial write-offs Before $310K / yr After $88K / yr Change −72%\":\n          - cell \"Unrecovered accessorial write-offs\"\n          - cell \"Before $310K / yr\"\n          - cell \"After $88K / yr\"\n          - cell \"Change −72%\"\n      - rowgroup:\n        - row \"Bars show the after figure as a share of the before figure — shorter is better. Every row is pulled from Northwind's TMS and billing ledger, not from our own telemetry.\":\n          - cell \"Bars show the after figure as a share of the before figure — shorter is better. Every row is pulled from Northwind's TMS and billing ledger, not from our own telemetry.\"\n    - paragraph: Two branches still run a manual accessorial log and are excluded from the figures.\n  - figure \"Priya Raman, VP Finance, Northwind Freight\":\n    - blockquote: “We never had a disputes problem. We had a problem where nobody could see the weight ticket and the invoice at the same time.”\n    - text: Priya Raman, VP Finance, Northwind Freight\n  - region \"What was happening\":\n    - heading \"What was happening\" [level=2]\n    - paragraph: Northwind bills freight on weight, distance and accessorials — detention, liftgate, inside delivery, redelivery. The accessorials arrived as paper tickets, keyed in at the branch, and the invoice went out before anyone had compared the ticket to the rate confirmation. One invoice in five came back disputed.\n    - paragraph: A dispute cost 22 minutes of a billing clerk's time and, far worse, stopped the clock on the whole invoice. Average days sales outstanding sat at 61, against a target of 45, and finance was writing off roughly $310,000 a year in accessorials nobody could evidence by the time the customer pushed back.\n    - heading \"What changed\" [level=3]\n    - paragraph: A pre-bill audit now matches three documents — rate confirmation, weight ticket and accessorial log — before an invoice is released, and holds anything that disagrees by more than $25 or 200 lb. Held invoices go to a queue with the three documents side by side. It reads the existing TMS feed; nothing about the rating engine changed.\n    - paragraph: Three branches went live on 9 March. All twenty-two were live by 17 April.\n  - region \"What it cost, honestly\":\n    - heading \"What it cost, honestly\" [level=2]\n    - paragraph: Six weeks from kickoff to the first live branch, most of it spent on one integration to a TMS export that turned out to round weights to the nearest 50 lb.\n    - paragraph: The first fortnight was bad. The hold threshold shipped at $10, which held 31% of all invoices and made the queue worse than the disputes had been. Raising it to $25 on 23 March dropped holds to 7% and is the single change that made the numbers above possible.\n  - figure \"Devon Marsh, Billing Supervisor, Northwind Freight\":\n    - blockquote: “The first month I kept refreshing the dispute queue because I assumed it was broken.”\n    - text: Devon Marsh, Billing Supervisor, Northwind Freight\n  - region \"What Northwind is doing next\":\n    - heading \"What Northwind is doing next\" [level=2]\n    - list:\n      - listitem:\n        - strong: Driver capture at the tailgate.\n        - text: Photographing the accessorial ticket in the cab removes the branch keying step entirely — piloting at two terminals in October.\n      - listitem:\n        - strong: Customer-facing evidence packets.\n        - text: Attaching the three matched documents to the invoice itself, to test whether disputes fall further or simply resolve faster.\n      - listitem:\n        - strong: The two manual branches.\n        - text: Both are on the March 2027 integration plan.\n  - text: Figures supplied by Northwind Freight from their TMS and billing ledger on 14 July 2026 and reviewed with their finance team. Baseline is the twelve months to March 2026; the comparison quarter is April–June 2026. Two of twenty-two branches are excluded. Published with permission.",
          "semantics": {
            "roles": {
              "table": 1,
              "row": 7,
              "columnheader": 4,
              "cell": 21
            },
            "headers": [
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "Metric",
                "cellIndex": 0
              },
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "Before",
                "cellIndex": 1
              },
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "After",
                "cellIndex": 2
              },
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "Change",
                "cellIndex": 3
              }
            ],
            "rows": [
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Invoices disputed"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "19.4%"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "5.6%"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−71%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Clerk hours spent on disputes"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "854 / mo"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "179 / mo"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−79%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Days sales outstanding"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "61 days"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "43 days"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−30%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Time to resolve one dispute"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "22 min"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "16 min"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−27%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Unrecovered accessorial write-offs"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "$310K / yr"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "$88K / yr"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−72%"
                }
              ]
            ],
            "meters": [
              "width:29%",
              "width:21%",
              "width:70%",
              "width:73%",
              "width:28%"
            ]
          }
        },
        {
          "label": "candidate",
          "sourceSha256": "bda5f8984424f791f6707dc0565c198a6607fcd98f41d851eaed001e2151b007",
          "file": "candidate-pairs/case-study--candidate--app-320.png",
          "pngSha256": "d475fcc0d7bb68f0456ae697102f1cffbc7f231434f166a538d5ce847f824896",
          "ariaTree": "- main:\n  - text: Case study · Freight & logistics\n  - heading \"Northwind Freight cut invoice disputes by 71% in one quarter\" [level=1]\n  - paragraph: 71%\n  - paragraph: fewer disputed invoices in Q2 2026, measured against Northwind's own twelve-month baseline — 19.4% of invoices down to 5.6%.\n  - term: Company\n  - definition: Northwind Freight\n  - term: Business\n  - definition: Regional LTL carrier\n  - term: Scale\n  - definition: 1,200 trucks · 22 branches\n  - term: Live since\n  - definition: March 2026\n  - region \"Before and after · Q2 2025 baseline vs Q2 2026\":\n    - table \"Before and after · Q2 2025 baseline vs Q2 2026\":\n      - caption: Before and after · Q2 2025 baseline vs Q2 2026\n      - rowgroup:\n        - row \"Metric Before After Change\":\n          - columnheader \"Metric\"\n          - columnheader \"Before\"\n          - columnheader \"After\"\n          - columnheader \"Change\"\n      - rowgroup:\n        - row \"Invoices disputed Before 19.4% After 5.6% Change −71%\":\n          - cell \"Invoices disputed\"\n          - cell \"Before 19.4%\"\n          - cell \"After 5.6%\"\n          - cell \"Change −71%\"\n        - row \"Clerk hours spent on disputes Before 854 / mo After 179 / mo Change −79%\":\n          - cell \"Clerk hours spent on disputes\"\n          - cell \"Before 854 / mo\"\n          - cell \"After 179 / mo\"\n          - cell \"Change −79%\"\n        - row \"Days sales outstanding Before 61 days After 43 days Change −30%\":\n          - cell \"Days sales outstanding\"\n          - cell \"Before 61 days\"\n          - cell \"After 43 days\"\n          - cell \"Change −30%\"\n        - row \"Time to resolve one dispute Before 22 min After 16 min Change −27%\":\n          - cell \"Time to resolve one dispute\"\n          - cell \"Before 22 min\"\n          - cell \"After 16 min\"\n          - cell \"Change −27%\"\n        - row \"Unrecovered accessorial write-offs Before $310K / yr After $88K / yr Change −72%\":\n          - cell \"Unrecovered accessorial write-offs\"\n          - cell \"Before $310K / yr\"\n          - cell \"After $88K / yr\"\n          - cell \"Change −72%\"\n      - rowgroup:\n        - row \"Bars show the after figure as a share of the before figure — shorter is better. Every row is pulled from Northwind's TMS and billing ledger, not from our own telemetry.\":\n          - cell \"Bars show the after figure as a share of the before figure — shorter is better. Every row is pulled from Northwind's TMS and billing ledger, not from our own telemetry.\"\n    - paragraph: Two branches still run a manual accessorial log and are excluded from the figures.\n  - figure \"Priya Raman, VP Finance, Northwind Freight\":\n    - blockquote: “We never had a disputes problem. We had a problem where nobody could see the weight ticket and the invoice at the same time.”\n    - text: Priya Raman, VP Finance, Northwind Freight\n  - region \"What was happening\":\n    - heading \"What was happening\" [level=2]\n    - paragraph: Northwind bills freight on weight, distance and accessorials — detention, liftgate, inside delivery, redelivery. The accessorials arrived as paper tickets, keyed in at the branch, and the invoice went out before anyone had compared the ticket to the rate confirmation. One invoice in five came back disputed.\n    - paragraph: A dispute cost 22 minutes of a billing clerk's time and, far worse, stopped the clock on the whole invoice. Average days sales outstanding sat at 61, against a target of 45, and finance was writing off roughly $310,000 a year in accessorials nobody could evidence by the time the customer pushed back.\n    - heading \"What changed\" [level=3]\n    - paragraph: A pre-bill audit now matches three documents — rate confirmation, weight ticket and accessorial log — before an invoice is released, and holds anything that disagrees by more than $25 or 200 lb. Held invoices go to a queue with the three documents side by side. It reads the existing TMS feed; nothing about the rating engine changed.\n    - paragraph: Three branches went live on 9 March. All twenty-two were live by 17 April.\n  - region \"What it cost, honestly\":\n    - heading \"What it cost, honestly\" [level=2]\n    - paragraph: Six weeks from kickoff to the first live branch, most of it spent on one integration to a TMS export that turned out to round weights to the nearest 50 lb.\n    - paragraph: The first fortnight was bad. The hold threshold shipped at $10, which held 31% of all invoices and made the queue worse than the disputes had been. Raising it to $25 on 23 March dropped holds to 7% and is the single change that made the numbers above possible.\n  - figure \"Devon Marsh, Billing Supervisor, Northwind Freight\":\n    - blockquote: “The first month I kept refreshing the dispute queue because I assumed it was broken.”\n    - text: Devon Marsh, Billing Supervisor, Northwind Freight\n  - region \"What Northwind is doing next\":\n    - heading \"What Northwind is doing next\" [level=2]\n    - list:\n      - listitem:\n        - strong: Driver capture at the tailgate.\n        - text: Photographing the accessorial ticket in the cab removes the branch keying step entirely — piloting at two terminals in October.\n      - listitem:\n        - strong: Customer-facing evidence packets.\n        - text: Attaching the three matched documents to the invoice itself, to test whether disputes fall further or simply resolve faster.\n      - listitem:\n        - strong: The two manual branches.\n        - text: Both are on the March 2027 integration plan.\n  - text: Figures supplied by Northwind Freight from their TMS and billing ledger on 14 July 2026 and reviewed with their finance team. Baseline is the twelve months to March 2026; the comparison quarter is April–June 2026. Two of twenty-two branches are excluded. Published with permission.",
          "semantics": {
            "roles": {
              "table": 1,
              "row": 7,
              "columnheader": 4,
              "cell": 21
            },
            "headers": [
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "Metric",
                "cellIndex": 0
              },
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "Before",
                "cellIndex": 1
              },
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "After",
                "cellIndex": 2
              },
              {
                "tag": "TH",
                "scope": "col",
                "role": "columnheader",
                "text": "Change",
                "cellIndex": 3
              }
            ],
            "rows": [
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Invoices disputed"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "19.4%"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "5.6%"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−71%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Clerk hours spent on disputes"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "854 / mo"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "179 / mo"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−79%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Days sales outstanding"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "61 days"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "43 days"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−30%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Time to resolve one dispute"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "22 min"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "16 min"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−27%"
                }
              ],
              [
                {
                  "cellIndex": 0,
                  "header": "Metric",
                  "text": "Unrecovered accessorial write-offs"
                },
                {
                  "cellIndex": 1,
                  "header": "Before",
                  "text": "$310K / yr"
                },
                {
                  "cellIndex": 2,
                  "header": "After",
                  "text": "$88K / yr"
                },
                {
                  "cellIndex": 3,
                  "header": "Change",
                  "text": "−72%"
                }
              ]
            ],
            "meters": [
              "width:29%",
              "width:21%",
              "width:70%",
              "width:73%",
              "width:28%"
            ]
          }
        }
      ],
      "pngBytesEqual": true,
      "ariaTreeEqual": true,
      "nativeRelationshipsEqual": true,
      "pass": true
    },
    {
      "slug": "launch-announcement",
      "appWidth": 1440,
      "variants": [
        {
          "label": "accepted",
          "sourceSha256": "18088f881dfa7580a720549b6903040dd695034f9768a6b7909ccf4a0851dfc1",
          "file": "candidate-pairs/launch-announcement--accepted--app-1440.png",
          "pngSha256": "a04034cbc3b0c55e293a84d2420dda719bafe253393fccc8915bf19579e6e674",
          "ariaTree": "- banner:\n  - paragraph: Available today · 4 September 2026\n  - heading \"Fieldnote 2.0 works with no signal at all\" [level=1]\n  - paragraph: Survey the whole site offline; it syncs itself when you get back to the truck.\n  - link \"Get the update\":\n    - /url: https://fieldnote.app/download\n  - link \"Release notes\":\n    - /url: https://fieldnote.app/whats-new\n  - term: Version\n  - definition: 2.0.0\n  - term: Platforms\n  - definition: iOS 16+, Android 12+, web\n  - term: Upgrade\n  - definition: Free, all plans\n  - term: Downtime\n  - definition: None — nothing to migrate\n  - paragraph: The headline change\n  - heading \"Offline is the default, not the fallback\" [level=2]\n  - figure \"The round trip needs no connection at any point.\":\n    - img \"A record is saved on the device, held in a queue while offline, then uploaded in order when the network returns.\"\n    - paragraph: On device Queued Synced\n    - text: The round trip needs no connection at any point.\n  - paragraph: Every form, photo and signature is written to the device first and queued. The queue drains by itself the moment there is a network, in the order the records were created.\n  - paragraph: \"Conflicts are boring now too: two people editing one record produces two versions, both kept, merged in one tap. Nothing is silently overwritten.\"\n- heading \"From nine weeks of beta\" [level=2]\n- list:\n  - listitem:\n    - paragraph: 241,800\n    - paragraph: records captured offline by 1,900 crews\n  - listitem:\n    - paragraph: 18 sec\n    - paragraph: median time to drain a full day's queue\n  - listitem:\n    - paragraph: \"0\"\n    - paragraph: records lost to a failed sync\n- heading \"Also in 2.0\" [level=2]\n- list:\n  - listitem:\n    - heading \"Shared form library\" [level=3]\n    - paragraph: Publish once; every crew gets it on next sync, with the version they filled in recorded against each submission.\n  - listitem:\n    - heading \"Review queue\" [level=3]\n    - paragraph: Everything that came in overnight in one list, flagged for missing photos and out-of-range readings.\n- heading \"Try it on your next site visit\" [level=2]\n- list:\n  - listitem:\n    - heading \"Update the app\" [level=3]\n    - paragraph:\n      - text: From the App Store or Play Store; on managed fleets, push\n      - code: 2.0.0\n      - text: by MDM.\n  - listitem:\n    - heading \"Download your sites\" [level=3]\n    - paragraph: Settings → Offline, then pick the sites for the week. About 40MB each.\n    - region \"Command\": fieldnote sites pull --week current\n  - listitem:\n    - heading \"Turn the radio off and work\" [level=3]\n    - paragraph: Aeroplane mode is a fair test. What you capture lands in the review queue once you are back in range.\n- heading \"Availability\" [level=2]\n- term: Who gets it\n- definition: Everyone. All plans, all regions, no waitlist.\n- term: What it costs\n- definition: Nothing — included in Team and Enterprise at current pricing.\n- term: Older devices\n- definition: iOS 15 and Android 11 stay on 1.9, with security fixes until 30 June 2027.\n- term: What is next\n- definition: Offline photo annotation is in beta this month; the review-queue API follows in Q1.\n- contentinfo:\n  - paragraph:\n    - text: Fieldnote 2.0 · announced 4 September 2026 by the product team · questions to\n    - link \"support@fieldnote.app\":\n      - /url: mailto:support@fieldnote.app\n    - text: .",
          "semantics": {
            "tag": "CODE",
            "role": "region",
            "label": "Command",
            "text": "fieldnote sites pull --week current",
            "tabindex": null
          }
        },
        {
          "label": "candidate",
          "sourceSha256": "c50f7b44e6e2193126e085fa2b3d3b89266d5dfbb5760dd11633de51fd26fa19",
          "file": "candidate-pairs/launch-announcement--candidate--app-1440.png",
          "pngSha256": "a04034cbc3b0c55e293a84d2420dda719bafe253393fccc8915bf19579e6e674",
          "ariaTree": "- banner:\n  - paragraph: Available today · 4 September 2026\n  - heading \"Fieldnote 2.0 works with no signal at all\" [level=1]\n  - paragraph: Survey the whole site offline; it syncs itself when you get back to the truck.\n  - link \"Get the update\":\n    - /url: https://fieldnote.app/download\n  - link \"Release notes\":\n    - /url: https://fieldnote.app/whats-new\n  - term: Version\n  - definition: 2.0.0\n  - term: Platforms\n  - definition: iOS 16+, Android 12+, web\n  - term: Upgrade\n  - definition: Free, all plans\n  - term: Downtime\n  - definition: None — nothing to migrate\n  - paragraph: The headline change\n  - heading \"Offline is the default, not the fallback\" [level=2]\n  - figure \"The round trip needs no connection at any point.\":\n    - img \"A record is saved on the device, held in a queue while offline, then uploaded in order when the network returns.\"\n    - paragraph: On device Queued Synced\n    - text: The round trip needs no connection at any point.\n  - paragraph: Every form, photo and signature is written to the device first and queued. The queue drains by itself the moment there is a network, in the order the records were created.\n  - paragraph: \"Conflicts are boring now too: two people editing one record produces two versions, both kept, merged in one tap. Nothing is silently overwritten.\"\n- heading \"From nine weeks of beta\" [level=2]\n- list:\n  - listitem:\n    - paragraph: 241,800\n    - paragraph: records captured offline by 1,900 crews\n  - listitem:\n    - paragraph: 18 sec\n    - paragraph: median time to drain a full day's queue\n  - listitem:\n    - paragraph: \"0\"\n    - paragraph: records lost to a failed sync\n- heading \"Also in 2.0\" [level=2]\n- list:\n  - listitem:\n    - heading \"Shared form library\" [level=3]\n    - paragraph: Publish once; every crew gets it on next sync, with the version they filled in recorded against each submission.\n  - listitem:\n    - heading \"Review queue\" [level=3]\n    - paragraph: Everything that came in overnight in one list, flagged for missing photos and out-of-range readings.\n- heading \"Try it on your next site visit\" [level=2]\n- list:\n  - listitem:\n    - heading \"Update the app\" [level=3]\n    - paragraph:\n      - text: From the App Store or Play Store; on managed fleets, push\n      - code: 2.0.0\n      - text: by MDM.\n  - listitem:\n    - heading \"Download your sites\" [level=3]\n    - paragraph: Settings → Offline, then pick the sites for the week. About 40MB each.\n    - region \"Command\": fieldnote sites pull --week current\n  - listitem:\n    - heading \"Turn the radio off and work\" [level=3]\n    - paragraph: Aeroplane mode is a fair test. What you capture lands in the review queue once you are back in range.\n- heading \"Availability\" [level=2]\n- term: Who gets it\n- definition: Everyone. All plans, all regions, no waitlist.\n- term: What it costs\n- definition: Nothing — included in Team and Enterprise at current pricing.\n- term: Older devices\n- definition: iOS 15 and Android 11 stay on 1.9, with security fixes until 30 June 2027.\n- term: What is next\n- definition: Offline photo annotation is in beta this month; the review-queue API follows in Q1.\n- contentinfo:\n  - paragraph:\n    - text: Fieldnote 2.0 · announced 4 September 2026 by the product team · questions to\n    - link \"support@fieldnote.app\":\n      - /url: mailto:support@fieldnote.app\n    - text: .",
          "semantics": {
            "tag": "CODE",
            "role": "region",
            "label": "Command",
            "text": "fieldnote sites pull --week current",
            "tabindex": null
          }
        }
      ],
      "pngBytesEqual": true,
      "ariaTreeEqual": true,
      "nativeRelationshipsEqual": true,
      "pass": true
    },
    {
      "slug": "launch-announcement",
      "appWidth": 768,
      "variants": [
        {
          "label": "accepted",
          "sourceSha256": "18088f881dfa7580a720549b6903040dd695034f9768a6b7909ccf4a0851dfc1",
          "file": "candidate-pairs/launch-announcement--accepted--app-768.png",
          "pngSha256": "6281f9a16a36f7737d6711a9803dcc0f18c41cd4192d9c20a90e4b70975a0d5d",
          "ariaTree": "- banner:\n  - paragraph: Available today · 4 September 2026\n  - heading \"Fieldnote 2.0 works with no signal at all\" [level=1]\n  - paragraph: Survey the whole site offline; it syncs itself when you get back to the truck.\n  - link \"Get the update\":\n    - /url: https://fieldnote.app/download\n  - link \"Release notes\":\n    - /url: https://fieldnote.app/whats-new\n  - term: Version\n  - definition: 2.0.0\n  - term: Platforms\n  - definition: iOS 16+, Android 12+, web\n  - term: Upgrade\n  - definition: Free, all plans\n  - term: Downtime\n  - definition: None — nothing to migrate\n  - paragraph: The headline change\n  - heading \"Offline is the default, not the fallback\" [level=2]\n  - figure \"The round trip needs no connection at any point.\":\n    - img \"A record is saved on the device, held in a queue while offline, then uploaded in order when the network returns.\"\n    - paragraph: On device Queued Synced\n    - text: The round trip needs no connection at any point.\n  - paragraph: Every form, photo and signature is written to the device first and queued. The queue drains by itself the moment there is a network, in the order the records were created.\n  - paragraph: \"Conflicts are boring now too: two people editing one record produces two versions, both kept, merged in one tap. Nothing is silently overwritten.\"\n- heading \"From nine weeks of beta\" [level=2]\n- list:\n  - listitem:\n    - paragraph: 241,800\n    - paragraph: records captured offline by 1,900 crews\n  - listitem:\n    - paragraph: 18 sec\n    - paragraph: median time to drain a full day's queue\n  - listitem:\n    - paragraph: \"0\"\n    - paragraph: records lost to a failed sync\n- heading \"Also in 2.0\" [level=2]\n- list:\n  - listitem:\n    - heading \"Shared form library\" [level=3]\n    - paragraph: Publish once; every crew gets it on next sync, with the version they filled in recorded against each submission.\n  - listitem:\n    - heading \"Review queue\" [level=3]\n    - paragraph: Everything that came in overnight in one list, flagged for missing photos and out-of-range readings.\n- heading \"Try it on your next site visit\" [level=2]\n- list:\n  - listitem:\n    - heading \"Update the app\" [level=3]\n    - paragraph:\n      - text: From the App Store or Play Store; on managed fleets, push\n      - code: 2.0.0\n      - text: by MDM.\n  - listitem:\n    - heading \"Download your sites\" [level=3]\n    - paragraph: Settings → Offline, then pick the sites for the week. About 40MB each.\n    - region \"Command\": fieldnote sites pull --week current\n  - listitem:\n    - heading \"Turn the radio off and work\" [level=3]\n    - paragraph: Aeroplane mode is a fair test. What you capture lands in the review queue once you are back in range.\n- heading \"Availability\" [level=2]\n- term: Who gets it\n- definition: Everyone. All plans, all regions, no waitlist.\n- term: What it costs\n- definition: Nothing — included in Team and Enterprise at current pricing.\n- term: Older devices\n- definition: iOS 15 and Android 11 stay on 1.9, with security fixes until 30 June 2027.\n- term: What is next\n- definition: Offline photo annotation is in beta this month; the review-queue API follows in Q1.\n- contentinfo:\n  - paragraph:\n    - text: Fieldnote 2.0 · announced 4 September 2026 by the product team · questions to\n    - link \"support@fieldnote.app\":\n      - /url: mailto:support@fieldnote.app\n    - text: .",
          "semantics": {
            "tag": "CODE",
            "role": "region",
            "label": "Command",
            "text": "fieldnote sites pull --week current",
            "tabindex": null
          }
        },
        {
          "label": "candidate",
          "sourceSha256": "c50f7b44e6e2193126e085fa2b3d3b89266d5dfbb5760dd11633de51fd26fa19",
          "file": "candidate-pairs/launch-announcement--candidate--app-768.png",
          "pngSha256": "6281f9a16a36f7737d6711a9803dcc0f18c41cd4192d9c20a90e4b70975a0d5d",
          "ariaTree": "- banner:\n  - paragraph: Available today · 4 September 2026\n  - heading \"Fieldnote 2.0 works with no signal at all\" [level=1]\n  - paragraph: Survey the whole site offline; it syncs itself when you get back to the truck.\n  - link \"Get the update\":\n    - /url: https://fieldnote.app/download\n  - link \"Release notes\":\n    - /url: https://fieldnote.app/whats-new\n  - term: Version\n  - definition: 2.0.0\n  - term: Platforms\n  - definition: iOS 16+, Android 12+, web\n  - term: Upgrade\n  - definition: Free, all plans\n  - term: Downtime\n  - definition: None — nothing to migrate\n  - paragraph: The headline change\n  - heading \"Offline is the default, not the fallback\" [level=2]\n  - figure \"The round trip needs no connection at any point.\":\n    - img \"A record is saved on the device, held in a queue while offline, then uploaded in order when the network returns.\"\n    - paragraph: On device Queued Synced\n    - text: The round trip needs no connection at any point.\n  - paragraph: Every form, photo and signature is written to the device first and queued. The queue drains by itself the moment there is a network, in the order the records were created.\n  - paragraph: \"Conflicts are boring now too: two people editing one record produces two versions, both kept, merged in one tap. Nothing is silently overwritten.\"\n- heading \"From nine weeks of beta\" [level=2]\n- list:\n  - listitem:\n    - paragraph: 241,800\n    - paragraph: records captured offline by 1,900 crews\n  - listitem:\n    - paragraph: 18 sec\n    - paragraph: median time to drain a full day's queue\n  - listitem:\n    - paragraph: \"0\"\n    - paragraph: records lost to a failed sync\n- heading \"Also in 2.0\" [level=2]\n- list:\n  - listitem:\n    - heading \"Shared form library\" [level=3]\n    - paragraph: Publish once; every crew gets it on next sync, with the version they filled in recorded against each submission.\n  - listitem:\n    - heading \"Review queue\" [level=3]\n    - paragraph: Everything that came in overnight in one list, flagged for missing photos and out-of-range readings.\n- heading \"Try it on your next site visit\" [level=2]\n- list:\n  - listitem:\n    - heading \"Update the app\" [level=3]\n    - paragraph:\n      - text: From the App Store or Play Store; on managed fleets, push\n      - code: 2.0.0\n      - text: by MDM.\n  - listitem:\n    - heading \"Download your sites\" [level=3]\n    - paragraph: Settings → Offline, then pick the sites for the week. About 40MB each.\n    - region \"Command\": fieldnote sites pull --week current\n  - listitem:\n    - heading \"Turn the radio off and work\" [level=3]\n    - paragraph: Aeroplane mode is a fair test. What you capture lands in the review queue once you are back in range.\n- heading \"Availability\" [level=2]\n- term: Who gets it\n- definition: Everyone. All plans, all regions, no waitlist.\n- term: What it costs\n- definition: Nothing — included in Team and Enterprise at current pricing.\n- term: Older devices\n- definition: iOS 15 and Android 11 stay on 1.9, with security fixes until 30 June 2027.\n- term: What is next\n- definition: Offline photo annotation is in beta this month; the review-queue API follows in Q1.\n- contentinfo:\n  - paragraph:\n    - text: Fieldnote 2.0 · announced 4 September 2026 by the product team · questions to\n    - link \"support@fieldnote.app\":\n      - /url: mailto:support@fieldnote.app\n    - text: .",
          "semantics": {
            "tag": "CODE",
            "role": "region",
            "label": "Command",
            "text": "fieldnote sites pull --week current",
            "tabindex": null
          }
        }
      ],
      "pngBytesEqual": true,
      "ariaTreeEqual": true,
      "nativeRelationshipsEqual": true,
      "pass": true
    },
    {
      "slug": "launch-announcement",
      "appWidth": 390,
      "variants": [
        {
          "label": "accepted",
          "sourceSha256": "18088f881dfa7580a720549b6903040dd695034f9768a6b7909ccf4a0851dfc1",
          "file": "candidate-pairs/launch-announcement--accepted--app-390.png",
          "pngSha256": "e12d775d7aa5f52aeef26477c808f817828ebd9c5efa652765846f638fe69c98",
          "ariaTree": "- banner:\n  - paragraph: Available today · 4 September 2026\n  - heading \"Fieldnote 2.0 works with no signal at all\" [level=1]\n  - paragraph: Survey the whole site offline; it syncs itself when you get back to the truck.\n  - link \"Get the update\":\n    - /url: https://fieldnote.app/download\n  - link \"Release notes\":\n    - /url: https://fieldnote.app/whats-new\n  - term: Version\n  - definition: 2.0.0\n  - term: Platforms\n  - definition: iOS 16+, Android 12+, web\n  - term: Upgrade\n  - definition: Free, all plans\n  - term: Downtime\n  - definition: None — nothing to migrate\n  - paragraph: The headline change\n  - heading \"Offline is the default, not the fallback\" [level=2]\n  - figure \"The round trip needs no connection at any point.\":\n    - img \"A record is saved on the device, held in a queue while offline, then uploaded in order when the network returns.\"\n    - paragraph: On device Queued Synced\n    - text: The round trip needs no connection at any point.\n  - paragraph: Every form, photo and signature is written to the device first and queued. The queue drains by itself the moment there is a network, in the order the records were created.\n  - paragraph: \"Conflicts are boring now too: two people editing one record produces two versions, both kept, merged in one tap. Nothing is silently overwritten.\"\n- heading \"From nine weeks of beta\" [level=2]\n- list:\n  - listitem:\n    - paragraph: 241,800\n    - paragraph: records captured offline by 1,900 crews\n  - listitem:\n    - paragraph: 18 sec\n    - paragraph: median time to drain a full day's queue\n  - listitem:\n    - paragraph: \"0\"\n    - paragraph: records lost to a failed sync\n- heading \"Also in 2.0\" [level=2]\n- list:\n  - listitem:\n    - heading \"Shared form library\" [level=3]\n    - paragraph: Publish once; every crew gets it on next sync, with the version they filled in recorded against each submission.\n  - listitem:\n    - heading \"Review queue\" [level=3]\n    - paragraph: Everything that came in overnight in one list, flagged for missing photos and out-of-range readings.\n- heading \"Try it on your next site visit\" [level=2]\n- list:\n  - listitem:\n    - heading \"Update the app\" [level=3]\n    - paragraph:\n      - text: From the App Store or Play Store; on managed fleets, push\n      - code: 2.0.0\n      - text: by MDM.\n  - listitem:\n    - heading \"Download your sites\" [level=3]\n    - paragraph: Settings → Offline, then pick the sites for the week. About 40MB each.\n    - region \"Command\": fieldnote sites pull --week current\n  - listitem:\n    - heading \"Turn the radio off and work\" [level=3]\n    - paragraph: Aeroplane mode is a fair test. What you capture lands in the review queue once you are back in range.\n- heading \"Availability\" [level=2]\n- term: Who gets it\n- definition: Everyone. All plans, all regions, no waitlist.\n- term: What it costs\n- definition: Nothing — included in Team and Enterprise at current pricing.\n- term: Older devices\n- definition: iOS 15 and Android 11 stay on 1.9, with security fixes until 30 June 2027.\n- term: What is next\n- definition: Offline photo annotation is in beta this month; the review-queue API follows in Q1.\n- contentinfo:\n  - paragraph:\n    - text: Fieldnote 2.0 · announced 4 September 2026 by the product team · questions to\n    - link \"support@fieldnote.app\":\n      - /url: mailto:support@fieldnote.app\n    - text: .",
          "semantics": {
            "tag": "CODE",
            "role": "region",
            "label": "Command",
            "text": "fieldnote sites pull --week current",
            "tabindex": null
          }
        },
        {
          "label": "candidate",
          "sourceSha256": "c50f7b44e6e2193126e085fa2b3d3b89266d5dfbb5760dd11633de51fd26fa19",
          "file": "candidate-pairs/launch-announcement--candidate--app-390.png",
          "pngSha256": "e12d775d7aa5f52aeef26477c808f817828ebd9c5efa652765846f638fe69c98",
          "ariaTree": "- banner:\n  - paragraph: Available today · 4 September 2026\n  - heading \"Fieldnote 2.0 works with no signal at all\" [level=1]\n  - paragraph: Survey the whole site offline; it syncs itself when you get back to the truck.\n  - link \"Get the update\":\n    - /url: https://fieldnote.app/download\n  - link \"Release notes\":\n    - /url: https://fieldnote.app/whats-new\n  - term: Version\n  - definition: 2.0.0\n  - term: Platforms\n  - definition: iOS 16+, Android 12+, web\n  - term: Upgrade\n  - definition: Free, all plans\n  - term: Downtime\n  - definition: None — nothing to migrate\n  - paragraph: The headline change\n  - heading \"Offline is the default, not the fallback\" [level=2]\n  - figure \"The round trip needs no connection at any point.\":\n    - img \"A record is saved on the device, held in a queue while offline, then uploaded in order when the network returns.\"\n    - paragraph: On device Queued Synced\n    - text: The round trip needs no connection at any point.\n  - paragraph: Every form, photo and signature is written to the device first and queued. The queue drains by itself the moment there is a network, in the order the records were created.\n  - paragraph: \"Conflicts are boring now too: two people editing one record produces two versions, both kept, merged in one tap. Nothing is silently overwritten.\"\n- heading \"From nine weeks of beta\" [level=2]\n- list:\n  - listitem:\n    - paragraph: 241,800\n    - paragraph: records captured offline by 1,900 crews\n  - listitem:\n    - paragraph: 18 sec\n    - paragraph: median time to drain a full day's queue\n  - listitem:\n    - paragraph: \"0\"\n    - paragraph: records lost to a failed sync\n- heading \"Also in 2.0\" [level=2]\n- list:\n  - listitem:\n    - heading \"Shared form library\" [level=3]\n    - paragraph: Publish once; every crew gets it on next sync, with the version they filled in recorded against each submission.\n  - listitem:\n    - heading \"Review queue\" [level=3]\n    - paragraph: Everything that came in overnight in one list, flagged for missing photos and out-of-range readings.\n- heading \"Try it on your next site visit\" [level=2]\n- list:\n  - listitem:\n    - heading \"Update the app\" [level=3]\n    - paragraph:\n      - text: From the App Store or Play Store; on managed fleets, push\n      - code: 2.0.0\n      - text: by MDM.\n  - listitem:\n    - heading \"Download your sites\" [level=3]\n    - paragraph: Settings → Offline, then pick the sites for the week. About 40MB each.\n    - region \"Command\": fieldnote sites pull --week current\n  - listitem:\n    - heading \"Turn the radio off and work\" [level=3]\n    - paragraph: Aeroplane mode is a fair test. What you capture lands in the review queue once you are back in range.\n- heading \"Availability\" [level=2]\n- term: Who gets it\n- definition: Everyone. All plans, all regions, no waitlist.\n- term: What it costs\n- definition: Nothing — included in Team and Enterprise at current pricing.\n- term: Older devices\n- definition: iOS 15 and Android 11 stay on 1.9, with security fixes until 30 June 2027.\n- term: What is next\n- definition: Offline photo annotation is in beta this month; the review-queue API follows in Q1.\n- contentinfo:\n  - paragraph:\n    - text: Fieldnote 2.0 · announced 4 September 2026 by the product team · questions to\n    - link \"support@fieldnote.app\":\n      - /url: mailto:support@fieldnote.app\n    - text: .",
          "semantics": {
            "tag": "CODE",
            "role": "region",
            "label": "Command",
            "text": "fieldnote sites pull --week current",
            "tabindex": null
          }
        }
      ],
      "pngBytesEqual": true,
      "ariaTreeEqual": true,
      "nativeRelationshipsEqual": true,
      "pass": true
    },
    {
      "slug": "launch-announcement",
      "appWidth": 320,
      "variants": [
        {
          "label": "accepted",
          "sourceSha256": "18088f881dfa7580a720549b6903040dd695034f9768a6b7909ccf4a0851dfc1",
          "file": "candidate-pairs/launch-announcement--accepted--app-320.png",
          "pngSha256": "d8d951f9ce242a6ab34e4edf6fe096d1921c0b4c9280dfc14d8730174410ba44",
          "ariaTree": "- banner:\n  - paragraph: Available today · 4 September 2026\n  - heading \"Fieldnote 2.0 works with no signal at all\" [level=1]\n  - paragraph: Survey the whole site offline; it syncs itself when you get back to the truck.\n  - link \"Get the update\":\n    - /url: https://fieldnote.app/download\n  - link \"Release notes\":\n    - /url: https://fieldnote.app/whats-new\n  - term: Version\n  - definition: 2.0.0\n  - term: Platforms\n  - definition: iOS 16+, Android 12+, web\n  - term: Upgrade\n  - definition: Free, all plans\n  - term: Downtime\n  - definition: None — nothing to migrate\n  - paragraph: The headline change\n  - heading \"Offline is the default, not the fallback\" [level=2]\n  - figure \"The round trip needs no connection at any point.\":\n    - img \"A record is saved on the device, held in a queue while offline, then uploaded in order when the network returns.\"\n    - paragraph: On device Queued Synced\n    - text: The round trip needs no connection at any point.\n  - paragraph: Every form, photo and signature is written to the device first and queued. The queue drains by itself the moment there is a network, in the order the records were created.\n  - paragraph: \"Conflicts are boring now too: two people editing one record produces two versions, both kept, merged in one tap. Nothing is silently overwritten.\"\n- heading \"From nine weeks of beta\" [level=2]\n- list:\n  - listitem:\n    - paragraph: 241,800\n    - paragraph: records captured offline by 1,900 crews\n  - listitem:\n    - paragraph: 18 sec\n    - paragraph: median time to drain a full day's queue\n  - listitem:\n    - paragraph: \"0\"\n    - paragraph: records lost to a failed sync\n- heading \"Also in 2.0\" [level=2]\n- list:\n  - listitem:\n    - heading \"Shared form library\" [level=3]\n    - paragraph: Publish once; every crew gets it on next sync, with the version they filled in recorded against each submission.\n  - listitem:\n    - heading \"Review queue\" [level=3]\n    - paragraph: Everything that came in overnight in one list, flagged for missing photos and out-of-range readings.\n- heading \"Try it on your next site visit\" [level=2]\n- list:\n  - listitem:\n    - heading \"Update the app\" [level=3]\n    - paragraph:\n      - text: From the App Store or Play Store; on managed fleets, push\n      - code: 2.0.0\n      - text: by MDM.\n  - listitem:\n    - heading \"Download your sites\" [level=3]\n    - paragraph: Settings → Offline, then pick the sites for the week. About 40MB each.\n    - region \"Command\": fieldnote sites pull --week current\n  - listitem:\n    - heading \"Turn the radio off and work\" [level=3]\n    - paragraph: Aeroplane mode is a fair test. What you capture lands in the review queue once you are back in range.\n- heading \"Availability\" [level=2]\n- term: Who gets it\n- definition: Everyone. All plans, all regions, no waitlist.\n- term: What it costs\n- definition: Nothing — included in Team and Enterprise at current pricing.\n- term: Older devices\n- definition: iOS 15 and Android 11 stay on 1.9, with security fixes until 30 June 2027.\n- term: What is next\n- definition: Offline photo annotation is in beta this month; the review-queue API follows in Q1.\n- contentinfo:\n  - paragraph:\n    - text: Fieldnote 2.0 · announced 4 September 2026 by the product team · questions to\n    - link \"support@fieldnote.app\":\n      - /url: mailto:support@fieldnote.app\n    - text: .",
          "semantics": {
            "tag": "CODE",
            "role": "region",
            "label": "Command",
            "text": "fieldnote sites pull --week current",
            "tabindex": null
          }
        },
        {
          "label": "candidate",
          "sourceSha256": "c50f7b44e6e2193126e085fa2b3d3b89266d5dfbb5760dd11633de51fd26fa19",
          "file": "candidate-pairs/launch-announcement--candidate--app-320.png",
          "pngSha256": "d8d951f9ce242a6ab34e4edf6fe096d1921c0b4c9280dfc14d8730174410ba44",
          "ariaTree": "- banner:\n  - paragraph: Available today · 4 September 2026\n  - heading \"Fieldnote 2.0 works with no signal at all\" [level=1]\n  - paragraph: Survey the whole site offline; it syncs itself when you get back to the truck.\n  - link \"Get the update\":\n    - /url: https://fieldnote.app/download\n  - link \"Release notes\":\n    - /url: https://fieldnote.app/whats-new\n  - term: Version\n  - definition: 2.0.0\n  - term: Platforms\n  - definition: iOS 16+, Android 12+, web\n  - term: Upgrade\n  - definition: Free, all plans\n  - term: Downtime\n  - definition: None — nothing to migrate\n  - paragraph: The headline change\n  - heading \"Offline is the default, not the fallback\" [level=2]\n  - figure \"The round trip needs no connection at any point.\":\n    - img \"A record is saved on the device, held in a queue while offline, then uploaded in order when the network returns.\"\n    - paragraph: On device Queued Synced\n    - text: The round trip needs no connection at any point.\n  - paragraph: Every form, photo and signature is written to the device first and queued. The queue drains by itself the moment there is a network, in the order the records were created.\n  - paragraph: \"Conflicts are boring now too: two people editing one record produces two versions, both kept, merged in one tap. Nothing is silently overwritten.\"\n- heading \"From nine weeks of beta\" [level=2]\n- list:\n  - listitem:\n    - paragraph: 241,800\n    - paragraph: records captured offline by 1,900 crews\n  - listitem:\n    - paragraph: 18 sec\n    - paragraph: median time to drain a full day's queue\n  - listitem:\n    - paragraph: \"0\"\n    - paragraph: records lost to a failed sync\n- heading \"Also in 2.0\" [level=2]\n- list:\n  - listitem:\n    - heading \"Shared form library\" [level=3]\n    - paragraph: Publish once; every crew gets it on next sync, with the version they filled in recorded against each submission.\n  - listitem:\n    - heading \"Review queue\" [level=3]\n    - paragraph: Everything that came in overnight in one list, flagged for missing photos and out-of-range readings.\n- heading \"Try it on your next site visit\" [level=2]\n- list:\n  - listitem:\n    - heading \"Update the app\" [level=3]\n    - paragraph:\n      - text: From the App Store or Play Store; on managed fleets, push\n      - code: 2.0.0\n      - text: by MDM.\n  - listitem:\n    - heading \"Download your sites\" [level=3]\n    - paragraph: Settings → Offline, then pick the sites for the week. About 40MB each.\n    - region \"Command\": fieldnote sites pull --week current\n  - listitem:\n    - heading \"Turn the radio off and work\" [level=3]\n    - paragraph: Aeroplane mode is a fair test. What you capture lands in the review queue once you are back in range.\n- heading \"Availability\" [level=2]\n- term: Who gets it\n- definition: Everyone. All plans, all regions, no waitlist.\n- term: What it costs\n- definition: Nothing — included in Team and Enterprise at current pricing.\n- term: Older devices\n- definition: iOS 15 and Android 11 stay on 1.9, with security fixes until 30 June 2027.\n- term: What is next\n- definition: Offline photo annotation is in beta this month; the review-queue API follows in Q1.\n- contentinfo:\n  - paragraph:\n    - text: Fieldnote 2.0 · announced 4 September 2026 by the product team · questions to\n    - link \"support@fieldnote.app\":\n      - /url: mailto:support@fieldnote.app\n    - text: .",
          "semantics": {
            "tag": "CODE",
            "role": "region",
            "label": "Command",
            "text": "fieldnote sites pull --week current",
            "tabindex": null
          }
        }
      ],
      "pngBytesEqual": true,
      "ariaTreeEqual": true,
      "nativeRelationshipsEqual": true,
      "pass": true
    }
  ],
  "pass": true,
  "appliedToCanonical": false,
  "limitation": "Chromium actual sandbox only; comment-only candidates, no Safari/Firefox certification."
}
