{
  "name": "visibility.cloud get-started interview",
  "version": "2026-07-31.3",
  "surfaces_live": "The interview is live on this origin (POST /flow, no script required), the spine's translate, validate and hash doors answer at https://epcis.dev, and the hosted capture/query/MCP spine answers at https://api.epcis.dev to a capture key. Issuing those keys is not open, and the Iceberg write path is not cut over; both are listed at https://visibility.cloud/what-ships-today/. No conformance attestation has ever been issued, and none is claimed.",
  "entry": {
    "step_1": "email, captured under the verbatim promise printed with the field",
    "step_2": "S1",
    "final_step": "a locked thank-you: the ending is written once per address and a completed interview never reopens"
  },
  "promise_core": "Your capture workspace is provisioned from this list. We write when your seat is ready, and follow up about it from there. We don&rsquo;t sell your address or hand it to advertisers, and you can tell us to stop at any time. If we stop working on this, we say so rather than go quiet.",
  "conversation_promise": "This address is its own consent: we use it to arrange the conversation you asked for, and to follow up about it. We don&rsquo;t sell it or hand it to advertisers.",
  "conversation_explicit_request": "The ask renders only when the arrival chose the non-default option at their branch's explicit-request node (EQ10, QQ8); the pre-selected default is that the written read is enough, and choosing it renders no conversation field at all.",
  "nodes": {
    "S1": {
      "kind": "question",
      "question_kind": "ownership",
      "prompt": "What does your company actually put in someone&rsquo;s hands?",
      "free_text": null,
      "options": [
        {
          "key": "brand-coman",
          "label": "We put our name on products, and somebody else&rsquo;s factory makes them.",
          "goto": "M1"
        },
        {
          "key": "brand-own",
          "label": "We make our own products, in our own plants, under our own brands.",
          "goto": "S2a"
        },
        {
          "key": "coman",
          "label": "We make or pack products for other companies&rsquo; brands.",
          "goto": "P1"
        },
        {
          "key": "restaurants",
          "label": "We run restaurants.",
          "goto": "Q1"
        },
        {
          "key": "stores",
          "label": "We run stores.",
          "goto": "S2b"
        },
        {
          "key": "logistics",
          "label": "We move, store, or ship other people&rsquo;s goods.",
          "goto": "L1"
        },
        {
          "key": "integrator",
          "label": "We install the scanners, printers, readers and tags for other companies.",
          "goto": "I1"
        },
        {
          "key": "isv",
          "label": "We sell software to companies that do any of the above.",
          "goto": "V1"
        },
        {
          "key": "engineer",
          "label": "I&rsquo;m an engineer at one of those companies and I&rsquo;ve been told to build something.",
          "goto": "D1"
        },
        {
          "key": "none",
          "label": "None of these.",
          "goto": "S3"
        }
      ]
    },
    "S2a": {
      "kind": "question",
      "question_kind": "ownership",
      "prompt": "Roughly how big, revenue-wise?",
      "free_text": null,
      "options": [
        {
          "key": "under-1b",
          "label": "Under $1B.",
          "goto": "M1"
        },
        {
          "key": "over-1b",
          "label": "$1B or more.",
          "goto": "E11"
        }
      ]
    },
    "S2b": {
      "kind": "question",
      "question_kind": "ownership",
      "prompt": "Do you sell fresh food &mdash; produce, deli, meat, prepared?",
      "free_text": null,
      "options": [
        {
          "key": "yes",
          "label": "Yes.",
          "goto": "G1"
        },
        {
          "key": "no",
          "label": "No.",
          "goto": "A1"
        }
      ]
    },
    "S3": {
      "kind": "question",
      "question_kind": "ownership",
      "prompt": "Closest thing, then: what moves through your business?",
      "free_text": null,
      "options": [
        {
          "key": "pharma",
          "label": "Prescription drugs or medical devices.",
          "goto": "N.E1"
        },
        {
          "key": "packaging",
          "label": "We print labels or packaging.",
          "goto": "N.E2"
        },
        {
          "key": "pos",
          "label": "We make POS systems or scanners.",
          "goto": "N.E3"
        },
        {
          "key": "vehicles",
          "label": "Vehicles, at auction or in transit.",
          "goto": "N.E4"
        },
        {
          "key": "truly-none",
          "label": "Genuinely none of these.",
          "goto": "N.E5"
        }
      ]
    },
    "M1": {
      "kind": "question",
      "question_kind": "current_tool",
      "prompt": "Last quarter, when you wanted to know how a product actually performed in a market &mdash; what did you open first?",
      "free_text": null,
      "options": [
        {
          "key": "panel",
          "label": "A syndicated panel (Circana / Nielsen / SPINS).",
          "goto": "MR0"
        },
        {
          "key": "portal",
          "label": "A retailer portal.",
          "goto": "MR0"
        },
        {
          "key": "dtc",
          "label": "Our own DTC / Shopify dashboard.",
          "goto": "MR0"
        },
        {
          "key": "broker",
          "label": "A spreadsheet from the broker.",
          "goto": "MR0"
        },
        {
          "key": "asked",
          "label": "I asked someone.",
          "goto": "MR0"
        }
      ]
    },
    "MR0": {
      "kind": "route",
      "rules": [
        {
          "when": {
            "node": "S1",
            "in": [
              "brand-own"
            ]
          },
          "goto": "M2b"
        }
      ],
      "else": "M2"
    },
    "M2": {
      "kind": "question",
      "question_kind": "pain_frequency",
      "prompt": "The last time there was a quality problem at a co-packer &mdash; how did you find out, and how long from finding out to knowing which lots?",
      "free_text": "What happened? (optional, in your own words)",
      "options": [
        {
          "key": "hours",
          "label": "Hours.",
          "goto": "M3"
        },
        {
          "key": "days",
          "label": "Days.",
          "goto": "M3"
        },
        {
          "key": "weeks",
          "label": "Weeks.",
          "goto": "M3"
        },
        {
          "key": "never",
          "label": "Hasn&rsquo;t happened.",
          "goto": "M3"
        }
      ]
    },
    "M2b": {
      "kind": "question",
      "question_kind": "pain_frequency",
      "prompt": "The last time there was a quality problem at one of your plants &mdash; how did you find out, and how long from finding out to knowing which lots were affected?",
      "free_text": "What happened? (optional, in your own words)",
      "options": [
        {
          "key": "hours",
          "label": "Hours.",
          "goto": "M3"
        },
        {
          "key": "days",
          "label": "Days.",
          "goto": "M3"
        },
        {
          "key": "weeks",
          "label": "Weeks.",
          "goto": "M3"
        },
        {
          "key": "never",
          "label": "Hasn&rsquo;t happened.",
          "goto": "M3"
        }
      ]
    },
    "M3": {
      "kind": "question",
      "question_kind": "who_else_touches",
      "prompt": "Who owns your GTIN records today &mdash; who literally has the login?",
      "free_text": null,
      "options": [
        {
          "key": "me",
          "label": "Me.",
          "goto": "MR1"
        },
        {
          "key": "ops",
          "label": "Ops.",
          "goto": "MR1"
        },
        {
          "key": "broker",
          "label": "The broker.",
          "goto": "MR1"
        },
        {
          "key": "coman",
          "label": "The co-man.",
          "goto": "MR1"
        },
        {
          "key": "portal",
          "label": "A GS1 portal nobody logs into.",
          "goto": "MR1"
        },
        {
          "key": "unknown",
          "label": "No idea.",
          "goto": "MR1"
        }
      ]
    },
    "MR1": {
      "kind": "route",
      "rules": [
        {
          "when": {
            "node": "M1",
            "in": [
              "portal",
              "broker"
            ]
          },
          "goto": "M4o"
        }
      ],
      "else": "M4i"
    },
    "M4o": {
      "kind": "question",
      "question_kind": "past_behavior",
      "prompt": "Has a retailer sent you a 2D-readiness or Sunrise-2027 questionnaire? What did you send back?",
      "free_text": "What did you send back? (optional)",
      "options": [
        {
          "key": "yes-date",
          "label": "Yes, with a date on it.",
          "goto": "M5"
        },
        {
          "key": "yes-nodate",
          "label": "Yes, no date.",
          "goto": "M5"
        },
        {
          "key": "no",
          "label": "No.",
          "goto": "M5"
        }
      ]
    },
    "M4i": {
      "kind": "question",
      "question_kind": "past_behavior",
      "prompt": "When you launched something last year, how did you find out who bought it? Walk me through what you actually looked at in the first 30 days.",
      "free_text": "What did you look at? (optional)",
      "options": [
        {
          "key": "panel-only",
          "label": "Panel or retailer data only.",
          "goto": "M5"
        },
        {
          "key": "dtc-orders",
          "label": "DTC orders.",
          "goto": "M5"
        },
        {
          "key": "didnt",
          "label": "We didn&rsquo;t.",
          "goto": "M5"
        }
      ]
    },
    "M5": {
      "kind": "question",
      "question_kind": "existing_commitment",
      "prompt": "Is there anything already on your 2026 or 2027 plan that this touches &mdash; an artwork cycle, a retailer program, a relaunch?",
      "free_text": "Name it, if you like. (optional)",
      "options": [
        {
          "key": "yes-dated",
          "label": "Yes, and it has a date.",
          "goto": "MR2"
        },
        {
          "key": "yes-undated",
          "label": "Yes, no date yet.",
          "goto": "MR2"
        },
        {
          "key": "no",
          "label": "No.",
          "goto": "MR2"
        }
      ]
    },
    "MR2": {
      "kind": "route",
      "rules": [
        {
          "when": {
            "node": "M4o",
            "in": [
              "yes-date",
              "yes-nodate"
            ]
          },
          "goto": "M.E2"
        },
        {
          "when": {
            "node": "M4i",
            "in": [
              "panel-only",
              "dtc-orders",
              "didnt"
            ]
          },
          "goto": "M.E1"
        }
      ],
      "else": "M.E3"
    },
    "E11": {
      "kind": "question",
      "question_kind": "ownership",
      "prompt": "Who chairs the 2D / Sunrise-2027 program today, and what&rsquo;s their actual title?",
      "free_text": null,
      "options": [
        {
          "key": "named",
          "label": "A named person, and it&rsquo;s not me.",
          "goto": "E12"
        },
        {
          "key": "me",
          "label": "That&rsquo;s me.",
          "goto": "E12"
        },
        {
          "key": "committee",
          "label": "A committee.",
          "goto": "E12"
        },
        {
          "key": "nobody",
          "label": "Nobody yet.",
          "goto": "E12"
        }
      ]
    },
    "E12": {
      "kind": "question",
      "question_kind": "actual_spend",
      "prompt": "Is there a budget line for it this fiscal year, and who signs it?",
      "free_text": null,
      "options": [
        {
          "key": "yes-signer",
          "label": "Yes, and I know who signs it.",
          "goto": "E13"
        },
        {
          "key": "yes-unclear",
          "label": "Yes, signer unclear.",
          "goto": "E13"
        },
        {
          "key": "no",
          "label": "No.",
          "goto": "E13"
        },
        {
          "key": "unknown",
          "label": "Don&rsquo;t know.",
          "goto": "E13"
        }
      ]
    },
    "E13": {
      "kind": "question",
      "question_kind": "who_else_touches",
      "prompt": "What share of your volume runs through co-mans you don&rsquo;t own &mdash; and how do you get event data from them today?",
      "free_text": null,
      "options": [
        {
          "key": "files",
          "label": "File drops.",
          "goto": "E14"
        },
        {
          "key": "portal",
          "label": "A portal.",
          "goto": "E14"
        },
        {
          "key": "edi",
          "label": "EDI.",
          "goto": "E14"
        },
        {
          "key": "none",
          "label": "We don&rsquo;t.",
          "goto": "E14"
        }
      ]
    },
    "E14": {
      "kind": "question",
      "question_kind": "pain_frequency",
      "prompt": "When was the last mock recall or trace exercise that crossed a co-man boundary, and how long did it take end to end?",
      "free_text": "What broke, if anything? (optional)",
      "options": [
        {
          "key": "hours",
          "label": "Hours.",
          "goto": "E15"
        },
        {
          "key": "days",
          "label": "Days.",
          "goto": "E15"
        },
        {
          "key": "weeks",
          "label": "Weeks.",
          "goto": "E15"
        },
        {
          "key": "never",
          "label": "It has never crossed one.",
          "goto": "E15"
        }
      ]
    },
    "E15": {
      "kind": "question",
      "question_kind": "existing_commitment",
      "prompt": "Is there a date on the program plan where a repository or a data destination has to be named?",
      "free_text": null,
      "options": [
        {
          "key": "yes",
          "label": "Yes, there is a date.",
          "goto": "ER1"
        },
        {
          "key": "no",
          "label": "No date yet.",
          "goto": "ER1"
        }
      ]
    },
    "ER1": {
      "kind": "route",
      "rules": [
        {
          "when": {
            "node": "E12",
            "in": [
              "yes-signer",
              "yes-unclear"
            ]
          },
          "goto": "EQ10"
        },
        {
          "when": {
            "node": "E15",
            "in": [
              "yes"
            ]
          },
          "goto": "EQ10"
        }
      ],
      "else": "E1.E2"
    },
    "EQ10": {
      "kind": "question",
      "question_kind": "explicit_request",
      "prompt": "Your written read is next, delivered in full either way. Is the written read enough?",
      "free_text": null,
      "options": [
        {
          "key": "written-enough",
          "label": "The written read is enough.",
          "goto": "E1.E1",
          "preselected_default": true
        },
        {
          "key": "ask-conversation",
          "label": "After I have the read, I want to ask for a conversation.",
          "goto": "E1.E1"
        }
      ]
    },
    "Q1": {
      "kind": "question",
      "question_kind": "current_tool",
      "prompt": "Is there RFID or 2D scanning running in your restaurants or DCs right now?",
      "free_text": null,
      "options": [
        {
          "key": "production",
          "label": "In production.",
          "goto": "Q2"
        },
        {
          "key": "pilot",
          "label": "A pilot.",
          "goto": "Q2"
        },
        {
          "key": "evaluating",
          "label": "Evaluating.",
          "goto": "Q2"
        },
        {
          "key": "none",
          "label": "None.",
          "goto": "Q3"
        }
      ]
    },
    "Q2": {
      "kind": "question",
      "question_kind": "past_behavior",
      "prompt": "Where do those reads land today, and what&rsquo;s the last thing anybody actually did with them?",
      "free_text": "The last thing anybody did with them. (optional)",
      "options": [
        {
          "key": "inventory",
          "label": "Inventory counts.",
          "goto": "Q3"
        },
        {
          "key": "vendor-cloud",
          "label": "A vendor&rsquo;s cloud.",
          "goto": "Q3"
        },
        {
          "key": "data-lake",
          "label": "Our data lake.",
          "goto": "Q3"
        },
        {
          "key": "nowhere",
          "label": "Nowhere.",
          "goto": "Q3"
        }
      ]
    },
    "Q3": {
      "kind": "question",
      "question_kind": "pain_frequency",
      "prompt": "The last time you had to trace a lot back &mdash; what triggered it, and how long did it take?",
      "free_text": "What triggered it? (optional)",
      "options": [
        {
          "key": "hours",
          "label": "Hours.",
          "goto": "Q4"
        },
        {
          "key": "days",
          "label": "Days.",
          "goto": "Q4"
        },
        {
          "key": "weeks",
          "label": "Weeks.",
          "goto": "Q4"
        },
        {
          "key": "never",
          "label": "Hasn&rsquo;t happened.",
          "goto": "Q4"
        }
      ]
    },
    "Q4": {
      "kind": "question",
      "question_kind": "who_else_touches",
      "prompt": "When a franchise unit scans a case &mdash; whose data is that, contractually?",
      "free_text": null,
      "options": [
        {
          "key": "ours",
          "label": "Ours.",
          "goto": "Q5"
        },
        {
          "key": "theirs",
          "label": "Theirs.",
          "goto": "Q5"
        },
        {
          "key": "never-asked",
          "label": "It has never been asked.",
          "goto": "Q5"
        },
        {
          "key": "legal",
          "label": "Legal is involved.",
          "goto": "Q5"
        }
      ]
    },
    "Q5": {
      "kind": "question",
      "question_kind": "past_behavior",
      "prompt": "When the scanning program was approved internally, was it sold on traceability or on inventory accuracy?",
      "free_text": null,
      "options": [
        {
          "key": "traceability",
          "label": "Traceability.",
          "goto": "QR1"
        },
        {
          "key": "inventory",
          "label": "Inventory accuracy.",
          "goto": "QR1"
        },
        {
          "key": "both",
          "label": "Both.",
          "goto": "QR1"
        },
        {
          "key": "no-program",
          "label": "There is no program.",
          "goto": "QR1"
        }
      ]
    },
    "QR1": {
      "kind": "route",
      "rules": [
        {
          "when": {
            "node": "Q1",
            "in": [
              "production",
              "pilot"
            ]
          },
          "goto": "QQ8"
        }
      ],
      "else": "Q.E2"
    },
    "QQ8": {
      "kind": "question",
      "question_kind": "explicit_request",
      "prompt": "Your written read is next, delivered in full either way. Is the written read enough?",
      "free_text": null,
      "options": [
        {
          "key": "written-enough",
          "label": "The written read is enough.",
          "goto": "Q.E1",
          "preselected_default": true
        },
        {
          "key": "ask-conversation",
          "label": "After I have the read, I want to ask for a conversation.",
          "goto": "Q.E1"
        }
      ]
    },
    "G1": {
      "kind": "question",
      "question_kind": "ownership",
      "prompt": "Which one has a funded program behind it today &mdash; the lane, or the dock?",
      "free_text": null,
      "options": [
        {
          "key": "lane",
          "label": "The lane.",
          "goto": "G2L"
        },
        {
          "key": "dock",
          "label": "The dock.",
          "goto": "G2D"
        },
        {
          "key": "both",
          "label": "Both.",
          "goto": "G2D"
        },
        {
          "key": "neither",
          "label": "Neither.",
          "goto": "G3"
        }
      ]
    },
    "G2L": {
      "kind": "question",
      "question_kind": "past_behavior",
      "prompt": "Have you asked your POS software vendor about 2D yet? What did they say?",
      "free_text": "What did they say? (optional)",
      "options": [
        {
          "key": "plan",
          "label": "Yes &mdash; they have a plan.",
          "goto": "G3"
        },
        {
          "key": "no-answer",
          "label": "Yes &mdash; no real answer.",
          "goto": "G3"
        },
        {
          "key": "not-yet",
          "label": "We have not asked them.",
          "goto": "G3"
        }
      ]
    },
    "G2D": {
      "kind": "question",
      "question_kind": "past_behavior",
      "prompt": "Tell me about the last traceability request you received &mdash; who asked, how long did it take, and what did you send?",
      "free_text": "Who asked, and what did you send? (optional)",
      "options": [
        {
          "key": "hours",
          "label": "It took hours.",
          "goto": "G3"
        },
        {
          "key": "days",
          "label": "It took days.",
          "goto": "G3"
        },
        {
          "key": "weeks",
          "label": "It took weeks.",
          "goto": "G3"
        },
        {
          "key": "never",
          "label": "We have never had one.",
          "goto": "G3"
        }
      ]
    },
    "G3": {
      "kind": "question",
      "question_kind": "who_else_touches",
      "prompt": "At a store, who physically receives a DSD delivery &mdash; and is that person recorded anywhere?",
      "free_text": null,
      "options": [
        {
          "key": "recorded",
          "label": "An associate, and it is recorded.",
          "goto": "G4"
        },
        {
          "key": "not-recorded",
          "label": "An associate, and it is not recorded.",
          "goto": "G4"
        },
        {
          "key": "driver",
          "label": "The driver scans; we don&rsquo;t.",
          "goto": "G4"
        },
        {
          "key": "varies",
          "label": "It varies by store.",
          "goto": "G4"
        }
      ]
    },
    "G4": {
      "kind": "question",
      "question_kind": "existing_commitment",
      "prompt": "When is your next POS refresh, and is it capital-approved?",
      "free_text": null,
      "options": [
        {
          "key": "12-approved",
          "label": "Within 12 months, approved.",
          "goto": "GR1"
        },
        {
          "key": "12-24",
          "label": "12&ndash;24 months out.",
          "goto": "GR1"
        },
        {
          "key": "further",
          "label": "Further out.",
          "goto": "GR1"
        },
        {
          "key": "unknown",
          "label": "Don&rsquo;t know.",
          "goto": "GR1"
        }
      ]
    },
    "GR1": {
      "kind": "route",
      "rules": [
        {
          "when": {
            "node": "G1",
            "in": [
              "neither"
            ]
          },
          "goto": "G.E2"
        },
        {
          "when": {
            "node": "G2D",
            "in": [
              "never"
            ]
          },
          "goto": "G.E2"
        }
      ],
      "else": "G.E1"
    },
    "A1": {
      "kind": "question",
      "question_kind": "past_behavior",
      "prompt": "Walk me through the last claim you filed against a carrier or a vendor. What evidence did you attach?",
      "free_text": "What was attached? (optional)",
      "options": [
        {
          "key": "pod-cctv",
          "label": "POD signatures, CCTV, WMS logs.",
          "goto": "AR0"
        },
        {
          "key": "scans",
          "label": "Scan data only.",
          "goto": "AR0"
        },
        {
          "key": "whatever",
          "label": "Whatever we had.",
          "goto": "AR0"
        },
        {
          "key": "no-claims",
          "label": "We don&rsquo;t file claims.",
          "goto": "AR0"
        }
      ]
    },
    "AR0": {
      "kind": "route",
      "rules": [
        {
          "when": {
            "node": "A1",
            "in": [
              "no-claims"
            ]
          },
          "goto": "A2b"
        }
      ],
      "else": "A2"
    },
    "A2": {
      "kind": "question",
      "question_kind": "current_tool",
      "prompt": "How do you decide today whether a loss is theft, damage, or a scan error?",
      "free_text": null,
      "options": [
        {
          "key": "prove",
          "label": "We can usually prove it.",
          "goto": "A3"
        },
        {
          "key": "infer",
          "label": "We infer it.",
          "goto": "A3"
        },
        {
          "key": "case",
          "label": "Case by case.",
          "goto": "A3"
        },
        {
          "key": "cant",
          "label": "We mostly can&rsquo;t.",
          "goto": "A3"
        }
      ]
    },
    "A2b": {
      "kind": "question",
      "question_kind": "past_behavior",
      "prompt": "No claims, then. The last time something went missing between the DC and the shelf &mdash; what actually happened to that loss?",
      "free_text": "What happened? (optional, in your own words)",
      "options": [
        {
          "key": "wrote-off",
          "label": "Written off as shrink; no cause established.",
          "goto": "A.E2"
        },
        {
          "key": "internal",
          "label": "We investigated internally; no carrier or vendor was ever involved.",
          "goto": "A.E2"
        },
        {
          "key": "recovered",
          "label": "We recover it through vendor negotiation, not claims.",
          "goto": "A.E2"
        },
        {
          "key": "rare",
          "label": "Rare enough that we don&rsquo;t track it.",
          "goto": "A.E2"
        }
      ]
    },
    "A3": {
      "kind": "question",
      "question_kind": "pain_cost",
      "prompt": "How many of these a month, and what&rsquo;s the average value?",
      "free_text": null,
      "options": [
        {
          "key": "under-10",
          "label": "Under 10 a month.",
          "goto": "A.E1"
        },
        {
          "key": "10-50",
          "label": "10&ndash;50 a month.",
          "goto": "A.E1"
        },
        {
          "key": "over-50",
          "label": "More than 50 a month.",
          "goto": "A.E1"
        },
        {
          "key": "few-year",
          "label": "A handful a year.",
          "goto": "A.E1"
        }
      ]
    },
    "P1": {
      "kind": "question",
      "question_kind": "past_behavior",
      "prompt": "Which customer told you to send event data, and what did the mandate actually say?",
      "free_text": "What did the mandate say? (optional)",
      "options": [
        {
          "key": "named-dated",
          "label": "A named customer, with a date.",
          "goto": "PR0"
        },
        {
          "key": "named",
          "label": "A named customer, no date.",
          "goto": "PR0"
        },
        {
          "key": "informal",
          "label": "It&rsquo;s coming, but nothing formal yet.",
          "goto": "PR0"
        },
        {
          "key": "nobody",
          "label": "Nobody has.",
          "goto": "PR0"
        }
      ]
    },
    "PR0": {
      "kind": "route",
      "rules": [
        {
          "when": {
            "node": "P1",
            "in": [
              "nobody"
            ]
          },
          "goto": "P3"
        }
      ],
      "else": "P2"
    },
    "P2": {
      "kind": "question",
      "question_kind": "pain_frequency",
      "prompt": "How many different customer formats are you maintaining right now?",
      "free_text": null,
      "options": [
        {
          "key": "one",
          "label": "1.",
          "goto": "P3"
        },
        {
          "key": "few",
          "label": "2&ndash;3.",
          "goto": "P3"
        },
        {
          "key": "many",
          "label": "4 or more.",
          "goto": "P3"
        },
        {
          "key": "none",
          "label": "None yet.",
          "goto": "P3"
        }
      ]
    },
    "P3": {
      "kind": "question",
      "question_kind": "current_tool",
      "prompt": "What does your MES or WMS emit &mdash; do you know the format and version?",
      "free_text": null,
      "options": [
        {
          "key": "epcis-1x",
          "label": "EPCIS 1.1 / 1.2 XML.",
          "goto": "P4"
        },
        {
          "key": "epcis-2",
          "label": "EPCIS 2.0.",
          "goto": "P4"
        },
        {
          "key": "vendor",
          "label": "Vendor JSON or CSV.",
          "goto": "P4"
        },
        {
          "key": "unknown",
          "label": "No idea.",
          "goto": "P4"
        }
      ]
    },
    "P4": {
      "kind": "question",
      "question_kind": "ownership",
      "prompt": "Who owns that integration &mdash; plant IT, corporate IT, or an outside integrator?",
      "free_text": null,
      "options": [
        {
          "key": "plant-it",
          "label": "Plant IT.",
          "goto": "PR1"
        },
        {
          "key": "corp-it",
          "label": "Corporate IT.",
          "goto": "PR1"
        },
        {
          "key": "integrator",
          "label": "An outside integrator.",
          "goto": "PR1"
        },
        {
          "key": "nobody",
          "label": "Nobody yet.",
          "goto": "PR1"
        }
      ]
    },
    "PR1": {
      "kind": "route",
      "rules": [
        {
          "when": {
            "node": "P1",
            "in": [
              "nobody"
            ]
          },
          "goto": "P.E3"
        }
      ],
      "else": "P.E1"
    },
    "L1": {
      "kind": "question",
      "question_kind": "past_behavior",
      "prompt": "Show me how you answered the traceability section of your last RFP &mdash; what did you actually write?",
      "free_text": "What did you write? (optional)",
      "options": [
        {
          "key": "wms-sops",
          "label": "A description of our WMS and a paragraph about SOPs.",
          "goto": "L2"
        },
        {
          "key": "capability",
          "label": "A real capability section.",
          "goto": "L2"
        },
        {
          "key": "ducked",
          "label": "We ducked it.",
          "goto": "L2"
        },
        {
          "key": "no-rfp",
          "label": "We haven&rsquo;t had one.",
          "goto": "L2"
        }
      ]
    },
    "L2": {
      "kind": "question",
      "question_kind": "past_behavior",
      "prompt": "Last time a client disputed a handling claim &mdash; how did it resolve, and what did you produce?",
      "free_text": "What did you produce? (optional)",
      "options": [
        {
          "key": "paid",
          "label": "We paid &mdash; we couldn&rsquo;t prove it.",
          "goto": "L3"
        },
        {
          "key": "won",
          "label": "We won &mdash; we had the records.",
          "goto": "L3"
        },
        {
          "key": "split",
          "label": "It split.",
          "goto": "L3"
        },
        {
          "key": "never",
          "label": "Hasn&rsquo;t happened.",
          "goto": "L3"
        }
      ]
    },
    "L3": {
      "kind": "question",
      "question_kind": "who_else_touches",
      "prompt": "On an average shift, roughly what share of the people handling goods are agency or temp?",
      "free_text": null,
      "options": [
        {
          "key": "none",
          "label": "None.",
          "goto": "L4"
        },
        {
          "key": "quarter",
          "label": "Under a quarter.",
          "goto": "L4"
        },
        {
          "key": "half",
          "label": "About half.",
          "goto": "L4"
        },
        {
          "key": "most",
          "label": "Most.",
          "goto": "L4"
        }
      ]
    },
    "L4": {
      "kind": "question",
      "question_kind": "past_behavior",
      "prompt": "Do any clients get a live view into your system today? How is that access granted &mdash; and how is it revoked?",
      "free_text": null,
      "options": [
        {
          "key": "yes-revocable",
          "label": "Yes &mdash; and revocation is defined.",
          "goto": "LR1"
        },
        {
          "key": "yes-norevoke",
          "label": "Yes &mdash; and nobody&rsquo;s ever asked how it&rsquo;s revoked.",
          "goto": "LR1"
        },
        {
          "key": "no",
          "label": "No.",
          "goto": "LR1"
        }
      ]
    },
    "LR1": {
      "kind": "route",
      "rules": [
        {
          "when": {
            "node": "L4",
            "in": [
              "yes-norevoke"
            ]
          },
          "goto": "L.E2"
        }
      ],
      "else": "L.E1"
    },
    "V1": {
      "kind": "question",
      "question_kind": "past_behavior",
      "prompt": "What did your customer actually ask for when they said EPCIS 2.0 conformance &mdash; what were the words?",
      "free_text": "The words, as near as you remember. (optional)",
      "options": [
        {
          "key": "attestation",
          "label": "A certificate or attestation.",
          "goto": "V2"
        },
        {
          "key": "test-run",
          "label": "A test run.",
          "goto": "V2"
        },
        {
          "key": "document",
          "label": "A document.",
          "goto": "V2"
        },
        {
          "key": "not-yet",
          "label": "It hasn&rsquo;t come up.",
          "goto": "V2"
        }
      ]
    },
    "V2": {
      "kind": "question",
      "question_kind": "past_behavior",
      "prompt": "Have you shipped any EPCIS support already? Which versions, and what broke?",
      "free_text": "What broke? (optional)",
      "options": [
        {
          "key": "1x",
          "label": "1.x XML.",
          "goto": "V3"
        },
        {
          "key": "2-partial",
          "label": "2.0, partially.",
          "goto": "V3"
        },
        {
          "key": "both",
          "label": "Both.",
          "goto": "V3"
        },
        {
          "key": "none",
          "label": "None.",
          "goto": "V3"
        }
      ]
    },
    "V3": {
      "kind": "question",
      "question_kind": "past_behavior",
      "prompt": "The last time a customer accepted or rejected your conformance claim &mdash; what did they ask you for, and what did you show them?",
      "free_text": "What did you show them? (optional)",
      "options": [
        {
          "key": "accepted",
          "label": "Accepted.",
          "goto": "VR1"
        },
        {
          "key": "rejected",
          "label": "Rejected.",
          "goto": "VR1"
        },
        {
          "key": "never",
          "label": "It has never been tested.",
          "goto": "VR1"
        }
      ]
    },
    "VR1": {
      "kind": "route",
      "rules": [
        {
          "when": {
            "node": "V1",
            "in": [
              "attestation"
            ]
          },
          "goto": "V.E2"
        }
      ],
      "else": "V.E1"
    },
    "I1": {
      "kind": "question",
      "question_kind": "past_behavior",
      "prompt": "In your last three proposals, what did you put in the &ldquo;where does the data go&rdquo; section?",
      "free_text": "What did you write? (optional)",
      "options": [
        {
          "key": "partner-saas",
          "label": "A software partner&rsquo;s SaaS.",
          "goto": "I2"
        },
        {
          "key": "client",
          "label": "The client&rsquo;s own systems.",
          "goto": "I2"
        },
        {
          "key": "open",
          "label": "We leave it open.",
          "goto": "I2"
        }
      ]
    },
    "I2": {
      "kind": "question",
      "question_kind": "actual_spend",
      "prompt": "What&rsquo;s your software attach rate today, and is it resold or referred?",
      "free_text": null,
      "options": [
        {
          "key": "resold",
          "label": "Resold.",
          "goto": "IR1"
        },
        {
          "key": "referred",
          "label": "Referred.",
          "goto": "IR1"
        },
        {
          "key": "neither",
          "label": "Neither.",
          "goto": "IR1"
        },
        {
          "key": "varies",
          "label": "It varies.",
          "goto": "IR1"
        }
      ]
    },
    "IR1": {
      "kind": "route",
      "rules": [
        {
          "when": {
            "node": "I2",
            "in": [
              "neither"
            ]
          },
          "goto": "I.E2"
        }
      ],
      "else": "I.E1"
    },
    "D1": {
      "kind": "question",
      "question_kind": "past_behavior",
      "prompt": "What did your team do the last time you needed EPCIS 2.0 conformance &mdash; build, buy, or defer?",
      "free_text": null,
      "options": [
        {
          "key": "build",
          "label": "Build.",
          "goto": "D2"
        },
        {
          "key": "buy",
          "label": "Buy.",
          "goto": "D2"
        },
        {
          "key": "defer",
          "label": "Defer.",
          "goto": "D2"
        },
        {
          "key": "first-time",
          "label": "It hasn&rsquo;t come up until now.",
          "goto": "D2"
        }
      ]
    },
    "D2": {
      "kind": "question",
      "question_kind": "ownership",
      "prompt": "What&rsquo;s the procurement threshold you can adopt under without a contract?",
      "free_text": null,
      "options": [
        {
          "key": "oss",
          "label": "Anything open-source.",
          "goto": "D3"
        },
        {
          "key": "5k",
          "label": "Under $5k.",
          "goto": "D3"
        },
        {
          "key": "25k",
          "label": "Under $25k.",
          "goto": "D3"
        },
        {
          "key": "review",
          "label": "Everything needs review.",
          "goto": "D3"
        }
      ]
    },
    "D3": {
      "kind": "question",
      "question_kind": "ownership",
      "prompt": "Who&rsquo;s the review gate &mdash; security, architecture, both, or neither?",
      "free_text": null,
      "options": [
        {
          "key": "security",
          "label": "Security.",
          "goto": "DR1"
        },
        {
          "key": "architecture",
          "label": "Architecture.",
          "goto": "DR1"
        },
        {
          "key": "both",
          "label": "Both.",
          "goto": "DR1"
        },
        {
          "key": "neither",
          "label": "Neither.",
          "goto": "DR1"
        }
      ]
    },
    "DR1": {
      "kind": "route",
      "rules": [
        {
          "when": {
            "node": "D3",
            "in": [
              "neither"
            ]
          },
          "goto": "D.E2"
        }
      ],
      "else": "D.E1"
    }
  },
  "endings": {
    "M.E1": {
      "kind": "waitlist",
      "stores_email": true,
      "scope_asked_about": "first-party signal from your own pack",
      "promise": "You asked about first-party signal from your own pack. That analytics product is not what this list provisions, and we say so now rather than after: this list provisions capture workspaces &mdash; the record layer under that signal. We write when your seat is ready &mdash; the record layer, not the analytics product you asked about &mdash; and follow up about it from there. We don&rsquo;t sell your address or hand it to advertisers, and you can tell us to stop at any time. If we stop working on this, we say so rather than go quiet.",
      "offers_conversation": false
    },
    "M.E2": {
      "kind": "waitlist",
      "stores_email": true,
      "scope_asked_about": "what to send back to a retailer asking for 2D readiness",
      "promise": "You asked what to send back to a retailer asking for 2D readiness. The written read below is that answer; this list provisions the record layer underneath it &mdash; your capture workspace. We write when your seat is ready, and follow up about it from there. We don&rsquo;t sell your address or hand it to advertisers, and you can tell us to stop at any time. If we stop, we say so rather than go quiet.",
      "offers_conversation": false
    },
    "M.E3": {
      "kind": "waitlist",
      "stores_email": true,
      "scope_asked_about": "nothing yet — your trigger has not fired",
      "promise": "Nothing is going to happen to you this quarter. We&rsquo;ll write when there&rsquo;s something to see. We don&rsquo;t sell your address or hand it to advertisers, and you can tell us to stop at any time. If we stop working on this, we say so rather than go quiet.",
      "offers_conversation": false
    },
    "E1.E1": {
      "kind": "waitlist",
      "stores_email": true,
      "scope_asked_about": "where the co-man event data would land",
      "promise": "You asked where the co-man event data would land. It lands in a capture workspace provisioned from this list. We write when your seat is ready, and follow up about it from there. We don&rsquo;t sell your address or hand it to advertisers, and you can tell us to stop at any time. If we stop, we say so rather than go quiet.",
      "offers_conversation": true
    },
    "E1.E2": {
      "kind": "waitlist",
      "stores_email": true,
      "scope_asked_about": "nothing yet — the program has no budget line and no dated destination decision",
      "promise": "Nothing is going to happen to you this fiscal year. We&rsquo;ll write when there&rsquo;s something to see. We don&rsquo;t sell your address or hand it to advertisers, and you can tell us to stop at any time. If we stop working on this, we say so rather than go quiet.",
      "offers_conversation": false
    },
    "Q.E1": {
      "kind": "waitlist",
      "stores_email": true,
      "scope_asked_about": "where the reads from a deployment already in flight should land",
      "promise": "You asked where the reads from a deployment already in flight should land. They land in a capture workspace provisioned from this list. We write when your seat is ready, and follow up about it from there. We don&rsquo;t sell your address or hand it to advertisers, and you can tell us to stop at any time. If we stop, we say so rather than go quiet.",
      "offers_conversation": true
    },
    "Q.E2": {
      "kind": "waitlist",
      "stores_email": true,
      "scope_asked_about": "a data layer for a deployment that has not started yet",
      "promise": "We&rsquo;ll write when there&rsquo;s something to see. We don&rsquo;t sell your address or hand it to advertisers, and you can tell us to stop at any time. If we stop working on this, we say so rather than go quiet.",
      "offers_conversation": false
    },
    "G.E1": {
      "kind": "waitlist",
      "stores_email": true,
      "scope_asked_about": "where what the lane reads and what the dock receives should land",
      "promise": "You asked where what the lane reads and what the dock receives should land. It lands in a capture workspace provisioned from this list. We write when your seat is ready, and follow up about it from there. We don&rsquo;t sell your address or hand it to advertisers, and you can tell us to stop at any time. If we stop, we say so rather than go quiet.",
      "offers_conversation": false
    },
    "G.E2": {
      "kind": "waitlist",
      "stores_email": true,
      "scope_asked_about": "nothing yet — your trigger has not fired",
      "promise": "Nothing is going to happen to you this quarter. We&rsquo;ll write when there&rsquo;s something to see. We don&rsquo;t sell your address or hand it to advertisers, and you can tell us to stop at any time. If we stop working on this, we say so rather than go quiet.",
      "offers_conversation": false
    },
    "A.E1": {
      "kind": "waitlist",
      "stores_email": true,
      "scope_asked_about": "a handoff record that names who handled it",
      "promise": "You asked for a handoff record that names who handled it. That is the record this spine makes &mdash; who, the attested observer, distinct from capturedBy, the warrantor account &mdash; and your capture workspace is provisioned from this list. We write when your seat is ready, and follow up about it from there. We don&rsquo;t sell your address or hand it to advertisers, and you can tell us to stop at any time. If we stop, we say so rather than go quiet.",
      "offers_conversation": false
    },
    "A.E2": {
      "kind": "waitlist",
      "stores_email": true,
      "scope_asked_about": "nothing yet — you told us you don&rsquo;t file claims",
      "promise": "We&rsquo;ll write when there&rsquo;s something to see. We don&rsquo;t sell your address or hand it to advertisers, and you can tell us to stop at any time. If we stop working on this, we say so rather than go quiet.",
      "offers_conversation": false
    },
    "P.E1": {
      "kind": "waitlist",
      "stores_email": true,
      "scope_asked_about": "somewhere to point the line",
      "promise": "You asked for somewhere to point the line. Your capture workspace is provisioned from this list &mdash; the stateless doors are live today, POST https://epcis.dev/translate, /validate and /hash, and the hosted capture spine answers at https://api.epcis.dev to a capture key &mdash; issuing those keys is not open yet. Capture is $0 per event, as policy. We write when your seat is ready, and follow up about it from there. We don&rsquo;t sell your address or hand it to advertisers, and you can tell us to stop at any time. If we stop working on this, we say so rather than go quiet.",
      "offers_conversation": false
    },
    "P.E3": {
      "kind": "waitlist",
      "stores_email": true,
      "scope_asked_about": "nothing yet — your trigger is a customer mandate with a date on it",
      "promise": "We&rsquo;ll write when there&rsquo;s something to see. We don&rsquo;t sell your address or hand it to advertisers, and you can tell us to stop at any time. If we stop working on this, we say so rather than go quiet.",
      "offers_conversation": false
    },
    "L.E1": {
      "kind": "waitlist",
      "stores_email": true,
      "scope_asked_about": "scoped client visibility — a grant a shipper can verify without joining anything",
      "promise": "You asked for scoped client visibility &mdash; a grant a shipper can verify without joining anything. SharingGrants are named in the design and the scope engine underneath them is written and tested; the grant object a partner would actually mint is not built. This list provisions the capture workspace the grants will scope over. We write when your seat is ready, and follow up about it from there. We don&rsquo;t sell your address or hand it to advertisers, and you can tell us to stop at any time. If we stop, we say so rather than go quiet.",
      "offers_conversation": false
    },
    "L.E2": {
      "kind": "waitlist",
      "stores_email": true,
      "scope_asked_about": "scoped client visibility, and the revocation nobody has asked about",
      "promise": "You asked for scoped client visibility &mdash; a grant a shipper can verify without joining anything. SharingGrants are named in the design and the scope engine underneath them is written and tested; the grant object a partner would actually mint is not built. This list provisions the capture workspace the grants will scope over. We write when your seat is ready, and follow up about it from there. We don&rsquo;t sell your address or hand it to advertisers, and you can tell us to stop at any time. If we stop, we say so rather than go quiet.",
      "offers_conversation": false
    },
    "V.E1": {
      "kind": "dev-handoff",
      "stores_email": true,
      "scope_asked_about": "an embeddable, demonstrable EPCIS 2.0 layer",
      "promise": "Your capture workspace is provisioned from this list. We write when your seat is ready, and follow up about it from there. We don&rsquo;t sell your address or hand it to advertisers, and you can tell us to stop at any time. If we stop working on this, we say so rather than go quiet.",
      "offers_conversation": false
    },
    "V.E2": {
      "kind": "dev-handoff",
      "stores_email": true,
      "scope_asked_about": "a certificate or attestation of EPCIS 2.0 conformance",
      "promise": "Your capture workspace is provisioned from this list. We write when your seat is ready, and follow up about it from there. We don&rsquo;t sell your address or hand it to advertisers, and you can tell us to stop at any time. If we stop working on this, we say so rather than go quiet.",
      "offers_conversation": false
    },
    "I.E1": {
      "kind": "dev-handoff",
      "stores_email": true,
      "scope_asked_about": "a data layer includable in a hardware proposal",
      "promise": "There is no channel program today &mdash; we say that first. If a partner surface ever exists you&rsquo;ll get one message. Otherwise: your capture workspace is provisioned from this list, and the email you get says your seat is ready. We don&rsquo;t sell your address or hand it to advertisers, and you can tell us to stop at any time. If we stop working on this, we say so rather than go quiet.",
      "offers_conversation": false
    },
    "I.E2": {
      "kind": "dev-handoff",
      "stores_email": true,
      "scope_asked_about": "a data layer includable in a hardware proposal — starting from no attach at all",
      "promise": "There is no channel program today &mdash; we say that first. If a partner surface ever exists you&rsquo;ll get one message. Otherwise: your capture workspace is provisioned from this list, and the email you get says your seat is ready. We don&rsquo;t sell your address or hand it to advertisers, and you can tell us to stop at any time. If we stop working on this, we say so rather than go quiet.",
      "offers_conversation": false
    },
    "D.E1": {
      "kind": "dev-handoff",
      "stores_email": true,
      "scope_asked_about": "a conformant repository you did not have to spend a year building",
      "promise": "Your capture workspace is provisioned from this list. We write when your seat is ready, and follow up about it from there. We don&rsquo;t sell your address or hand it to advertisers, and you can tell us to stop at any time. If we stop working on this, we say so rather than go quiet.",
      "offers_conversation": false
    },
    "D.E2": {
      "kind": "dev-handoff",
      "stores_email": true,
      "scope_asked_about": "a conformant repository you did not have to spend a year building — with no review gate in the way",
      "promise": "Your capture workspace is provisioned from this list. We write when your seat is ready, and follow up about it from there. We don&rsquo;t sell your address or hand it to advertisers, and you can tell us to stop at any time. If we stop working on this, we say so rather than go quiet.",
      "offers_conversation": false
    },
    "N.E1": {
      "kind": "no-fit",
      "stores_email": false,
      "scope_asked_about": null,
      "promise": null,
      "offers_conversation": false
    },
    "N.E2": {
      "kind": "no-fit",
      "stores_email": false,
      "scope_asked_about": null,
      "promise": null,
      "offers_conversation": false
    },
    "N.E3": {
      "kind": "no-fit",
      "stores_email": false,
      "scope_asked_about": null,
      "promise": null,
      "offers_conversation": false
    },
    "N.E4": {
      "kind": "no-fit",
      "stores_email": false,
      "scope_asked_about": null,
      "promise": null,
      "offers_conversation": false
    },
    "N.E5": {
      "kind": "no-fit",
      "stores_email": false,
      "scope_asked_about": null,
      "promise": null,
      "offers_conversation": false
    }
  }
}
