{
  "measurement": "prompt tokens after the chat template and, where images are used, after the processor expands the image placeholders into vision tokens",
  "how_messages_were_built": "with the same lensvlm helpers the harness uses: _build_multimodal_content for the page images and build_user_prompt and _build_tool_response for the text, so image placeholders are never left behind as literal text and the images sit on the message they sat on in the run",
  "how_images_were_rendered": "render_pages from apple-aiml-research/ml-lensvlm with each preset's own RenderConfig, saved under demo_output/<preset>/",
  "wrapper_used_for_view_A": "system: 'You are a helpful assistant.'; user: '<image>' placeholders or the document, followed by 'Question: what?'",
  "wrapper_only_tokens": 27,
  "plain_text": {
    "document_chars": 32033,
    "wrapper_prompt_tokens": 7959,
    "document_only_tokens": 7932,
    "first_turn_prompt_tokens": 8123
  },
  "presets": {
    "5x": {
      "pages": 20,
      "page_size_px": [
        256,
        284
      ],
      "wrapper_prompt_tokens": 1443,
      "document_only_tokens": 1416,
      "image_tokens_total": 1376,
      "image_tokens_per_page": 68.8,
      "vision_delimiter_tokens": 40,
      "other_text_tokens": 27,
      "compression_vs_text": 5.6,
      "first_turn_prompt_tokens": 1607,
      "second_turn_prompt_tokens": 2298,
      "page_expanded": 13,
      "expanded_page_text_chars": 1687,
      "recorded_first_response_chars": 852
    },
    "10x": {
      "pages": 15,
      "page_size_px": [
        192,
        252
      ],
      "wrapper_prompt_tokens": 765,
      "document_only_tokens": 738,
      "image_tokens_total": 708,
      "image_tokens_per_page": 47.2,
      "vision_delimiter_tokens": 30,
      "other_text_tokens": 27,
      "compression_vs_text": 10.75,
      "first_turn_prompt_tokens": 929,
      "second_turn_prompt_tokens": 1784,
      "page_expanded": 10,
      "expanded_page_text_chars": 2192,
      "recorded_first_response_chars": 884
    },
    "15x": {
      "pages": 21,
      "page_size_px": [
        128,
        190
      ],
      "wrapper_prompt_tokens": 557,
      "document_only_tokens": 530,
      "image_tokens_total": 488,
      "image_tokens_per_page": 23.24,
      "vision_delimiter_tokens": 42,
      "other_text_tokens": 27,
      "compression_vs_text": 14.97,
      "first_turn_prompt_tokens": 721,
      "second_turn_prompt_tokens": 1354,
      "page_expanded": 14,
      "expanded_page_text_chars": 1576,
      "recorded_first_response_chars": 688
    }
  },
  "view_A_note": "document_only_tokens is the variant's prompt minus the same wrapper, so text and images are compared with identical overhead",
  "view_B_note": "first_turn_prompt_tokens is the exact message list the harness sent on turn one, including Apple's tool-calling system prompt",
  "view_C_note": "second_turn_prompt_tokens is the exact message list the harness sent on turn two: the recorded first response and the tool response with that page's real text. The harness re-sends the whole conversation each turn, so this is the context at the start of generation on turn two.",
  "revision": "9e3d1de1d65ed7a301cdeed4b58e70a461a02463",
  "seed": 20260924
}