{
  "artifacts": [
    {
      "bytes": 323951,
      "contentType": "application/json",
      "description": "Generated machine-readable public dataset used by the study page charts; suitable for upload into analysis tools.",
      "filename": "study-summary.json",
      "name": "Uploadable public summary JSON",
      "path": "/research/llm-arbitrary-choice-study/study-summary.json",
      "sha256": "f1a19f6f1c4d3fa2903dca4646a8f7d9867e94165f728f062a8eace5d654fd85",
      "url": "https://crow.sg/research/llm-arbitrary-choice-study/study-summary.json"
    },
    {
      "bytes": 31860,
      "contentType": "application/schema+json",
      "description": "Machine-readable JSON Schema for the generated public summary.",
      "filename": "study-summary.schema.json",
      "name": "Summary JSON schema",
      "path": "/research/llm-arbitrary-choice-study/study-summary.schema.json",
      "sha256": "be5aaa09ff6ed7428820a926b36f4953f16ee2d75c551ee4f2d33d53df8857bf",
      "url": "https://crow.sg/research/llm-arbitrary-choice-study/study-summary.schema.json"
    },
    {
      "bytes": 9873,
      "contentType": "application/schema+json",
      "description": "Machine-readable JSON Schema for the public artifact manifest.",
      "filename": "artifact-manifest.schema.json",
      "name": "Artifact manifest schema",
      "path": "/research/llm-arbitrary-choice-study/artifact-manifest.schema.json",
      "sha256": "e17c91fcb6c1832e6f811ddc7e7aa67fe55090c8fe9bb7c5d0f2477863be3567",
      "url": "https://crow.sg/research/llm-arbitrary-choice-study/artifact-manifest.schema.json"
    },
    {
      "bytes": 131055,
      "contentType": "application/pdf",
      "description": "Generated paper-style PDF.",
      "filename": "llm-arbitrary-choice-study.pdf",
      "name": "Paper PDF",
      "path": "/research/llm-arbitrary-choice-study/llm-arbitrary-choice-study.pdf",
      "sha256": "7274fe5c7a85739fb9953ef5a8cae73dbe1e3664e307cab96d12a6324fb5dca7",
      "url": "https://crow.sg/research/llm-arbitrary-choice-study/llm-arbitrary-choice-study.pdf"
    },
    {
      "bytes": 30636,
      "contentType": "text/html",
      "description": "Browser-printable fallback version.",
      "filename": "llm-arbitrary-choice-study-print.html",
      "name": "Printable HTML",
      "path": "/research/llm-arbitrary-choice-study/llm-arbitrary-choice-study-print.html",
      "sha256": "300ce4f206756fa1c17332bf7087751e75f76aa2251cdffca2a01a1668ef5213",
      "url": "https://crow.sg/research/llm-arbitrary-choice-study/llm-arbitrary-choice-study-print.html"
    },
    {
      "bytes": 24433,
      "contentType": "application/x-tex",
      "description": "Source for rebuilding the paper when a LaTeX toolchain is available.",
      "filename": "llm-arbitrary-choice-study.tex",
      "name": "LaTeX source",
      "path": "/research/llm-arbitrary-choice-study/llm-arbitrary-choice-study.tex",
      "sha256": "9308e3097ee678a7226136186b9d0718a287f28b93077f8c5b3b1fd0acdc86fc",
      "url": "https://crow.sg/research/llm-arbitrary-choice-study/llm-arbitrary-choice-study.tex"
    },
    {
      "bytes": 519,
      "contentType": "application/x-bibtex",
      "description": "Citation entry for reference managers and academic notes.",
      "filename": "llm-arbitrary-choice-study.bib",
      "name": "BibTeX citation",
      "path": "/research/llm-arbitrary-choice-study/llm-arbitrary-choice-study.bib",
      "sha256": "27f904adb2311f54609083e8970e91cb34f0552886890fbf6f01ef3b1b3701d8",
      "url": "https://crow.sg/research/llm-arbitrary-choice-study/llm-arbitrary-choice-study.bib"
    },
    {
      "bytes": 6610,
      "contentType": "image/svg+xml",
      "description": "Vector visual summary of the strongest word-level preferences.",
      "filename": "bias-map.svg",
      "name": "Bias map SVG",
      "path": "/research/llm-arbitrary-choice-study/bias-map.svg",
      "sha256": "3e7de8ad2fb22b916623f5a6951b7200830efbcea07b738a683a838c861fc8ca",
      "url": "https://crow.sg/research/llm-arbitrary-choice-study/bias-map.svg"
    },
    {
      "bytes": 71329,
      "contentType": "image/png",
      "description": "Raster preview image for social cards and crawlers that do not reliably render SVG.",
      "filename": "bias-map.png",
      "name": "Bias map PNG",
      "path": "/research/llm-arbitrary-choice-study/bias-map.png",
      "sha256": "0e80e34f49ae182f8e83f15419e0057217b2216648b2fb4e5d552ea015f99714",
      "url": "https://crow.sg/research/llm-arbitrary-choice-study/bias-map.png"
    }
  ],
  "notes": [
    "The full raw SQLite row log is not included in this repository's public site artifacts.",
    "The uploadable public machine-readable release is study-summary.json, accompanied by its JSON Schema and this manifest.",
    "Study code is published at https://github.com/Crow-Tech-Pte-Ltd/research/tree/main/llm-arbitrary-choice-study.",
    "SHA-256 hashes cover the public files listed in this manifest at generation time.",
    "The manifest is not self-hashed because writing the manifest changes its own bytes."
  ],
  "schemaVersion": 1,
  "study": {
    "articleDate": "2026-05-08",
    "attemptsUpdatedAt": "2026-05-08 10:06:11",
    "author": "Daniel Alonso",
    "slug": "llm-arbitrary-choice-study",
    "sourceDatabase": "source SQLite run log; public release is study-summary.json and generated artifacts",
    "sourceUpdatedAt": "2026-05-08 10:06:11",
    "title": "Arbitrary Choices Are Not Random"
  },
  "summaryJson": {
    "dataDictionary": [
      {
        "description": "Study metadata, source timestamps, run configuration, and public headline counts.",
        "fieldNames": [
          "articleDate",
          "attemptsUpdatedAt",
          "author",
          "conditions",
          "contexts",
          "dashboardSpendUsd",
          "inferredContextTargets",
          "models",
          "pairs",
          "plannedTrials",
          "repetitions",
          "slug",
          "sourceDatabase",
          "sourceUpdatedAt",
          "subtitle",
          "taxonomyNote",
          "temperature",
          "title"
        ],
        "fields": 18,
        "key": "study",
        "type": "object"
      },
      {
        "description": "Trial rows grouped by final execution or parse status.",
        "fieldNames": [
          "count",
          "status"
        ],
        "fields": 2,
        "key": "statusCounts",
        "records": 5,
        "type": "array"
      },
      {
        "description": "Prompt-condition totals, OK rates, and first-displayed-option shares.",
        "fieldNames": [
          "condition",
          "firstShare",
          "okRate",
          "okTrials",
          "totalTrials"
        ],
        "fields": 5,
        "key": "conditionSummary",
        "records": 4,
        "type": "array"
      },
      {
        "description": "Parser decision totals across all trial rows.",
        "fieldNames": [
          "count",
          "parseStatus"
        ],
        "fields": 2,
        "key": "parseStatusCounts",
        "records": 6,
        "type": "array"
      },
      {
        "description": "Attempt outcomes grouped by status and max_tokens setting.",
        "fieldNames": [
          "count",
          "maxTokens",
          "status"
        ],
        "fields": 3,
        "key": "attemptsByMaxTokens",
        "records": 10,
        "type": "array"
      },
      {
        "description": "Dashboard spend, captured usage spend, and token accounting from recorded attempts.",
        "fieldNames": [
          "attemptCompletionTokens",
          "attemptPromptTokens",
          "attemptReasoningTokens",
          "attemptUsageObservedUsd",
          "dashboardSpendUsd",
          "note",
          "trialUsageObservedUsd"
        ],
        "fields": 7,
        "key": "cost",
        "type": "object"
      },
      {
        "description": "Per-model reliability, bias, context-sensitivity, taxonomy, and captured usage summary.",
        "fieldNames": [
          "attemptCostUsd",
          "bareFirstShare",
          "completionTokens",
          "contextSensitivity",
          "family",
          "firstShare",
          "label",
          "modelId",
          "okRate",
          "okTrials",
          "origin",
          "positionBiasStrength",
          "promptTokens",
          "provider",
          "reasoningTokens",
          "researchClass",
          "semanticPreferenceStrength",
          "status",
          "tier",
          "totalTrials",
          "usageRows"
        ],
        "fields": 21,
        "key": "models",
        "records": 42,
        "type": "array"
      },
      {
        "description": "Per-provider rollup of trial status counts, OK rate, model count, spend, and mean bias metrics.",
        "fieldNames": [
          "attemptCostUsd",
          "counts",
          "meanFirstShare",
          "meanSemanticPreferenceStrength",
          "models",
          "okRate",
          "provider",
          "totalTrials"
        ],
        "fields": 8,
        "key": "providerSummary",
        "records": 22,
        "type": "array"
      },
      {
        "description": "Aggregate option preference for each word pair over bare and swapped prompts.",
        "fieldNames": [
          "category",
          "majorityOption",
          "n",
          "optionA",
          "optionACount",
          "optionAShare",
          "optionB",
          "optionBShare",
          "pairId",
          "preferenceStrength"
        ],
        "fields": 10,
        "key": "pairBias",
        "records": 30,
        "type": "array"
      },
      {
        "description": "Per-model option preference for each word pair over bare and swapped prompts.",
        "fieldNames": [
          "category",
          "firstShare",
          "majorityOption",
          "modelId",
          "n",
          "optionA",
          "optionAShare",
          "optionB",
          "pairId",
          "preferenceStrength"
        ],
        "fields": 10,
        "key": "modelPairBias",
        "records": 1230,
        "type": "array"
      },
      {
        "description": "Context-prompt lift versus the same model and pair under bare prompts.",
        "fieldNames": [
          "absMeanLift",
          "baselineShare",
          "contextId",
          "contextShare",
          "intendedAssociation",
          "intendedOption",
          "meanLift",
          "models",
          "n",
          "pairId",
          "text"
        ],
        "fields": 11,
        "key": "contextEffects",
        "records": 55,
        "type": "array"
      },
      {
        "description": "Derived headline values and selected examples used by the public article and charts.",
        "fieldNames": [
          "acceptedNonExactOkRows",
          "exactParseOkRows",
          "exactParseOkShare",
          "manualOverrideRows",
          "mostFirstOptionModel",
          "mostNeutralPair",
          "mostSecondOptionModel",
          "overallFirstShare",
          "rekaFlashTokenShare",
          "strongestPositiveContext",
          "strongestReverseContext",
          "topNonOkModels",
          "topTwoNonOkShare",
          "totalNonOkRows"
        ],
        "fields": 14,
        "key": "insights",
        "type": "object"
      },
      {
        "description": "Public caveats, operational limits, and AI-assistance disclosure.",
        "key": "caveats",
        "records": 9,
        "type": "array"
      }
    ],
    "metricDefinitions": [
      {
        "description": "Share of planned trial rows with final status ok for the grouping.",
        "name": "okRate"
      },
      {
        "description": "Share of OK rows where parsed_choice matched the first displayed option.",
        "name": "firstShare"
      },
      {
        "description": "Share of OK bare and swapped rows where parsed_choice matched optionA.",
        "name": "optionAShare"
      },
      {
        "description": "Share of OK bare and swapped rows where parsed_choice matched optionB.",
        "name": "optionBShare"
      },
      {
        "description": "Absolute distance from an even option split, scaled from 0 to 1.",
        "name": "preferenceStrength"
      },
      {
        "description": "Absolute distance from a 50 percent first-option share, scaled from 0 to 1.",
        "name": "positionBiasStrength"
      },
      {
        "description": "Mean word-pair preference strength for a model over pairs with enough bare and swapped data.",
        "name": "semanticPreferenceStrength"
      },
      {
        "description": "Mean absolute context lift for a model over context rows with data.",
        "name": "contextSensitivity"
      },
      {
        "description": "Share for the intended option under bare prompts for the same model and pair.",
        "name": "baselineShare"
      },
      {
        "description": "Share for the intended option under context prompts for the same model and pair.",
        "name": "contextShare"
      },
      {
        "description": "Mean per-model change in intended-option share under context prompts versus bare baseline.",
        "name": "meanLift"
      },
      {
        "description": "Absolute value of meanLift, used for sorting strongest context effects.",
        "name": "absMeanLift"
      },
      {
        "description": "Captured OpenRouter usage cost from recorded attempt rows for the grouping.",
        "name": "attemptCostUsd"
      },
      {
        "description": "Displayed OpenRouter dashboard spend for the study run.",
        "name": "dashboardSpendUsd"
      }
    ],
    "path": "/research/llm-arbitrary-choice-study/study-summary.json",
    "recordCounts": {
      "attemptsByMaxTokens": 10,
      "caveats": 9,
      "conditionSummary": 4,
      "contextEffects": 55,
      "modelPairBias": 1230,
      "models": 42,
      "pairBias": 30,
      "parseStatusCounts": 6,
      "providerSummary": 22,
      "statusCounts": 5
    },
    "schemaPath": "/research/llm-arbitrary-choice-study/study-summary.schema.json",
    "schemaUrl": "https://crow.sg/research/llm-arbitrary-choice-study/study-summary.schema.json",
    "url": "https://crow.sg/research/llm-arbitrary-choice-study/study-summary.json"
  }
}
