{
  "spec_version": "0.7.0-draft.5",
  "slug": "microban",
  "as_of": "2026-10-04",
  "region": "US",
  "currency": "USD",
  "note": "Dated observations, not checkout quotes. Confirmed broken or unavailable listings remain in history but do not count. No referral links. Shipping and tax are separate.",
  "configurations": [
    {
      "configuration_id": "microban-standard",
      "label": "Microban (19 x XL330-M288-T, Pi Zero 2 W, RPI Robot HAT)",
      "first_task": "Configure the motors and run the robot software on the Pi (deployment guide)",
      "upstream_bom_url": "https://github.com/Rhoban/microban/blob/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2/docs/bom.md",
      "upstream_revision": "0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2",
      "bom_coverage": {
        "status": "partial",
        "source_ids": [
          "S005"
        ],
        "notes": "BOM reconciled line by line, printed parts mapped and sliced. Not complete: wiring and connectors for the battery circuit are not itemised, and several components have no identified US offer."
      },
      "labor_hours": {
        "value": null,
        "status": "unknown"
      },
      "ownership_scenarios": [
        {
          "scenario_id": "owns-computer-and-printer",
          "owned_requirements": [
            {
              "requirement_id": "host-computer",
              "quantity": 1,
              "basis": "documented_assumption",
              "note": "Common case: reader already has a suitable computer."
            },
            {
              "requirement_id": "printer",
              "quantity": 1,
              "basis": "documented_assumption",
              "note": "Common case: reader already has a 3D printer."
            }
          ]
        }
      ],
      "shipping_estimates": [],
      "lines": [
        {
          "line_id": "battery-holder",
          "part_id": "battery-holder-2x18650",
          "quantity": 1,
          "layer": "power_and_cabling",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": ""
        },
        {
          "line_id": "bms",
          "part_id": "bms-2s-18650",
          "quantity": 1,
          "layer": "power_and_cabling",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": ""
        },
        {
          "line_id": "switch",
          "part_id": "power-switch-microban",
          "quantity": 1,
          "layer": "power_and_cabling",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": ""
        },
        {
          "line_id": "charger",
          "part_id": "charger-module-2s-usb-c",
          "quantity": 1,
          "layer": "power_and_cabling",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": "One of the 2-pack."
        },
        {
          "line_id": "cells",
          "part_id": "li-ion-18650-sony-vtc6",
          "quantity": 2,
          "layer": "power_and_cabling",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": ""
        },
        {
          "line_id": "pi",
          "part_id": "raspberry-pi-zero-2-w",
          "quantity": 1,
          "layer": "purchased_parts",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": ""
        },
        {
          "line_id": "robot-hat",
          "part_id": "rpi-robot-hat-pcba",
          "quantity": 1,
          "layer": "fabricated_parts",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": "Must be manufactured from the open design files."
        },
        {
          "line_id": "microsd",
          "part_id": "microsd-32gb-a1",
          "quantity": 1,
          "layer": "purchased_parts",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": ""
        },
        {
          "line_id": "servos",
          "part_id": "dynamixel-xl330-m288-t",
          "quantity": 19,
          "layer": "purchased_parts",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": "BOM lists USD 23.90 each at the ROBOTIS global store; US price from ROBOTIS America."
        },
        {
          "line_id": "screws-m2x6",
          "part_id": "screw-m2x6-stp39",
          "quantity": 10,
          "layer": "purchased_parts",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": "The 19 servo kits include 114 M2x6 screws; assembly needs 124."
        },
        {
          "line_id": "screws-m2-5x6",
          "part_id": "screw-m2-5x6",
          "quantity": 18,
          "layer": "purchased_parts",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": ""
        },
        {
          "line_id": "shims-pom",
          "part_id": "shim-pom-20x30x1",
          "quantity": 4,
          "layer": "purchased_parts",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": ""
        },
        {
          "line_id": "shims-steel",
          "part_id": "shim-steel-25x30x0-3",
          "quantity": 8,
          "layer": "purchased_parts",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": ""
        },
        {
          "line_id": "u2d2",
          "part_id": "robotis-u2d2",
          "quantity": 1,
          "layer": "tools",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": "Configuration tool for the DYNAMIXEL motors."
        },
        {
          "line_id": "u2d2-hub",
          "part_id": "robotis-u2d2-power-hub",
          "quantity": 1,
          "layer": "tools",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": "Configuration tool."
        },
        {
          "line_id": "config-psu",
          "part_id": "psu-5v-2a-barrel",
          "quantity": 1,
          "layer": "tools",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": "BOM: 5 V DC supply for the power hub (AliExpress link); a US 5 V 2 A barrel adapter is used."
        },
        {
          "line_id": "host-computer",
          "part_id": "host-computer-lerobot",
          "quantity": 1,
          "layer": "host_compute",
          "required": true,
          "source_ids": [
            "S007"
          ],
          "substitutes": [],
          "notes": "Computer used to configure motors and deploy software."
        },
        {
          "line_id": "printer",
          "part_id": "fdm-3d-printer",
          "quantity": 1,
          "layer": "tools",
          "required": true,
          "source_ids": [
            "S010"
          ],
          "substitutes": [],
          "notes": "Required for the self-print route."
        }
      ],
      "printed": {
        "groups": [
          {
            "requirement_id": "printed-parts",
            "required": true,
            "source_ids": [
              "S010"
            ],
            "route": "self_print",
            "material_part_id": "pla-filament",
            "mass_low_g": 288.9,
            "mass_high_g": 430.4,
            "method": "Slicer: PrusaSlicer-2.9.6 based on Slic3r (with GUI support); each listed file sliced separately (retained source evidence): low = no supports, 2 perimeters; high = supports everywhere, 3 perimeters.",
            "assumptions": "Printing guide settings: PLA, 0.12 mm layers, 15% infill. Its recommended orientations are given only as images, so files are sliced as modelled and supports bracket the range. 0.4 mm nozzle assumed; no skirt or brim; one successful print, no reprint allowance. Idle horns and caps can alternatively be bought from ROBOTIS; printing is used here.",
            "estimate_complete": true,
            "parts": [
              {
                "archive_url": "https://github.com/Rhoban/microban/archive/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2.tar.gz",
                "path": "cad/stl/foot.stl",
                "sha256": "217858703bf52520f6a1023ce27c67a65509b986d806b8f5a39419edfc61c5b8",
                "quantity": 2,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/Rhoban/microban/archive/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2.tar.gz",
                "path": "cad/stl/tibia_left.stl",
                "sha256": "fc69c3022572d6c97b895646664b74884a8c7323a9b7c75760489e9ba0fa2781",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/Rhoban/microban/archive/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2.tar.gz",
                "path": "cad/stl/tibia_right.stl",
                "sha256": "3c128f2429582f20c23c6cbf8ef2c2312f0644b01c16401cb97ea02151a60f43",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/Rhoban/microban/archive/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2.tar.gz",
                "path": "cad/stl/femur_left.stl",
                "sha256": "1142dbb02d702d4b6f8080df04ed221ef5a500c54bf3c7ea5cdb4708ef6bfba0",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/Rhoban/microban/archive/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2.tar.gz",
                "path": "cad/stl/femur_right.stl",
                "sha256": "dbcfd269d88a8b08f1c8f77321594d7a5db816e0a0d74fb23a53ee4d44cb8e03",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/Rhoban/microban/archive/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2.tar.gz",
                "path": "cad/stl/hip.stl",
                "sha256": "058b46ed73005ebe61982fc08a4771eef46398b3a5edf57c3abaf424eacad25a",
                "quantity": 2,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/Rhoban/microban/archive/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2.tar.gz",
                "path": "cad/stl/ankle_dbl_block.stl",
                "sha256": "2d54cb42e2938a58825a4de4e674f8f2c85d7b192a810c2f812954ca7635edf2",
                "quantity": 2,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/Rhoban/microban/archive/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2.tar.gz",
                "path": "cad/stl/hip_dbl_block_left.stl",
                "sha256": "91afa705cfeb261a2eb578c4b20cdd34ca05013d39046e66dd41206e541f42fb",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/Rhoban/microban/archive/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2.tar.gz",
                "path": "cad/stl/hip_dbl_block_right.stl",
                "sha256": "b78f6644b02585f4669125499f068c35a7c535ecf0b84457cf786be160e51f94",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/Rhoban/microban/archive/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2.tar.gz",
                "path": "cad/stl/spacer.stl",
                "sha256": "628a0b053df2f160282ca0827dd4a88ba69e2eb3e75078a6d08f5ed74a23e342",
                "quantity": 4,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/Rhoban/microban/archive/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2.tar.gz",
                "path": "cad/stl/pelvis.stl",
                "sha256": "12cd936a5418299b4d628fbc74aa50f147db2ccf6a794849b9d13c777f605764",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/Rhoban/microban/archive/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2.tar.gz",
                "path": "cad/stl/chest.stl",
                "sha256": "849f847aa4875acf03cf9baac28cd774be1a0c0017ea4f58a2f1127ce4054062",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/Rhoban/microban/archive/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2.tar.gz",
                "path": "cad/stl/trunk_top.stl",
                "sha256": "e43791f6738782c0e1cc570adae835c028fd40befaa66f52383dc418cb1fefa7",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/Rhoban/microban/archive/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2.tar.gz",
                "path": "cad/stl/head.stl",
                "sha256": "2b73428178f8155572faf0d724893fb4a7eee9e4904aacb5428de7a19446ef12",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/Rhoban/microban/archive/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2.tar.gz",
                "path": "cad/stl/arm_bearing_support.stl",
                "sha256": "3431863365f8b334b4106258b84da38b05fc6cc2acf9823786b95d04f4a517ec",
                "quantity": 2,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/Rhoban/microban/archive/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2.tar.gz",
                "path": "cad/stl/shoulder.stl",
                "sha256": "0f784b86c0a52a75e65a7cfe44b0d48b79e63e0de170f2142beba76727caf4a5",
                "quantity": 2,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/Rhoban/microban/archive/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2.tar.gz",
                "path": "cad/stl/humerus.stl",
                "sha256": "5b3f72806dc1554aab46cc96db934f7ec931b65d3e273aed3922b5c73e832033",
                "quantity": 2,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/Rhoban/microban/archive/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2.tar.gz",
                "path": "cad/stl/radius.stl",
                "sha256": "c7ad251632ee19d885f2318b5fd12d73bd52d865dc1d3fdc3553541c30657d75",
                "quantity": 2,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/Rhoban/microban/archive/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2.tar.gz",
                "path": "cad/stl/idle_horn.stl",
                "sha256": "809f7f5cff140c2887cdde203b6602a3973adcaf22f03c83537c6cd58a21806f",
                "quantity": 4,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/Rhoban/microban/archive/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2.tar.gz",
                "path": "cad/stl/idle_cap.stl",
                "sha256": "0a2ae16f7600565d2360460a3cd58616a21f3e3c813bfde9870a8f52771a9199",
                "quantity": 6,
                "included": true,
                "role": "kit"
              }
            ]
          }
        ]
      }
    }
  ],
  "rollups": [
    {
      "configuration_id": "microban-standard",
      "region": "US",
      "currency": "USD",
      "scenario_id": "baseline",
      "layers": {
        "purchased_parts": {
          "low": 546.31,
          "high": 546.31,
          "required_groups": 7,
          "priced_groups": 2,
          "unpriced": [
            "pi",
            "screws-m2-5x6",
            "screws-m2x6",
            "shims-pom",
            "shims-steel"
          ],
          "oldest_price_date": "2026-10-04",
          "newest_price_date": "2026-10-04"
        },
        "printed_parts": {
          "low": 14.99,
          "high": 14.99,
          "required_groups": 1,
          "priced_groups": 1,
          "unpriced": [],
          "oldest_price_date": "2026-10-04",
          "newest_price_date": "2026-10-04",
          "consumption_low": 4.33,
          "consumption_high": 6.45
        },
        "fabricated_parts": {
          "low": 0,
          "high": 0,
          "required_groups": 1,
          "priced_groups": 0,
          "unpriced": [
            "robot-hat"
          ],
          "oldest_price_date": null,
          "newest_price_date": null
        },
        "power_and_cabling": {
          "low": 23.97,
          "high": 23.97,
          "required_groups": 5,
          "priced_groups": 2,
          "unpriced": [
            "battery-holder",
            "bms",
            "switch"
          ],
          "oldest_price_date": "2026-10-04",
          "newest_price_date": "2026-10-04"
        },
        "host_compute": {
          "low": 0,
          "high": 0,
          "required_groups": 1,
          "priced_groups": 0,
          "unpriced": [
            "host-computer"
          ],
          "oldest_price_date": null,
          "newest_price_date": null
        },
        "sensors_camera": {
          "low": 0,
          "high": 0,
          "required_groups": 0,
          "priced_groups": 0,
          "unpriced": [],
          "oldest_price_date": null,
          "newest_price_date": null
        },
        "tools": {
          "low": 65.16,
          "high": 65.16,
          "required_groups": 4,
          "priced_groups": 3,
          "unpriced": [
            "printer"
          ],
          "oldest_price_date": "2026-10-04",
          "newest_price_date": "2026-10-04"
        },
        "shipping_tax": {
          "low": 0,
          "high": 0,
          "required_groups": 1,
          "priced_groups": 0,
          "unpriced": [
            "shipping_tax"
          ],
          "oldest_price_date": null,
          "newest_price_date": null
        }
      },
      "labor_hours": {
        "value": null,
        "status": "unknown"
      },
      "bom_coverage": "partial",
      "pricing_coverage": {
        "required_groups": 19,
        "priced_groups": 8,
        "ratio": 0.4211,
        "unpriced": [
          "battery-holder",
          "bms",
          "host-computer",
          "pi",
          "printer",
          "robot-hat",
          "screws-m2-5x6",
          "screws-m2x6",
          "shims-pom",
          "shims-steel",
          "switch"
        ]
      },
      "setup_readiness": "incomplete",
      "parts_total": {
        "low": 585.27,
        "high": null,
        "complete": false,
        "gaps": [
          "battery-holder",
          "bms",
          "pi",
          "robot-hat",
          "screws-m2-5x6",
          "screws-m2x6",
          "shims-pom",
          "shims-steel",
          "switch"
        ]
      },
      "required_total": {
        "low": 650.43,
        "high": null,
        "complete": false,
        "gaps": [
          "battery-holder",
          "bms",
          "host-computer",
          "pi",
          "printer",
          "robot-hat",
          "screws-m2-5x6",
          "screws-m2x6",
          "shims-pom",
          "shims-steel",
          "shipping_tax",
          "switch"
        ]
      },
      "price_dates": {
        "oldest": "2026-10-04",
        "newest": "2026-10-04",
        "upstream_reported_groups": []
      },
      "selected_observations": {
        "low": [
          {
            "group": "material:pla-filament",
            "part_id": "pla-filament",
            "offer_id": "amazon-b0cs2zsz6f",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 14.99,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:charger-module-2s-usb-c",
            "part_id": "charger-module-2s-usb-c",
            "offer_id": "amazon-b0bwtk7svn",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 9.99,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:dynamixel-xl330-m288-t",
            "part_id": "dynamixel-xl330-m288-t",
            "offer_id": "robotis-dynamixel-xl330-m288-t",
            "observation_id": "robotis-2026-10-04",
            "packs": 19,
            "expenditure": 522.31,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:li-ion-18650-sony-vtc6",
            "part_id": "li-ion-18650-sony-vtc6",
            "offer_id": "18650batterystore-sony-vtc6",
            "observation_id": "store-2026-10-04",
            "packs": 2,
            "expenditure": 13.98,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:microsd-32gb-a1",
            "part_id": "microsd-32gb-a1",
            "offer_id": "amazon-b08gy9nyrm",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 24,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:psu-5v-2a-barrel",
            "part_id": "psu-5v-2a-barrel",
            "offer_id": "amazon-b0bzs779mc",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 6.39,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:robotis-u2d2",
            "part_id": "robotis-u2d2",
            "offer_id": "robotis-u2d2",
            "observation_id": "store-2026-10-04",
            "packs": 1,
            "expenditure": 36.92,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:robotis-u2d2-power-hub",
            "part_id": "robotis-u2d2-power-hub",
            "offer_id": "robotis-u2d2-power-hub",
            "observation_id": "store-2026-10-04",
            "packs": 1,
            "expenditure": 21.85,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          }
        ],
        "high": [
          {
            "group": "material:pla-filament",
            "part_id": "pla-filament",
            "offer_id": "amazon-b0cs2zsz6f",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 14.99,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:charger-module-2s-usb-c",
            "part_id": "charger-module-2s-usb-c",
            "offer_id": "amazon-b0bwtk7svn",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 9.99,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:dynamixel-xl330-m288-t",
            "part_id": "dynamixel-xl330-m288-t",
            "offer_id": "robotis-dynamixel-xl330-m288-t",
            "observation_id": "robotis-2026-10-04",
            "packs": 19,
            "expenditure": 522.31,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:li-ion-18650-sony-vtc6",
            "part_id": "li-ion-18650-sony-vtc6",
            "offer_id": "18650batterystore-sony-vtc6",
            "observation_id": "store-2026-10-04",
            "packs": 2,
            "expenditure": 13.98,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:microsd-32gb-a1",
            "part_id": "microsd-32gb-a1",
            "offer_id": "amazon-b08gy9nyrm",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 24,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:psu-5v-2a-barrel",
            "part_id": "psu-5v-2a-barrel",
            "offer_id": "amazon-b0bzs779mc",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 6.39,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:robotis-u2d2",
            "part_id": "robotis-u2d2",
            "offer_id": "robotis-u2d2",
            "observation_id": "store-2026-10-04",
            "packs": 1,
            "expenditure": 36.92,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:robotis-u2d2-power-hub",
            "part_id": "robotis-u2d2-power-hub",
            "offer_id": "robotis-u2d2-power-hub",
            "observation_id": "store-2026-10-04",
            "packs": 1,
            "expenditure": 21.85,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          }
        ]
      },
      "as_of_date": "2026-10-04",
      "computed_at": "2026-10-04",
      "tool_version": "0.7.0-draft.5",
      "tool_hash": "b3a901ff5bbade76fe67cecf535fd822a7fce97a6b33b761ac6a8bfc1edffc23"
    },
    {
      "configuration_id": "microban-standard",
      "region": "US",
      "currency": "USD",
      "scenario_id": "owns-computer-and-printer",
      "layers": {
        "purchased_parts": {
          "low": 546.31,
          "high": 546.31,
          "required_groups": 7,
          "priced_groups": 2,
          "unpriced": [
            "pi",
            "screws-m2-5x6",
            "screws-m2x6",
            "shims-pom",
            "shims-steel"
          ],
          "oldest_price_date": "2026-10-04",
          "newest_price_date": "2026-10-04"
        },
        "printed_parts": {
          "low": 14.99,
          "high": 14.99,
          "required_groups": 1,
          "priced_groups": 1,
          "unpriced": [],
          "oldest_price_date": "2026-10-04",
          "newest_price_date": "2026-10-04",
          "consumption_low": 4.33,
          "consumption_high": 6.45
        },
        "fabricated_parts": {
          "low": 0,
          "high": 0,
          "required_groups": 1,
          "priced_groups": 0,
          "unpriced": [
            "robot-hat"
          ],
          "oldest_price_date": null,
          "newest_price_date": null
        },
        "power_and_cabling": {
          "low": 23.97,
          "high": 23.97,
          "required_groups": 5,
          "priced_groups": 2,
          "unpriced": [
            "battery-holder",
            "bms",
            "switch"
          ],
          "oldest_price_date": "2026-10-04",
          "newest_price_date": "2026-10-04"
        },
        "host_compute": {
          "low": 0,
          "high": 0,
          "required_groups": 1,
          "priced_groups": 1,
          "unpriced": [],
          "oldest_price_date": null,
          "newest_price_date": null
        },
        "sensors_camera": {
          "low": 0,
          "high": 0,
          "required_groups": 0,
          "priced_groups": 0,
          "unpriced": [],
          "oldest_price_date": null,
          "newest_price_date": null
        },
        "tools": {
          "low": 65.16,
          "high": 65.16,
          "required_groups": 4,
          "priced_groups": 4,
          "unpriced": [],
          "oldest_price_date": "2026-10-04",
          "newest_price_date": "2026-10-04"
        },
        "shipping_tax": {
          "low": 0,
          "high": 0,
          "required_groups": 1,
          "priced_groups": 0,
          "unpriced": [
            "shipping_tax"
          ],
          "oldest_price_date": null,
          "newest_price_date": null
        }
      },
      "labor_hours": {
        "value": null,
        "status": "unknown"
      },
      "bom_coverage": "partial",
      "pricing_coverage": {
        "required_groups": 17,
        "priced_groups": 8,
        "ratio": 0.4706,
        "unpriced": [
          "battery-holder",
          "bms",
          "pi",
          "robot-hat",
          "screws-m2-5x6",
          "screws-m2x6",
          "shims-pom",
          "shims-steel",
          "switch"
        ]
      },
      "setup_readiness": "incomplete",
      "parts_total": {
        "low": 585.27,
        "high": null,
        "complete": false,
        "gaps": [
          "battery-holder",
          "bms",
          "pi",
          "robot-hat",
          "screws-m2-5x6",
          "screws-m2x6",
          "shims-pom",
          "shims-steel",
          "switch"
        ]
      },
      "required_total": {
        "low": 650.43,
        "high": null,
        "complete": false,
        "gaps": [
          "battery-holder",
          "bms",
          "pi",
          "robot-hat",
          "screws-m2-5x6",
          "screws-m2x6",
          "shims-pom",
          "shims-steel",
          "shipping_tax",
          "switch"
        ]
      },
      "price_dates": {
        "oldest": "2026-10-04",
        "newest": "2026-10-04",
        "upstream_reported_groups": []
      },
      "selected_observations": {
        "low": [
          {
            "group": "material:pla-filament",
            "part_id": "pla-filament",
            "offer_id": "amazon-b0cs2zsz6f",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 14.99,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:charger-module-2s-usb-c",
            "part_id": "charger-module-2s-usb-c",
            "offer_id": "amazon-b0bwtk7svn",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 9.99,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:dynamixel-xl330-m288-t",
            "part_id": "dynamixel-xl330-m288-t",
            "offer_id": "robotis-dynamixel-xl330-m288-t",
            "observation_id": "robotis-2026-10-04",
            "packs": 19,
            "expenditure": 522.31,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:li-ion-18650-sony-vtc6",
            "part_id": "li-ion-18650-sony-vtc6",
            "offer_id": "18650batterystore-sony-vtc6",
            "observation_id": "store-2026-10-04",
            "packs": 2,
            "expenditure": 13.98,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:microsd-32gb-a1",
            "part_id": "microsd-32gb-a1",
            "offer_id": "amazon-b08gy9nyrm",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 24,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:psu-5v-2a-barrel",
            "part_id": "psu-5v-2a-barrel",
            "offer_id": "amazon-b0bzs779mc",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 6.39,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:robotis-u2d2",
            "part_id": "robotis-u2d2",
            "offer_id": "robotis-u2d2",
            "observation_id": "store-2026-10-04",
            "packs": 1,
            "expenditure": 36.92,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:robotis-u2d2-power-hub",
            "part_id": "robotis-u2d2-power-hub",
            "offer_id": "robotis-u2d2-power-hub",
            "observation_id": "store-2026-10-04",
            "packs": 1,
            "expenditure": 21.85,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          }
        ],
        "high": [
          {
            "group": "material:pla-filament",
            "part_id": "pla-filament",
            "offer_id": "amazon-b0cs2zsz6f",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 14.99,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:charger-module-2s-usb-c",
            "part_id": "charger-module-2s-usb-c",
            "offer_id": "amazon-b0bwtk7svn",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 9.99,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:dynamixel-xl330-m288-t",
            "part_id": "dynamixel-xl330-m288-t",
            "offer_id": "robotis-dynamixel-xl330-m288-t",
            "observation_id": "robotis-2026-10-04",
            "packs": 19,
            "expenditure": 522.31,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:li-ion-18650-sony-vtc6",
            "part_id": "li-ion-18650-sony-vtc6",
            "offer_id": "18650batterystore-sony-vtc6",
            "observation_id": "store-2026-10-04",
            "packs": 2,
            "expenditure": 13.98,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:microsd-32gb-a1",
            "part_id": "microsd-32gb-a1",
            "offer_id": "amazon-b08gy9nyrm",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 24,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:psu-5v-2a-barrel",
            "part_id": "psu-5v-2a-barrel",
            "offer_id": "amazon-b0bzs779mc",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 6.39,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:robotis-u2d2",
            "part_id": "robotis-u2d2",
            "offer_id": "robotis-u2d2",
            "observation_id": "store-2026-10-04",
            "packs": 1,
            "expenditure": 36.92,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:robotis-u2d2-power-hub",
            "part_id": "robotis-u2d2-power-hub",
            "offer_id": "robotis-u2d2-power-hub",
            "observation_id": "store-2026-10-04",
            "packs": 1,
            "expenditure": 21.85,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          }
        ]
      },
      "as_of_date": "2026-10-04",
      "computed_at": "2026-10-04",
      "tool_version": "0.7.0-draft.5",
      "tool_hash": "b3a901ff5bbade76fe67cecf535fd822a7fce97a6b33b761ac6a8bfc1edffc23"
    }
  ],
  "parts": {
    "battery-holder-2x18650": {
      "name": "2 x 18650 battery holder",
      "unit": "each",
      "spec_summary": "Holder for two 18650 cells with leads.",
      "manufacturer": null,
      "mpn": null,
      "identity_sources": [
        "S001"
      ],
      "substitutes": [],
      "notes": "BOM links amazon.fr B08YDTSML8 (~USD 5); that ASIN is not on amazon.com. No US offer recorded.",
      "sources": [
        {
          "id": "S001",
          "type": "upstream",
          "title": "Microban bill of materials (docs/bom.md)",
          "url": "https://github.com/Rhoban/microban/blob/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2/docs/bom.md",
          "publisher": "Rhoban",
          "locator": "Robot Components; Configuration Tools",
          "finding": "Lists components, quantities, approximate prices and (mostly European) purchase links.",
          "accessed_at": "2026-10-04"
        }
      ],
      "offers": []
    },
    "bms-2s-18650": {
      "name": "2S battery management board for 18650 cells",
      "unit": "each",
      "spec_summary": "Protection/BMS board for two 18650 cells in series.",
      "manufacturer": null,
      "mpn": null,
      "identity_sources": [
        "S001"
      ],
      "substitutes": [],
      "notes": "BOM links amazon.fr B0GJLGG7MM (~USD 10); not on amazon.com. No US offer recorded.",
      "sources": [
        {
          "id": "S001",
          "type": "upstream",
          "title": "Microban bill of materials (docs/bom.md)",
          "url": "https://github.com/Rhoban/microban/blob/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2/docs/bom.md",
          "publisher": "Rhoban",
          "locator": "Robot Components; Configuration Tools",
          "finding": "Lists components, quantities, approximate prices and (mostly European) purchase links.",
          "accessed_at": "2026-10-04"
        }
      ],
      "offers": []
    },
    "charger-module-2s-usb-c": {
      "name": "2S Li-ion USB-C charge module (8.4 V)",
      "unit": "each",
      "spec_summary": "USB-C input 2S lithium battery charge/boost module, 8.4 V output; sold as a 2-pack.",
      "manufacturer": null,
      "mpn": null,
      "identity_sources": [
        "S001",
        "S002"
      ],
      "substitutes": [],
      "notes": "Same ASIN (B0BWTK7SVN) as the BOM's amazon.fr link.",
      "sources": [
        {
          "id": "S001",
          "type": "upstream",
          "title": "Microban bill of materials (docs/bom.md)",
          "url": "https://github.com/Rhoban/microban/blob/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2/docs/bom.md",
          "publisher": "Rhoban",
          "locator": "Robot Components; Configuration Tools",
          "finding": "Lists components, quantities, approximate prices and (mostly European) purchase links.",
          "accessed_at": "2026-10-04"
        },
        {
          "id": "S002",
          "type": "vendor",
          "title": "Adeept Type-C USB-C 2S 2A 18650 21700 3.7V Lithium Battery Charge Module Charging Board Step-Up Boost Li-Po Polymer USB C to 8.4V - 2PCS",
          "url": "https://www.amazon.com/dp/B0BWTK7SVN",
          "publisher": "Amazon.com",
          "locator": "Buy box captured in the built-in browser for \"charger-2s-adeept\"",
          "finding": "Current price, availability and seller as displayed.",
          "accessed_at": "2026-10-04",
          "attribution_note": "Captured in the built-in browser; scripted fetches received CAPTCHA pages, which were not bypassed."
        }
      ],
      "offers": [
        {
          "offer_id": "amazon-b0bwtk7svn",
          "supplier": "Adeept Official",
          "url": "https://www.amazon.com/dp/B0BWTK7SVN",
          "region": "US",
          "observations": [
            {
              "observation_id": "amazon-2026-10-04",
              "currency": "USD",
              "pack_price": 9.99,
              "pack_qty": 2,
              "moq_packs": 1,
              "stock": "in_stock",
              "source_checked_at": "2026-10-04",
              "price_observed_at": "2026-10-04",
              "stock_observed_at": "2026-10-04",
              "check_method": "manual",
              "link_status": "working",
              "source_ids": [
                "S002"
              ],
              "shipping_note": "Amazon US listing; shipping and sales tax depend on address and membership, not established.",
              "notes": "Buy box read on 2026-10-04; seller: Adeept Official; variants: 2S-2A-8.4V_2PCS. Same ASIN as the BOM's amazon.fr link."
            }
          ]
        }
      ]
    },
    "dynamixel-xl330-m288-t": {
      "name": "DYNAMIXEL XL330-M288-T",
      "unit": "each",
      "spec_summary": "ROBOTIS DYNAMIXEL XL330-M288-T TTL servo; package includes cable and horn/frame bolts.",
      "manufacturer": "ROBOTIS",
      "mpn": "XL330-M288-T",
      "identity_sources": [
        "S001",
        "S003"
      ],
      "substitutes": [],
      "notes": "",
      "sources": [
        {
          "id": "S001",
          "type": "upstream",
          "title": "Koch low_cost_robot README bill of materials",
          "url": "https://github.com/AlexanderKoch-Koch/low_cost_robot/blob/0602b0c1e6a67d8f6ab96f81d1378639018d98af/README.md",
          "publisher": "Alexander Koch",
          "locator": "Follower Arm / Leader Arm: Required Materials",
          "finding": "Lists parts, costs and purchase links for the follower and leader arms.",
          "accessed_at": "2026-10-04"
        },
        {
          "id": "S002",
          "type": "upstream",
          "title": "Koch README commit history and price presence scan",
          "url": "https://github.com/AlexanderKoch-Koch/low_cost_robot/commits/main/README.md",
          "publisher": "Alexander Koch",
          "locator": "Commits touching README.md; presence of the cost figures at each revision",
          "finding": "The cost figures are present in every revision from 265535c (2024-04-07) to the newest.",
          "accessed_at": "2026-10-04",
          "attribution_note": "Scan produced with the GitHub contents API on 2026-10-04."
        },
        {
          "id": "S003",
          "type": "vendor",
          "title": "DYNAMIXEL XL330-M288-T",
          "url": "https://www.robotis.us/dynamixel-xl330-m288-t/",
          "publisher": "ROBOTIS AMERICA",
          "locator": "Product structured data (schema.org Offer) and package contents",
          "finding": "Price, availability and package contents in the product page.",
          "accessed_at": "2026-10-04"
        }
      ],
      "offers": [
        {
          "offer_id": "upstream-koch-readme",
          "supplier": "ROBOTIS America (linked from Koch README)",
          "url": "https://www.robotis.us/dynamixel-xl330-m288-t/",
          "region": "US",
          "observations": [
            {
              "observation_id": "koch-readme-0602b0c",
              "currency": "USD",
              "pack_price": 24,
              "pack_qty": 1,
              "moq_packs": 1,
              "stock": "unknown",
              "source_checked_at": "2026-10-04",
              "price_observed_at": "2024-04-07",
              "price_date_basis": "earliest_unbroken_revision",
              "stock_observed_at": null,
              "check_method": "upstream_reported",
              "link_status": "unknown",
              "source_ids": [
                "S001",
                "S002"
              ],
              "shipping_note": "Upstream table states item prices only; delivery and tax not stated.",
              "notes": "Koch README \"Required Materials\" cost column at pinned revision 0602b0c. The figures ($258 and $183 totals; $100 for 2 XL430, $96 for 4 XL330-M288, $144 for 6 XL330-M077) are present in every README revision from 265535c (2024-04-07) to the newest (retained source evidence), so the price is dated to that earliest revision. Per-unit figures divide the listed line cost by its quantity."
            }
          ]
        },
        {
          "offer_id": "robotis-dynamixel-xl330-m288-t",
          "supplier": "ROBOTIS America",
          "url": "https://www.robotis.us/dynamixel-xl330-m288-t/",
          "region": "US",
          "observations": [
            {
              "observation_id": "robotis-2026-10-04",
              "currency": "USD",
              "pack_price": 27.49,
              "pack_qty": 1,
              "moq_packs": 1,
              "stock": "in_stock",
              "source_checked_at": "2026-10-04",
              "price_observed_at": "2026-10-04",
              "stock_observed_at": "2026-10-04",
              "check_method": "manual",
              "link_status": "working",
              "source_ids": [
                "S003"
              ],
              "shipping_note": "ROBOTIS America US store; shipping calculated at checkout, not established.",
              "notes": "schema.org Offer price 27.49 USD, availability http://schema.org/InStock."
            }
          ]
        }
      ]
    },
    "fdm-3d-printer": {
      "name": "FDM 3D printer (220 x 220 mm bed or larger)",
      "unit": "each",
      "spec_summary": "FDM printer with at least a 220 x 220 mm bed (upstream also lists 205 x 250 mm beds).",
      "manufacturer": null,
      "mpn": null,
      "identity_sources": [
        "S001"
      ],
      "substitutes": [],
      "notes": "Required only for the self-print route; reference option not yet chosen.",
      "sources": [
        {
          "id": "S001",
          "type": "upstream",
          "title": "SO-ARM100 README bill of materials",
          "url": "https://github.com/TheRobotStudio/SO-ARM100/blob/5f6d2b876a53a4872e405b991dd925556c9e38a4/README.md",
          "publisher": "TheRobotStudio",
          "locator": "Sourcing Parts: Parts for One Follower Arm; Parts For Two Arms",
          "finding": "Lists part names, amounts and US unit costs with purchase links.",
          "accessed_at": "2026-10-04"
        }
      ],
      "offers": []
    },
    "host-computer-lerobot": {
      "name": "Host computer able to run LeRobot",
      "unit": "each",
      "spec_summary": "Computer with USB that runs the LeRobot environment; no specific model selected.",
      "manufacturer": null,
      "mpn": null,
      "identity_sources": [
        "S001"
      ],
      "substitutes": [],
      "notes": "Reference option not yet chosen; required unless already owned.",
      "sources": [
        {
          "id": "S001",
          "type": "upstream",
          "title": "SO-ARM100 README bill of materials",
          "url": "https://github.com/TheRobotStudio/SO-ARM100/blob/5f6d2b876a53a4872e405b991dd925556c9e38a4/README.md",
          "publisher": "TheRobotStudio",
          "locator": "Sourcing Parts: Parts for One Follower Arm; Parts For Two Arms",
          "finding": "Lists part names, amounts and US unit costs with purchase links.",
          "accessed_at": "2026-10-04"
        }
      ],
      "offers": []
    },
    "li-ion-18650-sony-vtc6": {
      "name": "Sony/Murata VTC6 18650 cell, 3000 mAh",
      "unit": "each",
      "spec_summary": "18650 lithium-ion cell, 3.7 V nominal, 3000 mAh (Sony/Murata US18650VTC6).",
      "manufacturer": "Sony/Murata",
      "mpn": "US18650VTC6",
      "identity_sources": [
        "S001",
        "S002"
      ],
      "substitutes": [],
      "notes": "The BOM recommends but does not require VTC6.",
      "sources": [
        {
          "id": "S001",
          "type": "upstream",
          "title": "Microban bill of materials (docs/bom.md)",
          "url": "https://github.com/Rhoban/microban/blob/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2/docs/bom.md",
          "publisher": "Rhoban",
          "locator": "Robot Components; Configuration Tools",
          "finding": "Lists components, quantities, approximate prices and (mostly European) purchase links.",
          "accessed_at": "2026-10-04"
        },
        {
          "id": "S002",
          "type": "vendor",
          "title": "Sony / Murata VTC6 18650 3000mAh 15A Battery",
          "url": "https://www.18650batterystore.com/products/sony-vtc6",
          "publisher": "18650 Battery Store",
          "locator": "Product structured data (schema.org Offer)",
          "finding": "Price and availability in the product page structured data.",
          "accessed_at": "2026-10-04"
        }
      ],
      "offers": [
        {
          "offer_id": "18650batterystore-sony-vtc6",
          "supplier": "18650 Battery Store",
          "url": "https://www.18650batterystore.com/products/sony-vtc6",
          "region": "US",
          "observations": [
            {
              "observation_id": "store-2026-10-04",
              "currency": "USD",
              "pack_price": 6.99,
              "pack_qty": 1,
              "moq_packs": 1,
              "stock": "in_stock",
              "source_checked_at": "2026-10-04",
              "price_observed_at": "2026-10-04",
              "stock_observed_at": "2026-10-04",
              "check_method": "manual",
              "link_status": "working",
              "source_ids": [
                "S002"
              ],
              "shipping_note": "Lithium-ion cells; shipping method and cost calculated at checkout, not established.",
              "notes": "schema.org Offer price 6.99 USD, availability http://schema.org/InStock."
            }
          ]
        }
      ]
    },
    "microsd-32gb-a1": {
      "name": "microSD card, 32 GB (SanDisk Ultra)",
      "unit": "each",
      "spec_summary": "SanDisk Ultra 32 GB microSDHC A1 card.",
      "manufacturer": null,
      "mpn": null,
      "identity_sources": [
        "S001",
        "S002"
      ],
      "substitutes": [],
      "notes": "Same ASIN (B08GY9NYRM) as the BOM's amazon.fr link; the BOM asks for 16 GB or more.",
      "sources": [
        {
          "id": "S001",
          "type": "upstream",
          "title": "Microban bill of materials (docs/bom.md)",
          "url": "https://github.com/Rhoban/microban/blob/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2/docs/bom.md",
          "publisher": "Rhoban",
          "locator": "Robot Components; Configuration Tools",
          "finding": "Lists components, quantities, approximate prices and (mostly European) purchase links.",
          "accessed_at": "2026-10-04"
        },
        {
          "id": "S002",
          "type": "vendor",
          "title": "SANDISK 32GB Ultra microSDHC UHS-I Memory Card with Adapter - 120MB/s, C10, U1, Full HD, A1, Micro SD Card - SDSQUA4-032G-GN6MA",
          "url": "https://www.amazon.com/dp/B08GY9NYRM",
          "publisher": "Amazon.com",
          "locator": "Buy box captured in the built-in browser for \"microsd-sandisk-ultra-32gb\"",
          "finding": "Current price, availability and seller as displayed.",
          "accessed_at": "2026-10-04",
          "attribution_note": "Captured in the built-in browser; scripted fetches received CAPTCHA pages, which were not bypassed."
        }
      ],
      "offers": [
        {
          "offer_id": "amazon-b08gy9nyrm",
          "supplier": "Direct Suppliers US",
          "url": "https://www.amazon.com/dp/B08GY9NYRM",
          "region": "US",
          "observations": [
            {
              "observation_id": "amazon-2026-10-04",
              "currency": "USD",
              "pack_price": 24,
              "pack_qty": 1,
              "moq_packs": 1,
              "stock": "in_stock",
              "source_checked_at": "2026-10-04",
              "price_observed_at": "2026-10-04",
              "stock_observed_at": "2026-10-04",
              "check_method": "manual",
              "link_status": "working",
              "source_ids": [
                "S002"
              ],
              "shipping_note": "Amazon US listing; shipping and sales tax depend on address and membership, not established.",
              "notes": "Buy box read on 2026-10-04; seller: Direct Suppliers US; variants: Old Version, 32GB. Same ASIN as the BOM's amazon.fr link."
            }
          ]
        }
      ]
    },
    "pla-filament": {
      "name": "PLA filament, 1.75 mm",
      "unit": "g",
      "spec_summary": "Generic PLA filament, 1.75 mm; any colour.",
      "manufacturer": null,
      "mpn": null,
      "identity_sources": [
        "S001"
      ],
      "substitutes": [],
      "notes": "Unit is grams; a 1 kg spool is a pack of 1000.",
      "sources": [
        {
          "id": "S001",
          "type": "vendor",
          "title": "eSUN PLA Basic Filament 1.75mm 3D Printer Filament 1KG Silver",
          "url": "https://www.amazon.com/dp/B0CS2ZSZ6F",
          "publisher": "Amazon.com",
          "locator": "Buy box captured for listing \"filament-esun-pla-basic-1kg\"",
          "finding": "Current price, availability and seller as displayed.",
          "accessed_at": "2026-10-04",
          "attribution_note": "Captured in the built-in browser; scripted fetches received CAPTCHA pages, which were not bypassed."
        }
      ],
      "offers": [
        {
          "offer_id": "amazon-b0cs2zsz6f",
          "supplier": "eSUN official Store",
          "url": "https://www.amazon.com/dp/B0CS2ZSZ6F",
          "region": "US",
          "observations": [
            {
              "observation_id": "amazon-2026-10-04",
              "currency": "USD",
              "pack_price": 14.99,
              "pack_qty": 1000,
              "moq_packs": 1,
              "stock": "in_stock",
              "source_checked_at": "2026-10-04",
              "price_observed_at": "2026-10-04",
              "stock_observed_at": "2026-10-04",
              "check_method": "manual",
              "link_status": "working",
              "source_ids": [
                "S001"
              ],
              "shipping_note": "Amazon US listing; shipping and sales tax depend on address and membership, not established.",
              "notes": "Buy box read on 2026-10-04; seller: eSUN official Store; variants: Silver, 1KG."
            }
          ]
        }
      ]
    },
    "power-switch-microban": {
      "name": "Power switch (as linked by Microban)",
      "unit": "each",
      "spec_summary": "Small power switch for the robot supply.",
      "manufacturer": null,
      "mpn": null,
      "identity_sources": [
        "S001"
      ],
      "substitutes": [],
      "notes": "BOM links amazon.fr B0F32NVDHW (~USD 5); not on amazon.com. No US offer recorded.",
      "sources": [
        {
          "id": "S001",
          "type": "upstream",
          "title": "Microban bill of materials (docs/bom.md)",
          "url": "https://github.com/Rhoban/microban/blob/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2/docs/bom.md",
          "publisher": "Rhoban",
          "locator": "Robot Components; Configuration Tools",
          "finding": "Lists components, quantities, approximate prices and (mostly European) purchase links.",
          "accessed_at": "2026-10-04"
        }
      ],
      "offers": []
    },
    "psu-5v-2a-barrel": {
      "name": "5 V 2 A power supply, barrel plug",
      "unit": "each",
      "spec_summary": "5 V DC, 2 A wall adapter with 5.5 mm barrel plug.",
      "manufacturer": null,
      "mpn": null,
      "identity_sources": [
        "S001",
        "S003"
      ],
      "substitutes": [],
      "notes": "",
      "sources": [
        {
          "id": "S001",
          "type": "upstream",
          "title": "Koch low_cost_robot README bill of materials",
          "url": "https://github.com/AlexanderKoch-Koch/low_cost_robot/blob/0602b0c1e6a67d8f6ab96f81d1378639018d98af/README.md",
          "publisher": "Alexander Koch",
          "locator": "Follower Arm / Leader Arm: Required Materials",
          "finding": "Lists parts, costs and purchase links for the follower and leader arms.",
          "accessed_at": "2026-10-04"
        },
        {
          "id": "S002",
          "type": "upstream",
          "title": "Koch README commit history and price presence scan",
          "url": "https://github.com/AlexanderKoch-Koch/low_cost_robot/commits/main/README.md",
          "publisher": "Alexander Koch",
          "locator": "Commits touching README.md; presence of the cost figures at each revision",
          "finding": "The cost figures are present in every revision from 265535c (2024-04-07) to the newest.",
          "accessed_at": "2026-10-04",
          "attribution_note": "Scan produced with the GitHub contents API on 2026-10-04."
        },
        {
          "id": "S003",
          "type": "vendor",
          "title": "5V 2A Power Adapter Supply 10W DC 5V 2A 1.5A 1A Wall Plug Power Cord",
          "url": "https://www.amazon.com/dp/B0BZS779MC",
          "publisher": "Amazon.com",
          "locator": "Buy box captured for listing \"psu-5v-2a\"",
          "finding": "Current price, availability and seller as displayed.",
          "accessed_at": "2026-10-04",
          "attribution_note": "Captured in the built-in browser; scripted fetches received CAPTCHA pages, which were not bypassed."
        }
      ],
      "offers": [
        {
          "offer_id": "upstream-koch-readme",
          "supplier": "Amazon listing linked from Koch README",
          "url": "https://www.amazon.com/dp/B0BZS779MC",
          "region": "US",
          "observations": [
            {
              "observation_id": "koch-readme-0602b0c",
              "currency": "USD",
              "pack_price": 6,
              "pack_qty": 1,
              "moq_packs": 1,
              "stock": "unknown",
              "source_checked_at": "2026-10-04",
              "price_observed_at": "2024-04-07",
              "price_date_basis": "earliest_unbroken_revision",
              "stock_observed_at": null,
              "check_method": "upstream_reported",
              "link_status": "unknown",
              "source_ids": [
                "S001",
                "S002"
              ],
              "shipping_note": "Upstream table states item prices only; delivery and tax not stated.",
              "notes": "Koch README \"Required Materials\" cost column at pinned revision 0602b0c. The figures ($258 and $183 totals; $100 for 2 XL430, $96 for 4 XL330-M288, $144 for 6 XL330-M077) are present in every README revision from 265535c (2024-04-07) to the newest (retained source evidence), so the price is dated to that earliest revision. Per-unit figures divide the listed line cost by its quantity."
            }
          ]
        },
        {
          "offer_id": "amazon-b0bzs779mc",
          "supplier": "GUOHONGZHAN",
          "url": "https://www.amazon.com/dp/B0BZS779MC",
          "region": "US",
          "observations": [
            {
              "observation_id": "amazon-2026-10-04",
              "currency": "USD",
              "pack_price": 6.39,
              "pack_qty": 1,
              "moq_packs": 1,
              "stock": "in_stock",
              "source_checked_at": "2026-10-04",
              "price_observed_at": "2026-10-04",
              "stock_observed_at": "2026-10-04",
              "check_method": "manual",
              "link_status": "working",
              "source_ids": [
                "S003"
              ],
              "shipping_note": "Amazon US listing; shipping and sales tax depend on address and membership, not established.",
              "notes": "Buy box read on 2026-10-04; seller: GUOHONGZHAN; availability: In Stock. Upstream short link https://a.co/d/5u90NVp."
            }
          ]
        }
      ]
    },
    "raspberry-pi-zero-2-w": {
      "name": "Raspberry Pi Zero 2 W",
      "unit": "each",
      "spec_summary": "Raspberry Pi Zero 2 W single-board computer.",
      "manufacturer": "Raspberry Pi",
      "mpn": "SC1146",
      "identity_sources": [
        "S001"
      ],
      "substitutes": [],
      "notes": "Out of stock at every US reseller checked on 2026-10-04.",
      "sources": [
        {
          "id": "S001",
          "type": "upstream",
          "title": "Microban bill of materials (docs/bom.md)",
          "url": "https://github.com/Rhoban/microban/blob/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2/docs/bom.md",
          "publisher": "Rhoban",
          "locator": "Robot Components; Configuration Tools",
          "finding": "Lists components, quantities, approximate prices and (mostly European) purchase links.",
          "accessed_at": "2026-10-04"
        },
        {
          "id": "S002",
          "type": "vendor",
          "title": "Raspberry Pi Zero 2 W stock checks at four US resellers",
          "url": "https://www.sparkfun.com/raspberry-pi-zero-2-w.html",
          "publisher": "SparkFun Electronics; PiShop.us; CanaKit; Adafruit Industries",
          "locator": "Product pages, 2026-10-04",
          "finding": "SparkFun USD 19.00 out of stock; PiShop out of stock; CanaKit sold out; Adafruit USD 19.05 out of stock.",
          "accessed_at": "2026-10-04",
          "attribution_note": "SparkFun checked in the built-in browser; others by page fetch (see store evidence)."
        }
      ],
      "offers": [
        {
          "offer_id": "sparkfun-electronics",
          "supplier": "SparkFun Electronics",
          "url": "https://www.sparkfun.com/raspberry-pi-zero-2-w.html",
          "region": "US",
          "observations": [
            {
              "observation_id": "check-2026-10-04",
              "currency": "USD",
              "pack_price": null,
              "pack_qty": 1,
              "moq_packs": 1,
              "stock": "out_of_stock",
              "source_checked_at": "2026-10-04",
              "price_observed_at": null,
              "stock_observed_at": "2026-10-04",
              "check_method": "manual",
              "link_status": "working",
              "source_ids": [
                "S002"
              ],
              "shipping_note": "Not established (out of stock).",
              "notes": "$19.00 OUT OF STOCK (browser)"
            }
          ]
        },
        {
          "offer_id": "pishopus",
          "supplier": "PiShop.us",
          "url": "https://www.pishop.us/product/raspberry-pi-zero-2-w/",
          "region": "US",
          "observations": [
            {
              "observation_id": "check-2026-10-04",
              "currency": "USD",
              "pack_price": null,
              "pack_qty": 1,
              "moq_packs": 1,
              "stock": "out_of_stock",
              "source_checked_at": "2026-10-04",
              "price_observed_at": null,
              "stock_observed_at": "2026-10-04",
              "check_method": "manual",
              "link_status": "working",
              "source_ids": [
                "S002"
              ],
              "shipping_note": "Not established (out of stock).",
              "notes": "Out of stock (page fetch)"
            }
          ]
        },
        {
          "offer_id": "canakit",
          "supplier": "CanaKit",
          "url": "https://www.canakit.com/raspberry-pi-zero-2-w.html",
          "region": "US",
          "observations": [
            {
              "observation_id": "check-2026-10-04",
              "currency": "USD",
              "pack_price": null,
              "pack_qty": 1,
              "moq_packs": 1,
              "stock": "out_of_stock",
              "source_checked_at": "2026-10-04",
              "price_observed_at": null,
              "stock_observed_at": "2026-10-04",
              "check_method": "manual",
              "link_status": "working",
              "source_ids": [
                "S002"
              ],
              "shipping_note": "Not established (out of stock).",
              "notes": "Sold Out (page fetch)"
            }
          ]
        },
        {
          "offer_id": "adafruit",
          "supplier": "Adafruit",
          "url": "https://www.adafruit.com/product/5291",
          "region": "US",
          "observations": [
            {
              "observation_id": "check-2026-10-04",
              "currency": "USD",
              "pack_price": null,
              "pack_qty": 1,
              "moq_packs": 1,
              "stock": "out_of_stock",
              "source_checked_at": "2026-10-04",
              "price_observed_at": null,
              "stock_observed_at": "2026-10-04",
              "check_method": "manual",
              "link_status": "working",
              "source_ids": [
                "S002"
              ],
              "shipping_note": "Not established (out of stock).",
              "notes": "schema.org OutOfStock, 19.05 USD (page fetch)"
            }
          ]
        }
      ]
    },
    "robotis-u2d2": {
      "name": "ROBOTIS U2D2",
      "unit": "each",
      "spec_summary": "USB to DYNAMIXEL communication converter.",
      "manufacturer": "ROBOTIS",
      "mpn": "902-0132-000",
      "identity_sources": [
        "S001",
        "S002"
      ],
      "substitutes": [],
      "notes": "",
      "sources": [
        {
          "id": "S001",
          "type": "upstream",
          "title": "Microban bill of materials (docs/bom.md)",
          "url": "https://github.com/Rhoban/microban/blob/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2/docs/bom.md",
          "publisher": "Rhoban",
          "locator": "Robot Components; Configuration Tools",
          "finding": "Lists components, quantities, approximate prices and (mostly European) purchase links.",
          "accessed_at": "2026-10-04"
        },
        {
          "id": "S002",
          "type": "vendor",
          "title": "U2D2",
          "url": "https://www.robotis.us/u2d2/",
          "publisher": "ROBOTIS America",
          "locator": "Product structured data (schema.org Offer)",
          "finding": "Price and availability in the product page structured data.",
          "accessed_at": "2026-10-04"
        }
      ],
      "offers": [
        {
          "offer_id": "robotis-u2d2",
          "supplier": "ROBOTIS America",
          "url": "https://www.robotis.us/u2d2/",
          "region": "US",
          "observations": [
            {
              "observation_id": "store-2026-10-04",
              "currency": "USD",
              "pack_price": 36.92,
              "pack_qty": 1,
              "moq_packs": 1,
              "stock": "in_stock",
              "source_checked_at": "2026-10-04",
              "price_observed_at": "2026-10-04",
              "stock_observed_at": "2026-10-04",
              "check_method": "manual",
              "link_status": "working",
              "source_ids": [
                "S002"
              ],
              "shipping_note": "ROBOTIS America US store; shipping calculated at checkout, not established.",
              "notes": "schema.org Offer price 36.92 USD, availability http://schema.org/InStock."
            }
          ]
        }
      ]
    },
    "robotis-u2d2-power-hub": {
      "name": "ROBOTIS U2D2 Power Hub Board Set",
      "unit": "each",
      "spec_summary": "Power hub board for powering DYNAMIXELs through the U2D2.",
      "manufacturer": "ROBOTIS",
      "mpn": "902-0145-001",
      "identity_sources": [
        "S001",
        "S002"
      ],
      "substitutes": [],
      "notes": "",
      "sources": [
        {
          "id": "S001",
          "type": "upstream",
          "title": "Microban bill of materials (docs/bom.md)",
          "url": "https://github.com/Rhoban/microban/blob/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2/docs/bom.md",
          "publisher": "Rhoban",
          "locator": "Robot Components; Configuration Tools",
          "finding": "Lists components, quantities, approximate prices and (mostly European) purchase links.",
          "accessed_at": "2026-10-04"
        },
        {
          "id": "S002",
          "type": "vendor",
          "title": "U2D2 Power Hub Board Set",
          "url": "https://www.robotis.us/u2d2-power-hub-board-set/",
          "publisher": "ROBOTIS America",
          "locator": "Product structured data (schema.org Offer)",
          "finding": "Price and availability in the product page structured data.",
          "accessed_at": "2026-10-04"
        }
      ],
      "offers": [
        {
          "offer_id": "robotis-u2d2-power-hub",
          "supplier": "ROBOTIS America",
          "url": "https://www.robotis.us/u2d2-power-hub-board-set/",
          "region": "US",
          "observations": [
            {
              "observation_id": "store-2026-10-04",
              "currency": "USD",
              "pack_price": 21.85,
              "pack_qty": 1,
              "moq_packs": 1,
              "stock": "in_stock",
              "source_checked_at": "2026-10-04",
              "price_observed_at": "2026-10-04",
              "stock_observed_at": "2026-10-04",
              "check_method": "manual",
              "link_status": "working",
              "source_ids": [
                "S002"
              ],
              "shipping_note": "ROBOTIS America US store; shipping calculated at checkout, not established.",
              "notes": "schema.org Offer price 21.85 USD, availability http://schema.org/InStock."
            }
          ]
        }
      ]
    },
    "rpi-robot-hat-pcba": {
      "name": "Pollen RPI Robot HAT (manufactured PCB)",
      "unit": "each",
      "spec_summary": "Open-source Raspberry Pi HAT (pollen-robotics/elec_RPI_Robot_HAT) that must be manufactured.",
      "manufacturer": null,
      "mpn": null,
      "identity_sources": [
        "S001"
      ],
      "substitutes": [],
      "notes": "BOM gives ~USD 30; no fabrication quote obtained.",
      "sources": [
        {
          "id": "S001",
          "type": "upstream",
          "title": "Microban bill of materials (docs/bom.md)",
          "url": "https://github.com/Rhoban/microban/blob/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2/docs/bom.md",
          "publisher": "Rhoban",
          "locator": "Robot Components; Configuration Tools",
          "finding": "Lists components, quantities, approximate prices and (mostly European) purchase links.",
          "accessed_at": "2026-10-04"
        }
      ],
      "offers": []
    },
    "screw-m2-5x6": {
      "name": "M2.5 x 6 screw",
      "unit": "each",
      "spec_summary": "M2.5 x 6 machine screws.",
      "manufacturer": null,
      "mpn": null,
      "identity_sources": [
        "S001"
      ],
      "substitutes": [],
      "notes": "BOM links Screwerk (Germany); no US offer recorded.",
      "sources": [
        {
          "id": "S001",
          "type": "upstream",
          "title": "Microban bill of materials (docs/bom.md)",
          "url": "https://github.com/Rhoban/microban/blob/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2/docs/bom.md",
          "publisher": "Rhoban",
          "locator": "Robot Components; Configuration Tools",
          "finding": "Lists components, quantities, approximate prices and (mostly European) purchase links.",
          "accessed_at": "2026-10-04"
        }
      ],
      "offers": []
    },
    "screw-m2x6-stp39": {
      "name": "M2 x 6 thread-forming screw for plastics (STP39 style)",
      "unit": "each",
      "spec_summary": "Self-tapping M2 x 6 screws for horn-to-part attachment.",
      "manufacturer": null,
      "mpn": null,
      "identity_sources": [
        "S001"
      ],
      "substitutes": [],
      "notes": "BOM links Screwerk (Germany); no US offer recorded.",
      "sources": [
        {
          "id": "S001",
          "type": "upstream",
          "title": "Microban bill of materials (docs/bom.md)",
          "url": "https://github.com/Rhoban/microban/blob/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2/docs/bom.md",
          "publisher": "Rhoban",
          "locator": "Robot Components; Configuration Tools",
          "finding": "Lists components, quantities, approximate prices and (mostly European) purchase links.",
          "accessed_at": "2026-10-04"
        }
      ],
      "offers": []
    },
    "shim-pom-20x30x1": {
      "name": "POM shim 20 x 30 x 1 mm",
      "unit": "each",
      "spec_summary": "Acetal (POM) washer for the plain bearings.",
      "manufacturer": null,
      "mpn": null,
      "identity_sources": [
        "S001"
      ],
      "substitutes": [],
      "notes": "BOM links AliExpress France (~USD 2.50 for 20); no US offer recorded.",
      "sources": [
        {
          "id": "S001",
          "type": "upstream",
          "title": "Microban bill of materials (docs/bom.md)",
          "url": "https://github.com/Rhoban/microban/blob/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2/docs/bom.md",
          "publisher": "Rhoban",
          "locator": "Robot Components; Configuration Tools",
          "finding": "Lists components, quantities, approximate prices and (mostly European) purchase links.",
          "accessed_at": "2026-10-04"
        }
      ],
      "offers": []
    },
    "shim-steel-25x30x0-3": {
      "name": "Steel shim 25 x 30 x 0.3 mm",
      "unit": "each",
      "spec_summary": "Steel shim washer for the plain bearings.",
      "manufacturer": null,
      "mpn": null,
      "identity_sources": [
        "S001"
      ],
      "substitutes": [],
      "notes": "BOM links AliExpress France (~USD 1.75 for 10); no US offer recorded.",
      "sources": [
        {
          "id": "S001",
          "type": "upstream",
          "title": "Microban bill of materials (docs/bom.md)",
          "url": "https://github.com/Rhoban/microban/blob/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2/docs/bom.md",
          "publisher": "Rhoban",
          "locator": "Robot Components; Configuration Tools",
          "finding": "Lists components, quantities, approximate prices and (mostly European) purchase links.",
          "accessed_at": "2026-10-04"
        }
      ],
      "offers": []
    }
  },
  "sources": [
    {
      "id": "S001",
      "title": "Upstream project overview",
      "url": "https://github.com/Rhoban/microban/blob/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2/README.md",
      "type": "upstream",
      "publisher": "Rhoban / project contributors",
      "attribution_note": "",
      "locator": "README.md",
      "finding": "Source text inspected for the cited scoped claims; see profile claim notes.",
      "accessed_at": "2026-09-30"
    },
    {
      "id": "S002",
      "title": "Repository revision and release metadata",
      "url": "https://github.com/Rhoban/microban/commit/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2",
      "type": "upstream",
      "publisher": "Rhoban / project contributors",
      "attribution_note": "",
      "locator": "0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2",
      "finding": "Source text inspected for the cited scoped claims; see profile claim notes.",
      "accessed_at": "2026-09-30"
    },
    {
      "id": "S003",
      "title": "Repository license",
      "url": "https://github.com/Rhoban/microban/blob/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2/LICENSE",
      "type": "license",
      "publisher": "Rhoban / project contributors",
      "attribution_note": "",
      "locator": "LICENSE",
      "finding": "Source text inspected for the cited scoped claims; see profile claim notes.",
      "accessed_at": "2026-09-30"
    },
    {
      "id": "S004",
      "title": "Pinned repository artifact inventory",
      "url": "https://github.com/Rhoban/microban/tree/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2",
      "type": "upstream",
      "publisher": "Rhoban / project contributors",
      "attribution_note": "",
      "locator": "0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2 archive file inventory",
      "finding": "Source text inspected for the cited scoped claims; see profile claim notes.",
      "accessed_at": "2026-09-30"
    },
    {
      "id": "S009",
      "title": "cad/LICENSE",
      "url": "https://github.com/Rhoban/microban/blob/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2/cad/LICENSE",
      "type": "upstream",
      "publisher": "Rhoban / project contributors",
      "attribution_note": "",
      "locator": "cad/LICENSE",
      "finding": "Source text inspected for the cited scoped claims; see profile claim notes.",
      "accessed_at": "2026-09-30"
    },
    {
      "id": "S006",
      "title": "docs/assembly.md",
      "url": "https://github.com/Rhoban/microban/blob/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2/docs/assembly.md",
      "type": "upstream",
      "publisher": "Rhoban / project contributors",
      "attribution_note": "",
      "locator": "docs/assembly.md",
      "finding": "Source text inspected for the cited scoped claims; see profile claim notes.",
      "accessed_at": "2026-09-30"
    },
    {
      "id": "S005",
      "title": "docs/bom.md",
      "url": "https://github.com/Rhoban/microban/blob/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2/docs/bom.md",
      "type": "upstream",
      "publisher": "Rhoban / project contributors",
      "attribution_note": "",
      "locator": "docs/bom.md",
      "finding": "Source text inspected for the cited scoped claims; see profile claim notes.",
      "accessed_at": "2026-09-30"
    },
    {
      "id": "S007",
      "title": "docs/deployment.md",
      "url": "https://github.com/Rhoban/microban/blob/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2/docs/deployment.md",
      "type": "upstream",
      "publisher": "Rhoban / project contributors",
      "attribution_note": "",
      "locator": "docs/deployment.md",
      "finding": "Source text inspected for the cited scoped claims; see profile claim notes.",
      "accessed_at": "2026-09-30"
    },
    {
      "id": "S008",
      "title": "docs/usage.md",
      "url": "https://github.com/Rhoban/microban/blob/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2/docs/usage.md",
      "type": "upstream",
      "publisher": "Rhoban / project contributors",
      "attribution_note": "",
      "locator": "docs/usage.md",
      "finding": "Source text inspected for the cited scoped claims; see profile claim notes.",
      "accessed_at": "2026-09-30"
    },
    {
      "id": "S010",
      "type": "upstream",
      "title": "Microban printing guide (docs/printing.md)",
      "url": "https://github.com/Rhoban/microban/blob/0c814b4b8cc9d0a2f650a4ecb5004304f6ccc6c2/docs/printing.md",
      "publisher": "Rhoban",
      "locator": "Recommended Settings; parts table",
      "accessed_at": "2026-10-04",
      "finding": "PLA, 0.12 mm layers, 15% infill; lists each printed part and its quantity."
    },
    {
      "id": "S011",
      "type": "secondary",
      "title": "Microban US cost and sourcing estimate receipt",
      "url": "https://opensourcerobotics.dev/assets/build-guides/microban-cost-estimate.json",
      "publisher": "Open Source Robotics",
      "locator": "Rollups as of 2026-10-04",
      "accessed_at": "2026-10-04",
      "finding": "Line-level US offers, gaps, printed-part slicing and rollups for Microban."
    },
    {
      "id": "S012",
      "title": "Microban, a 30cm Open-Source Humanoid Robot - Walking Demo (YouTube video)",
      "url": "https://www.youtube.com/watch?v=1pnFrT_jfXQ",
      "finding": "Video 'Microban, a 30cm Open-Source Humanoid Robot - Walking Demo' uploaded by the YouTube channel 'MarcDcls' (https://www.youtube.com/@MarcDclsYT). Linked from README.md in Rhoban/microban at revision 0c814b4b8cc9. The uploader is not established as the project maintainer. The video is listed as a demonstration link; its content was not reviewed for technical accuracy.",
      "type": "secondary",
      "locator": "YouTube video; linked from README.md in Rhoban/microban at revision 0c814b4b8cc9",
      "accessed_at": "2026-10-04",
      "publisher": "MarcDcls",
      "attribution_note": ""
    },
    {
      "id": "S013",
      "title": "Rhoban Officiel (YouTube channel)",
      "url": "https://www.youtube.com/channel/UCaRUvJJSzQASA2ZFw5to9JQ",
      "finding": "YouTube channel 'Rhoban Officiel' (/@rhobanofficiel3757) was found by searching YouTube for the project name; it is listed as the project's own channel because its About page links to the maintainer domain rhoban.com/fr. The preserved upstream sources did not link this channel. Individual videos were not reviewed for technical accuracy.",
      "type": "maintainer",
      "locator": "YouTube channel /@rhobanofficiel3757; found by YouTube search, verified from its About page",
      "accessed_at": "2026-10-04",
      "publisher": "Rhoban Officiel",
      "attribution_note": ""
    }
  ]
}
