{
  "spec_version": "0.7.0-draft.5",
  "slug": "so-101",
  "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": "so101-follower-leader-7v4",
      "label": "SO-101 follower + leader, 7.4 V servos",
      "first_task": "Leader-follower teleoperation with LeRobot",
      "upstream_bom_url": "https://github.com/TheRobotStudio/SO-ARM100/blob/5f6d2b876a53a4872e405b991dd925556c9e38a4/README.md",
      "upstream_revision": "5f6d2b876a53a4872e405b991dd925556c9e38a4",
      "bom_coverage": {
        "status": "partial",
        "source_ids": [
          "S005",
          "S008"
        ],
        "notes": "Upstream BOM table reconciled line by line, printed parts mapped and sliced. Not complete: the pinned LeRobot SO-101 assembly guide uses M2x6 and M3x6 screws, which neither BOM table lists, and no pinned source states that they ship with the servos. Camera not required for this first task."
      },
      "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": "servos-c001",
          "part_id": "feetech-sts3215-7v4-c001",
          "quantity": 7,
          "layer": "purchased_parts",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": "Six follower joints plus one leader joint."
        },
        {
          "line_id": "servos-c044",
          "part_id": "feetech-sts3215-7v4-c044",
          "quantity": 2,
          "layer": "purchased_parts",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": "Leader arm."
        },
        {
          "line_id": "servos-c046",
          "part_id": "feetech-sts3215-7v4-c046",
          "quantity": 3,
          "layer": "purchased_parts",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": "Leader arm."
        },
        {
          "line_id": "control-boards",
          "part_id": "serial-bus-servo-driver-board",
          "quantity": 2,
          "layer": "purchased_parts",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": ""
        },
        {
          "line_id": "usb-cables",
          "part_id": "usb-a-to-usb-c-cable",
          "quantity": 2,
          "layer": "power_and_cabling",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": "Upstream buys one 2-pack for either configuration."
        },
        {
          "line_id": "power-supplies",
          "part_id": "psu-5v-4a-barrel",
          "quantity": 2,
          "layer": "power_and_cabling",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": ""
        },
        {
          "line_id": "table-clamps",
          "part_id": "small-bar-clamp",
          "quantity": 4,
          "layer": "purchased_parts",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": ""
        },
        {
          "line_id": "screwdrivers",
          "part_id": "precision-screwdriver-set",
          "quantity": 1,
          "layer": "tools",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": ""
        },
        {
          "line_id": "host-computer",
          "part_id": "host-computer-lerobot",
          "quantity": 1,
          "layer": "host_compute",
          "required": true,
          "source_ids": [
            "S008"
          ],
          "substitutes": [],
          "notes": "Required to run LeRobot; not in the upstream BOM table."
        },
        {
          "line_id": "printer",
          "part_id": "fdm-3d-printer",
          "quantity": 1,
          "layer": "tools",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": "Required for the self-print route; upstream links printing services as an alternative."
        }
      ],
      "printed": {
        "groups": [
          {
            "requirement_id": "follower-frame",
            "required": true,
            "source_ids": [
              "S005",
              "S006"
            ],
            "route": "self_print",
            "material_part_id": "pla-plus-filament",
            "mass_low_g": 388.4,
            "mass_high_g": 447.4,
            "method": "Slicer: PrusaSlicer-2.9.6 based on Slic3r (with GUI support), upstream plate STL/SO101/Follower/Ender_Follower_SO101.stl for a 220 x 220 mm bed; low = 2 perimeters, high = 3 perimeters (PrusaSlicer default); other unstated settings are PrusaSlicer defaults. Mass includes supports and skirt (retained source evidence).",
            "assumptions": "Upstream settings applied: PLA+, 0.4 mm nozzle, 0.2 mm layers, 15% infill, supports everywhere except slopes over 45 degrees. Supports are generated in horizontal screw holes too (upstream asks to block them), a slight overestimate. Brim 0 mm; single extruder, so no purge. One successful print is assumed: no allowance for failed prints or reprints. The plate file contains exactly the mapped individual files (equal solid volume). WaveShare mounting plate selected; Seeed plate is the excluded alternative. Geometric cross-check, solid volumes: Base_motor_holder_SO101.stl: 23.7 cm3 solid; Base_SO101.stl: 122.7 cm3 solid; Motor_holder_SO101_Base.stl: 13.3 cm3 solid; Motor_holder_SO101_Wrist.stl: 13.9 cm3 solid; Under_arm_SO101.stl: 92.9 cm3 solid; Upper_arm_SO101.stl: 117.3 cm3 solid; Rotation_Pitch_SO101.stl: 68.8 cm3 solid; Wrist_Roll_Pitch_SO101.stl: 32.3 cm3 solid; WaveShare_Mounting_Plate_SO101.stl: 9.1 cm3 solid; Moving_Jaw_SO101.stl: 20.7 cm3 solid; Wrist_Roll_Follower_SO101.stl: 56.6 cm3 solid.",
            "estimate_complete": true,
            "parts": [
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Base_motor_holder_SO101.stl",
                "sha256": "e10eb1296560bc00dca91af5f35d9be637be026a5b544c0ebfcac51501aa3c70",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Base_SO101.stl",
                "sha256": "19f3c6baafc23a3bc92805762e906df9514d1008be84d490a90a9096ffdcf3c8",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Motor_holder_SO101_Base.stl",
                "sha256": "f9971aa805e2d6fb61726d2787e752a6fe0ff21d3c66023296ee4c57a2b100a4",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Motor_holder_SO101_Wrist.stl",
                "sha256": "936c84ed2c918b3ec14e2c3ec3f742f47bed10a4e3d0a2c9bf7869d0a2a55149",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Under_arm_SO101.stl",
                "sha256": "537b03e68ff7c061da4cc70bf0b5a61018a76c00bccc72d61f022d1644230db5",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Upper_arm_SO101.stl",
                "sha256": "96333913c296b13ecb1c81e63e57e4352fb6b5dea7722c84ec1fbd5073e23865",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Rotation_Pitch_SO101.stl",
                "sha256": "5ef34a5420071627d01323be13e80b7ac8af0760c72d8382c0664c914f281800",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Wrist_Roll_Pitch_SO101.stl",
                "sha256": "14eb2f45ab1b279025ed2aea358f0091aad6aff967faef58527fd216f28fb6e5",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/WaveShare_Mounting_Plate_SO101.stl",
                "sha256": "6275f05ef28cd407be13ea882735282c4a8b2ef64930c77a9e7b5a3811740be1",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Moving_Jaw_SO101.stl",
                "sha256": "403763bbab8656cc7ce5ea6374741d0860bd19426b5b4b0041de3a2c1275f90b",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Wrist_Roll_Follower_SO101.stl",
                "sha256": "3f47a4b889b95a4c71046bda9ddfc9399d96d80a57ad7fc079700e240323a302",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Seeedstudio_Mounting_Plate_SO101.stl",
                "sha256": "96942f7245dd3b384090b228d2e37c18b7dc92f14295f7036a421fcd78e5090b",
                "quantity": 1,
                "included": false,
                "role": "alternative",
                "alternative_set": "controller-mount"
              }
            ]
          },
          {
            "requirement_id": "leader-frame",
            "required": true,
            "source_ids": [
              "S005",
              "S006"
            ],
            "route": "self_print",
            "material_part_id": "pla-plus-filament",
            "mass_low_g": 397,
            "mass_high_g": 458.1,
            "method": "Slicer: PrusaSlicer-2.9.6 based on Slic3r (with GUI support), upstream plate STL/SO101/Leader/Ender_Leader_SO101.stl for a 220 x 220 mm bed; low = 2 perimeters, high = 3 perimeters (PrusaSlicer default); other unstated settings are PrusaSlicer defaults. Mass includes supports and skirt (retained source evidence).",
            "assumptions": "Upstream settings applied: PLA+, 0.4 mm nozzle, 0.2 mm layers, 15% infill, supports everywhere except slopes over 45 degrees. Supports are generated in horizontal screw holes too (upstream asks to block them), a slight overestimate. Brim 0 mm; single extruder, so no purge. One successful print is assumed: no allowance for failed prints or reprints. The plate file contains exactly the mapped individual files (equal solid volume). WaveShare mounting plate selected; Seeed plate is the excluded alternative. Geometric cross-check, solid volumes: Base_motor_holder_SO101.stl: 23.7 cm3 solid; Base_SO101.stl: 122.7 cm3 solid; Motor_holder_SO101_Base.stl: 13.3 cm3 solid; Motor_holder_SO101_Wrist.stl: 13.9 cm3 solid; Under_arm_SO101.stl: 92.9 cm3 solid; Upper_arm_SO101.stl: 117.3 cm3 solid; Rotation_Pitch_SO101.stl: 68.8 cm3 solid; Wrist_Roll_Pitch_SO101.stl: 32.3 cm3 solid; WaveShare_Mounting_Plate_SO101.stl: 9.1 cm3 solid; Handle_SO101.stl: 69.6 cm3 solid; Trigger_SO101.stl: 11.2 cm3 solid; Wrist_Roll_SO101.stl: 39.8 cm3 solid.",
            "estimate_complete": true,
            "parts": [
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Base_motor_holder_SO101.stl",
                "sha256": "e10eb1296560bc00dca91af5f35d9be637be026a5b544c0ebfcac51501aa3c70",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Base_SO101.stl",
                "sha256": "19f3c6baafc23a3bc92805762e906df9514d1008be84d490a90a9096ffdcf3c8",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Motor_holder_SO101_Base.stl",
                "sha256": "f9971aa805e2d6fb61726d2787e752a6fe0ff21d3c66023296ee4c57a2b100a4",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Motor_holder_SO101_Wrist.stl",
                "sha256": "936c84ed2c918b3ec14e2c3ec3f742f47bed10a4e3d0a2c9bf7869d0a2a55149",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Under_arm_SO101.stl",
                "sha256": "537b03e68ff7c061da4cc70bf0b5a61018a76c00bccc72d61f022d1644230db5",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Upper_arm_SO101.stl",
                "sha256": "96333913c296b13ecb1c81e63e57e4352fb6b5dea7722c84ec1fbd5073e23865",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Rotation_Pitch_SO101.stl",
                "sha256": "5ef34a5420071627d01323be13e80b7ac8af0760c72d8382c0664c914f281800",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Wrist_Roll_Pitch_SO101.stl",
                "sha256": "14eb2f45ab1b279025ed2aea358f0091aad6aff967faef58527fd216f28fb6e5",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/WaveShare_Mounting_Plate_SO101.stl",
                "sha256": "6275f05ef28cd407be13ea882735282c4a8b2ef64930c77a9e7b5a3811740be1",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Handle_SO101.stl",
                "sha256": "fb8757bdff009c04c207481dd664813ccdac2ad989acea6057df780b52327281",
                "quantity": 1,
                "included": true,
                "role": "leader_only"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Trigger_SO101.stl",
                "sha256": "48ecec3a3710cffdc0ae96d28547e49ddf4cbc93ccd915be7549f78e00ad2850",
                "quantity": 1,
                "included": true,
                "role": "leader_only"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Wrist_Roll_SO101.stl",
                "sha256": "de3a65044dd4ae8bcb9659d8ca2b49598e3f5571edf89f45ad975e9776a7ffee",
                "quantity": 1,
                "included": true,
                "role": "leader_only"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Seeedstudio_Mounting_Plate_SO101.stl",
                "sha256": "96942f7245dd3b384090b228d2e37c18b7dc92f14295f7036a421fcd78e5090b",
                "quantity": 1,
                "included": false,
                "role": "alternative",
                "alternative_set": "controller-mount"
              }
            ]
          }
        ]
      }
    },
    {
      "configuration_id": "so101-follower-7v4",
      "label": "SO-101 follower only, 7.4 V servos",
      "first_task": "Follower arm configured and calibrated with LeRobot on a host computer (teleoperation needs a separate leader)",
      "upstream_bom_url": "https://github.com/TheRobotStudio/SO-ARM100/blob/5f6d2b876a53a4872e405b991dd925556c9e38a4/README.md",
      "upstream_revision": "5f6d2b876a53a4872e405b991dd925556c9e38a4",
      "bom_coverage": {
        "status": "partial",
        "source_ids": [
          "S005",
          "S008"
        ],
        "notes": "Upstream BOM table reconciled line by line, printed parts mapped and sliced. Not complete: the pinned LeRobot SO-101 assembly guide uses M2x6 and M3x6 screws, which neither BOM table lists, and no pinned source states that they ship with the servos. Camera not required for this first task."
      },
      "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": "servos-c001",
          "part_id": "feetech-sts3215-7v4-c001",
          "quantity": 6,
          "layer": "purchased_parts",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": ""
        },
        {
          "line_id": "control-boards",
          "part_id": "serial-bus-servo-driver-board",
          "quantity": 1,
          "layer": "purchased_parts",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": ""
        },
        {
          "line_id": "usb-cables",
          "part_id": "usb-a-to-usb-c-cable",
          "quantity": 1,
          "layer": "power_and_cabling",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": "Upstream buys one 2-pack for either configuration."
        },
        {
          "line_id": "power-supplies",
          "part_id": "psu-5v-4a-barrel",
          "quantity": 1,
          "layer": "power_and_cabling",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": ""
        },
        {
          "line_id": "table-clamps",
          "part_id": "small-bar-clamp",
          "quantity": 2,
          "layer": "purchased_parts",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": ""
        },
        {
          "line_id": "screwdrivers",
          "part_id": "precision-screwdriver-set",
          "quantity": 1,
          "layer": "tools",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": ""
        },
        {
          "line_id": "host-computer",
          "part_id": "host-computer-lerobot",
          "quantity": 1,
          "layer": "host_compute",
          "required": true,
          "source_ids": [
            "S008"
          ],
          "substitutes": [],
          "notes": "Required to run LeRobot; not in the upstream BOM table."
        },
        {
          "line_id": "printer",
          "part_id": "fdm-3d-printer",
          "quantity": 1,
          "layer": "tools",
          "required": true,
          "source_ids": [
            "S005"
          ],
          "substitutes": [],
          "notes": "Required for the self-print route; upstream links printing services as an alternative."
        }
      ],
      "printed": {
        "groups": [
          {
            "requirement_id": "follower-frame",
            "required": true,
            "source_ids": [
              "S005",
              "S006"
            ],
            "route": "self_print",
            "material_part_id": "pla-plus-filament",
            "mass_low_g": 388.4,
            "mass_high_g": 447.4,
            "method": "Slicer: PrusaSlicer-2.9.6 based on Slic3r (with GUI support), upstream plate STL/SO101/Follower/Ender_Follower_SO101.stl for a 220 x 220 mm bed; low = 2 perimeters, high = 3 perimeters (PrusaSlicer default); other unstated settings are PrusaSlicer defaults. Mass includes supports and skirt (retained source evidence).",
            "assumptions": "Upstream settings applied: PLA+, 0.4 mm nozzle, 0.2 mm layers, 15% infill, supports everywhere except slopes over 45 degrees. Supports are generated in horizontal screw holes too (upstream asks to block them), a slight overestimate. Brim 0 mm; single extruder, so no purge. One successful print is assumed: no allowance for failed prints or reprints. The plate file contains exactly the mapped individual files (equal solid volume). WaveShare mounting plate selected; Seeed plate is the excluded alternative. Geometric cross-check, solid volumes: Base_motor_holder_SO101.stl: 23.7 cm3 solid; Base_SO101.stl: 122.7 cm3 solid; Motor_holder_SO101_Base.stl: 13.3 cm3 solid; Motor_holder_SO101_Wrist.stl: 13.9 cm3 solid; Under_arm_SO101.stl: 92.9 cm3 solid; Upper_arm_SO101.stl: 117.3 cm3 solid; Rotation_Pitch_SO101.stl: 68.8 cm3 solid; Wrist_Roll_Pitch_SO101.stl: 32.3 cm3 solid; WaveShare_Mounting_Plate_SO101.stl: 9.1 cm3 solid; Moving_Jaw_SO101.stl: 20.7 cm3 solid; Wrist_Roll_Follower_SO101.stl: 56.6 cm3 solid.",
            "estimate_complete": true,
            "parts": [
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Base_motor_holder_SO101.stl",
                "sha256": "e10eb1296560bc00dca91af5f35d9be637be026a5b544c0ebfcac51501aa3c70",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Base_SO101.stl",
                "sha256": "19f3c6baafc23a3bc92805762e906df9514d1008be84d490a90a9096ffdcf3c8",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Motor_holder_SO101_Base.stl",
                "sha256": "f9971aa805e2d6fb61726d2787e752a6fe0ff21d3c66023296ee4c57a2b100a4",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Motor_holder_SO101_Wrist.stl",
                "sha256": "936c84ed2c918b3ec14e2c3ec3f742f47bed10a4e3d0a2c9bf7869d0a2a55149",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Under_arm_SO101.stl",
                "sha256": "537b03e68ff7c061da4cc70bf0b5a61018a76c00bccc72d61f022d1644230db5",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Upper_arm_SO101.stl",
                "sha256": "96333913c296b13ecb1c81e63e57e4352fb6b5dea7722c84ec1fbd5073e23865",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Rotation_Pitch_SO101.stl",
                "sha256": "5ef34a5420071627d01323be13e80b7ac8af0760c72d8382c0664c914f281800",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Wrist_Roll_Pitch_SO101.stl",
                "sha256": "14eb2f45ab1b279025ed2aea358f0091aad6aff967faef58527fd216f28fb6e5",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/WaveShare_Mounting_Plate_SO101.stl",
                "sha256": "6275f05ef28cd407be13ea882735282c4a8b2ef64930c77a9e7b5a3811740be1",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Moving_Jaw_SO101.stl",
                "sha256": "403763bbab8656cc7ce5ea6374741d0860bd19426b5b4b0041de3a2c1275f90b",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Wrist_Roll_Follower_SO101.stl",
                "sha256": "3f47a4b889b95a4c71046bda9ddfc9399d96d80a57ad7fc079700e240323a302",
                "quantity": 1,
                "included": true,
                "role": "kit"
              },
              {
                "archive_url": "https://github.com/TheRobotStudio/SO-ARM100/archive/5f6d2b876a53a4872e405b991dd925556c9e38a4.tar.gz",
                "path": "STL/SO101/Individual/Seeedstudio_Mounting_Plate_SO101.stl",
                "sha256": "96942f7245dd3b384090b228d2e37c18b7dc92f14295f7036a421fcd78e5090b",
                "quantity": 1,
                "included": false,
                "role": "alternative",
                "alternative_set": "controller-mount"
              }
            ]
          }
        ]
      }
    }
  ],
  "rollups": [
    {
      "configuration_id": "so101-follower-leader-7v4",
      "region": "US",
      "currency": "USD",
      "scenario_id": "baseline",
      "layers": {
        "purchased_parts": {
          "low": 226.81,
          "high": 232.72,
          "required_groups": 5,
          "priced_groups": 5,
          "unpriced": [],
          "oldest_price_date": "2026-10-04",
          "newest_price_date": "2026-10-04"
        },
        "printed_parts": {
          "low": 14.39,
          "high": 16.49,
          "required_groups": 1,
          "priced_groups": 1,
          "unpriced": [],
          "oldest_price_date": "2026-10-04",
          "newest_price_date": "2026-10-04",
          "consumption_low": 11.3,
          "consumption_high": 14.93
        },
        "fabricated_parts": {
          "low": 0,
          "high": 0,
          "required_groups": 0,
          "priced_groups": 0,
          "unpriced": [],
          "oldest_price_date": null,
          "newest_price_date": null
        },
        "power_and_cabling": {
          "low": 31.87,
          "high": 31.87,
          "required_groups": 2,
          "priced_groups": 2,
          "unpriced": [],
          "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": 0,
          "high": 0,
          "required_groups": 2,
          "priced_groups": 0,
          "unpriced": [
            "printer",
            "screwdrivers"
          ],
          "oldest_price_date": null,
          "newest_price_date": null
        },
        "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": 11,
        "priced_groups": 8,
        "ratio": 0.7273,
        "unpriced": [
          "host-computer",
          "printer",
          "screwdrivers"
        ]
      },
      "setup_readiness": "incomplete",
      "parts_total": {
        "low": 273.07,
        "high": null,
        "complete": false,
        "gaps": []
      },
      "required_total": {
        "low": 273.07,
        "high": null,
        "complete": false,
        "gaps": [
          "host-computer",
          "printer",
          "screwdrivers",
          "shipping_tax"
        ]
      },
      "price_dates": {
        "oldest": "2026-10-04",
        "newest": "2026-10-04",
        "upstream_reported_groups": []
      },
      "selected_observations": {
        "low": [
          {
            "group": "material:pla-plus-filament",
            "part_id": "pla-plus-filament",
            "offer_id": "amazon-b0d256s2rq",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 14.39,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:feetech-sts3215-7v4-c001",
            "part_id": "feetech-sts3215-7v4-c001",
            "offer_id": "wowrobo-1-pack",
            "observation_id": "wowrobo-2026-10-04",
            "packs": 7,
            "expenditure": 111.93,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:feetech-sts3215-7v4-c044",
            "part_id": "feetech-sts3215-7v4-c044",
            "offer_id": "wowrobo-1-pack",
            "observation_id": "wowrobo-2026-10-04",
            "packs": 2,
            "expenditure": 31.98,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:feetech-sts3215-7v4-c046",
            "part_id": "feetech-sts3215-7v4-c046",
            "offer_id": "wowrobo-1-pack",
            "observation_id": "wowrobo-2026-10-04",
            "packs": 3,
            "expenditure": 47.97,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:psu-5v-4a-barrel",
            "part_id": "psu-5v-4a-barrel",
            "offer_id": "amazon-b087ly41pv",
            "observation_id": "amazon-2026-10-04",
            "packs": 2,
            "expenditure": 24.68,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:serial-bus-servo-driver-board",
            "part_id": "serial-bus-servo-driver-board",
            "offer_id": "amazon-b0ctmm4lwk",
            "observation_id": "amazon-2026-10-04",
            "packs": 2,
            "expenditure": 24.94,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:small-bar-clamp",
            "part_id": "small-bar-clamp",
            "offer_id": "amazon-b0djnxf8wh",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 9.99,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:usb-a-to-usb-c-cable",
            "part_id": "usb-a-to-usb-c-cable",
            "offer_id": "amazon-b0b8nwllw2",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 7.19,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          }
        ],
        "high": [
          {
            "group": "material:pla-plus-filament",
            "part_id": "pla-plus-filament",
            "offer_id": "amazon-b07ydn56f2",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 16.49,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:feetech-sts3215-7v4-c001",
            "part_id": "feetech-sts3215-7v4-c001",
            "offer_id": "wowrobo-1-pack",
            "observation_id": "wowrobo-2026-10-04",
            "packs": 7,
            "expenditure": 111.93,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:feetech-sts3215-7v4-c044",
            "part_id": "feetech-sts3215-7v4-c044",
            "offer_id": "wowrobo-1-pack",
            "observation_id": "wowrobo-2026-10-04",
            "packs": 2,
            "expenditure": 31.98,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:feetech-sts3215-7v4-c046",
            "part_id": "feetech-sts3215-7v4-c046",
            "offer_id": "wowrobo-1-pack",
            "observation_id": "wowrobo-2026-10-04",
            "packs": 3,
            "expenditure": 47.97,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:psu-5v-4a-barrel",
            "part_id": "psu-5v-4a-barrel",
            "offer_id": "amazon-b087ly41pv",
            "observation_id": "amazon-2026-10-04",
            "packs": 2,
            "expenditure": 24.68,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:serial-bus-servo-driver-board",
            "part_id": "serial-bus-servo-driver-board",
            "offer_id": "amazon-b0ctmm4lwk",
            "observation_id": "amazon-2026-10-04",
            "packs": 2,
            "expenditure": 24.94,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:small-bar-clamp",
            "part_id": "small-bar-clamp",
            "offer_id": "amazon-b092l925j4",
            "observation_id": "amazon-2026-10-04",
            "packs": 2,
            "expenditure": 15.9,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:usb-a-to-usb-c-cable",
            "part_id": "usb-a-to-usb-c-cable",
            "offer_id": "amazon-b0b8nwllw2",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 7.19,
            "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": "so101-follower-leader-7v4",
      "region": "US",
      "currency": "USD",
      "scenario_id": "owns-computer-and-printer",
      "layers": {
        "purchased_parts": {
          "low": 226.81,
          "high": 232.72,
          "required_groups": 5,
          "priced_groups": 5,
          "unpriced": [],
          "oldest_price_date": "2026-10-04",
          "newest_price_date": "2026-10-04"
        },
        "printed_parts": {
          "low": 14.39,
          "high": 16.49,
          "required_groups": 1,
          "priced_groups": 1,
          "unpriced": [],
          "oldest_price_date": "2026-10-04",
          "newest_price_date": "2026-10-04",
          "consumption_low": 11.3,
          "consumption_high": 14.93
        },
        "fabricated_parts": {
          "low": 0,
          "high": 0,
          "required_groups": 0,
          "priced_groups": 0,
          "unpriced": [],
          "oldest_price_date": null,
          "newest_price_date": null
        },
        "power_and_cabling": {
          "low": 31.87,
          "high": 31.87,
          "required_groups": 2,
          "priced_groups": 2,
          "unpriced": [],
          "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": 0,
          "high": 0,
          "required_groups": 2,
          "priced_groups": 1,
          "unpriced": [
            "screwdrivers"
          ],
          "oldest_price_date": null,
          "newest_price_date": null
        },
        "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": 9,
        "priced_groups": 8,
        "ratio": 0.8889,
        "unpriced": [
          "screwdrivers"
        ]
      },
      "setup_readiness": "incomplete",
      "parts_total": {
        "low": 273.07,
        "high": null,
        "complete": false,
        "gaps": []
      },
      "required_total": {
        "low": 273.07,
        "high": null,
        "complete": false,
        "gaps": [
          "screwdrivers",
          "shipping_tax"
        ]
      },
      "price_dates": {
        "oldest": "2026-10-04",
        "newest": "2026-10-04",
        "upstream_reported_groups": []
      },
      "selected_observations": {
        "low": [
          {
            "group": "material:pla-plus-filament",
            "part_id": "pla-plus-filament",
            "offer_id": "amazon-b0d256s2rq",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 14.39,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:feetech-sts3215-7v4-c001",
            "part_id": "feetech-sts3215-7v4-c001",
            "offer_id": "wowrobo-1-pack",
            "observation_id": "wowrobo-2026-10-04",
            "packs": 7,
            "expenditure": 111.93,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:feetech-sts3215-7v4-c044",
            "part_id": "feetech-sts3215-7v4-c044",
            "offer_id": "wowrobo-1-pack",
            "observation_id": "wowrobo-2026-10-04",
            "packs": 2,
            "expenditure": 31.98,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:feetech-sts3215-7v4-c046",
            "part_id": "feetech-sts3215-7v4-c046",
            "offer_id": "wowrobo-1-pack",
            "observation_id": "wowrobo-2026-10-04",
            "packs": 3,
            "expenditure": 47.97,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:psu-5v-4a-barrel",
            "part_id": "psu-5v-4a-barrel",
            "offer_id": "amazon-b087ly41pv",
            "observation_id": "amazon-2026-10-04",
            "packs": 2,
            "expenditure": 24.68,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:serial-bus-servo-driver-board",
            "part_id": "serial-bus-servo-driver-board",
            "offer_id": "amazon-b0ctmm4lwk",
            "observation_id": "amazon-2026-10-04",
            "packs": 2,
            "expenditure": 24.94,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:small-bar-clamp",
            "part_id": "small-bar-clamp",
            "offer_id": "amazon-b0djnxf8wh",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 9.99,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:usb-a-to-usb-c-cable",
            "part_id": "usb-a-to-usb-c-cable",
            "offer_id": "amazon-b0b8nwllw2",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 7.19,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          }
        ],
        "high": [
          {
            "group": "material:pla-plus-filament",
            "part_id": "pla-plus-filament",
            "offer_id": "amazon-b07ydn56f2",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 16.49,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:feetech-sts3215-7v4-c001",
            "part_id": "feetech-sts3215-7v4-c001",
            "offer_id": "wowrobo-1-pack",
            "observation_id": "wowrobo-2026-10-04",
            "packs": 7,
            "expenditure": 111.93,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:feetech-sts3215-7v4-c044",
            "part_id": "feetech-sts3215-7v4-c044",
            "offer_id": "wowrobo-1-pack",
            "observation_id": "wowrobo-2026-10-04",
            "packs": 2,
            "expenditure": 31.98,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:feetech-sts3215-7v4-c046",
            "part_id": "feetech-sts3215-7v4-c046",
            "offer_id": "wowrobo-1-pack",
            "observation_id": "wowrobo-2026-10-04",
            "packs": 3,
            "expenditure": 47.97,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:psu-5v-4a-barrel",
            "part_id": "psu-5v-4a-barrel",
            "offer_id": "amazon-b087ly41pv",
            "observation_id": "amazon-2026-10-04",
            "packs": 2,
            "expenditure": 24.68,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:serial-bus-servo-driver-board",
            "part_id": "serial-bus-servo-driver-board",
            "offer_id": "amazon-b0ctmm4lwk",
            "observation_id": "amazon-2026-10-04",
            "packs": 2,
            "expenditure": 24.94,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:small-bar-clamp",
            "part_id": "small-bar-clamp",
            "offer_id": "amazon-b092l925j4",
            "observation_id": "amazon-2026-10-04",
            "packs": 2,
            "expenditure": 15.9,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:usb-a-to-usb-c-cable",
            "part_id": "usb-a-to-usb-c-cable",
            "offer_id": "amazon-b0b8nwllw2",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 7.19,
            "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": "so101-follower-7v4",
      "region": "US",
      "currency": "USD",
      "scenario_id": "baseline",
      "layers": {
        "purchased_parts": {
          "low": 116.36,
          "high": 118.4,
          "required_groups": 3,
          "priced_groups": 3,
          "unpriced": [],
          "oldest_price_date": "2026-10-04",
          "newest_price_date": "2026-10-04"
        },
        "printed_parts": {
          "low": 14.39,
          "high": 16.49,
          "required_groups": 1,
          "priced_groups": 1,
          "unpriced": [],
          "oldest_price_date": "2026-10-04",
          "newest_price_date": "2026-10-04",
          "consumption_low": 5.59,
          "consumption_high": 7.38
        },
        "fabricated_parts": {
          "low": 0,
          "high": 0,
          "required_groups": 0,
          "priced_groups": 0,
          "unpriced": [],
          "oldest_price_date": null,
          "newest_price_date": null
        },
        "power_and_cabling": {
          "low": 19.53,
          "high": 19.53,
          "required_groups": 2,
          "priced_groups": 2,
          "unpriced": [],
          "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": 0,
          "high": 0,
          "required_groups": 2,
          "priced_groups": 0,
          "unpriced": [
            "printer",
            "screwdrivers"
          ],
          "oldest_price_date": null,
          "newest_price_date": null
        },
        "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": 9,
        "priced_groups": 6,
        "ratio": 0.6667,
        "unpriced": [
          "host-computer",
          "printer",
          "screwdrivers"
        ]
      },
      "setup_readiness": "incomplete",
      "parts_total": {
        "low": 150.28,
        "high": null,
        "complete": false,
        "gaps": []
      },
      "required_total": {
        "low": 150.28,
        "high": null,
        "complete": false,
        "gaps": [
          "host-computer",
          "printer",
          "screwdrivers",
          "shipping_tax"
        ]
      },
      "price_dates": {
        "oldest": "2026-10-04",
        "newest": "2026-10-04",
        "upstream_reported_groups": []
      },
      "selected_observations": {
        "low": [
          {
            "group": "material:pla-plus-filament",
            "part_id": "pla-plus-filament",
            "offer_id": "amazon-b0d256s2rq",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 14.39,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:feetech-sts3215-7v4-c001",
            "part_id": "feetech-sts3215-7v4-c001",
            "offer_id": "wowrobo-1-pack",
            "observation_id": "wowrobo-2026-10-04",
            "packs": 6,
            "expenditure": 95.94,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:psu-5v-4a-barrel",
            "part_id": "psu-5v-4a-barrel",
            "offer_id": "amazon-b087ly41pv",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 12.34,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:serial-bus-servo-driver-board",
            "part_id": "serial-bus-servo-driver-board",
            "offer_id": "amazon-b0ctmm4lwk",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 12.47,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:small-bar-clamp",
            "part_id": "small-bar-clamp",
            "offer_id": "amazon-b092l925j4",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 7.95,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:usb-a-to-usb-c-cable",
            "part_id": "usb-a-to-usb-c-cable",
            "offer_id": "amazon-b0b8nwllw2",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 7.19,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          }
        ],
        "high": [
          {
            "group": "material:pla-plus-filament",
            "part_id": "pla-plus-filament",
            "offer_id": "amazon-b07ydn56f2",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 16.49,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:feetech-sts3215-7v4-c001",
            "part_id": "feetech-sts3215-7v4-c001",
            "offer_id": "wowrobo-1-pack",
            "observation_id": "wowrobo-2026-10-04",
            "packs": 6,
            "expenditure": 95.94,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:psu-5v-4a-barrel",
            "part_id": "psu-5v-4a-barrel",
            "offer_id": "amazon-b087ly41pv",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 12.34,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:serial-bus-servo-driver-board",
            "part_id": "serial-bus-servo-driver-board",
            "offer_id": "amazon-b0ctmm4lwk",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 12.47,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:small-bar-clamp",
            "part_id": "small-bar-clamp",
            "offer_id": "amazon-b0djnxf8wh",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 9.99,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:usb-a-to-usb-c-cable",
            "part_id": "usb-a-to-usb-c-cable",
            "offer_id": "amazon-b0b8nwllw2",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 7.19,
            "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": "so101-follower-7v4",
      "region": "US",
      "currency": "USD",
      "scenario_id": "owns-computer-and-printer",
      "layers": {
        "purchased_parts": {
          "low": 116.36,
          "high": 118.4,
          "required_groups": 3,
          "priced_groups": 3,
          "unpriced": [],
          "oldest_price_date": "2026-10-04",
          "newest_price_date": "2026-10-04"
        },
        "printed_parts": {
          "low": 14.39,
          "high": 16.49,
          "required_groups": 1,
          "priced_groups": 1,
          "unpriced": [],
          "oldest_price_date": "2026-10-04",
          "newest_price_date": "2026-10-04",
          "consumption_low": 5.59,
          "consumption_high": 7.38
        },
        "fabricated_parts": {
          "low": 0,
          "high": 0,
          "required_groups": 0,
          "priced_groups": 0,
          "unpriced": [],
          "oldest_price_date": null,
          "newest_price_date": null
        },
        "power_and_cabling": {
          "low": 19.53,
          "high": 19.53,
          "required_groups": 2,
          "priced_groups": 2,
          "unpriced": [],
          "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": 0,
          "high": 0,
          "required_groups": 2,
          "priced_groups": 1,
          "unpriced": [
            "screwdrivers"
          ],
          "oldest_price_date": null,
          "newest_price_date": null
        },
        "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": 7,
        "priced_groups": 6,
        "ratio": 0.8571,
        "unpriced": [
          "screwdrivers"
        ]
      },
      "setup_readiness": "incomplete",
      "parts_total": {
        "low": 150.28,
        "high": null,
        "complete": false,
        "gaps": []
      },
      "required_total": {
        "low": 150.28,
        "high": null,
        "complete": false,
        "gaps": [
          "screwdrivers",
          "shipping_tax"
        ]
      },
      "price_dates": {
        "oldest": "2026-10-04",
        "newest": "2026-10-04",
        "upstream_reported_groups": []
      },
      "selected_observations": {
        "low": [
          {
            "group": "material:pla-plus-filament",
            "part_id": "pla-plus-filament",
            "offer_id": "amazon-b0d256s2rq",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 14.39,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:feetech-sts3215-7v4-c001",
            "part_id": "feetech-sts3215-7v4-c001",
            "offer_id": "wowrobo-1-pack",
            "observation_id": "wowrobo-2026-10-04",
            "packs": 6,
            "expenditure": 95.94,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:psu-5v-4a-barrel",
            "part_id": "psu-5v-4a-barrel",
            "offer_id": "amazon-b087ly41pv",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 12.34,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:serial-bus-servo-driver-board",
            "part_id": "serial-bus-servo-driver-board",
            "offer_id": "amazon-b0ctmm4lwk",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 12.47,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:small-bar-clamp",
            "part_id": "small-bar-clamp",
            "offer_id": "amazon-b092l925j4",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 7.95,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:usb-a-to-usb-c-cable",
            "part_id": "usb-a-to-usb-c-cable",
            "offer_id": "amazon-b0b8nwllw2",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 7.19,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          }
        ],
        "high": [
          {
            "group": "material:pla-plus-filament",
            "part_id": "pla-plus-filament",
            "offer_id": "amazon-b07ydn56f2",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 16.49,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:feetech-sts3215-7v4-c001",
            "part_id": "feetech-sts3215-7v4-c001",
            "offer_id": "wowrobo-1-pack",
            "observation_id": "wowrobo-2026-10-04",
            "packs": 6,
            "expenditure": 95.94,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:psu-5v-4a-barrel",
            "part_id": "psu-5v-4a-barrel",
            "offer_id": "amazon-b087ly41pv",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 12.34,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:serial-bus-servo-driver-board",
            "part_id": "serial-bus-servo-driver-board",
            "offer_id": "amazon-b0ctmm4lwk",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 12.47,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:small-bar-clamp",
            "part_id": "small-bar-clamp",
            "offer_id": "amazon-b0djnxf8wh",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 9.99,
            "check_method": "manual",
            "price_observed_at": "2026-10-04"
          },
          {
            "group": "part:usb-a-to-usb-c-cable",
            "part_id": "usb-a-to-usb-c-cable",
            "offer_id": "amazon-b0b8nwllw2",
            "observation_id": "amazon-2026-10-04",
            "packs": 1,
            "expenditure": 7.19,
            "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": {
    "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": []
    },
    "feetech-sts3215-7v4-c001": {
      "name": "Feetech STS3215 7.4 V servo, 1/345 gear (C001)",
      "unit": "each",
      "spec_summary": "Serial bus servo, 7.4 V nominal, 1/345 gear reduction, variant C001.",
      "manufacturer": "Feetech",
      "mpn": "STS3215-C001",
      "identity_sources": [
        "S001",
        "S002"
      ],
      "substitutes": [],
      "notes": "Mixed pack combinations (e.g. one 5-pack plus singles) are not modelled; each pack size is a separate offer.",
      "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"
        },
        {
          "id": "S090",
          "type": "upstream",
          "title": "SO-ARM100 README commit history and price presence scan",
          "url": "https://github.com/TheRobotStudio/SO-ARM100/commits/main/README.md",
          "publisher": "TheRobotStudio",
          "locator": "Commits touching README.md; presence of 13.89, 121.94 and 229.88 at each revision",
          "finding": "The three figures are present in every revision from 2415d54 (2025-06-02) to the pinned revision.",
          "accessed_at": "2026-10-04",
          "attribution_note": "Scan produced with the GitHub contents API on 2026-10-04."
        },
        {
          "id": "S002",
          "type": "vendor",
          "title": "Feetech STS3215 C001 Servo – 7.4V 19.5KG 1/345 Servo for SO-ARM100/101",
          "url": "https://shop.wowrobo.com/products/feetech-sts3215-c001-servo-7-4v-19-5kg-high-torque-servo-for-so-arm100-101",
          "publisher": "WowRobo Robotics",
          "locator": "Product JSON (/products/<handle>.js): variants, prices, availability",
          "finding": "Lists single, 5-piece and 10-piece variants in USD with availability.",
          "accessed_at": "2026-10-04"
        },
        {
          "id": "S003",
          "type": "vendor",
          "title": "Feetech STS3215 C001 Servo – 7.4V 19.5KG 1/345 Servo for SO-ARM100/101 (product page)",
          "url": "https://shop.wowrobo.com/products/feetech-sts3215-c001-servo-7-4v-19-5kg-high-torque-servo-for-so-arm100-101",
          "publisher": "WowRobo Robotics",
          "locator": "Cart note",
          "finding": "States that discounts and shipping are calculated at checkout.",
          "accessed_at": "2026-10-04"
        },
        {
          "id": "S004",
          "type": "vendor",
          "title": "WowRobo contact / about page",
          "url": "https://shop.wowrobo.com/pages/contact",
          "publisher": "WowRobo Robotics",
          "locator": "Country/region selector; About Us",
          "finding": "Country selector includes United States (USD); manufacturing facility stated as Dongguan, China.",
          "accessed_at": "2026-10-04"
        }
      ],
      "offers": [
        {
          "offer_id": "upstream-readme-alibaba",
          "supplier": "Alibaba listing linked from upstream README",
          "url": "https://www.alibaba.com/product-detail/Top-Seller-Low-Cost-Feetech-STS3215_1600999461525.html",
          "region": "US",
          "observations": [
            {
              "observation_id": "readme-5f6d2b8",
              "currency": "USD",
              "pack_price": 13.89,
              "pack_qty": 1,
              "moq_packs": 1,
              "stock": "unknown",
              "source_checked_at": "2026-10-04",
              "price_observed_at": "2025-06-02",
              "price_date_basis": "earliest_unbroken_revision",
              "stock_observed_at": null,
              "check_method": "upstream_reported",
              "link_status": "unknown",
              "source_ids": [
                "S001",
                "S090"
              ],
              "shipping_note": "Upstream table states item prices only; delivery and tax not stated.",
              "notes": "Upstream README \"Unit Cost (US)\" column at pinned revision 5f6d2b8 (2026-09-23). The figures (13.89 servo; 121.94 and 229.88 totals) appear unchanged in every README revision from 2415d54 (2025-06-02) to the pinned revision (20 consecutive revisions; retained source evidence), so the price is dated to that earliest revision. Supplier MOQ not independently checked; the table prices single units for the listed amount."
            }
          ]
        },
        {
          "offer_id": "wowrobo-1-pack",
          "supplier": "WowRobo Robotics",
          "url": "https://shop.wowrobo.com/products/feetech-sts3215-c001-servo-7-4v-19-5kg-high-torque-servo-for-so-arm100-101?variant=48037674090713",
          "region": "US",
          "observations": [
            {
              "observation_id": "wowrobo-2026-10-04",
              "currency": "USD",
              "pack_price": 15.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",
                "S004"
              ],
              "shipping_note": "Sells to United States in USD; shipping calculated at checkout (amount not established); facility in Dongguan, China.",
              "notes": "Variant 'Single Piece(15.99/pcs)' available=True per product JSON; stock quantity not shown."
            }
          ]
        },
        {
          "offer_id": "wowrobo-5-pack",
          "supplier": "WowRobo Robotics",
          "url": "https://shop.wowrobo.com/products/feetech-sts3215-c001-servo-7-4v-19-5kg-high-torque-servo-for-so-arm100-101?variant=48037674123481",
          "region": "US",
          "observations": [
            {
              "observation_id": "wowrobo-2026-10-04",
              "currency": "USD",
              "pack_price": 74.95,
              "pack_qty": 5,
              "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",
                "S004"
              ],
              "shipping_note": "Sells to United States in USD; shipping calculated at checkout (amount not established); facility in Dongguan, China.",
              "notes": "Variant '5 Pieces(14.99/pcs)' available=True per product JSON; stock quantity not shown."
            }
          ]
        },
        {
          "offer_id": "wowrobo-10-pack",
          "supplier": "WowRobo Robotics",
          "url": "https://shop.wowrobo.com/products/feetech-sts3215-c001-servo-7-4v-19-5kg-high-torque-servo-for-so-arm100-101?variant=48037674156249",
          "region": "US",
          "observations": [
            {
              "observation_id": "wowrobo-2026-10-04",
              "currency": "USD",
              "pack_price": 139.9,
              "pack_qty": 10,
              "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",
                "S004"
              ],
              "shipping_note": "Sells to United States in USD; shipping calculated at checkout (amount not established); facility in Dongguan, China.",
              "notes": "Variant '10 Pieces(13.99/pcs)' available=True per product JSON; stock quantity not shown."
            }
          ]
        }
      ]
    },
    "feetech-sts3215-7v4-c044": {
      "name": "Feetech STS3215 7.4 V servo, 1/191 gear (C044)",
      "unit": "each",
      "spec_summary": "Serial bus servo, 7.4 V nominal, 1/191 gear reduction, variant C044.",
      "manufacturer": "Feetech",
      "mpn": "STS3215-C044",
      "identity_sources": [
        "S001",
        "S002"
      ],
      "substitutes": [],
      "notes": "Mixed pack combinations (e.g. one 5-pack plus singles) are not modelled; each pack size is a separate offer.",
      "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"
        },
        {
          "id": "S090",
          "type": "upstream",
          "title": "SO-ARM100 README commit history and price presence scan",
          "url": "https://github.com/TheRobotStudio/SO-ARM100/commits/main/README.md",
          "publisher": "TheRobotStudio",
          "locator": "Commits touching README.md; presence of 13.89, 121.94 and 229.88 at each revision",
          "finding": "The three figures are present in every revision from 2415d54 (2025-06-02) to the pinned revision.",
          "accessed_at": "2026-10-04",
          "attribution_note": "Scan produced with the GitHub contents API on 2026-10-04."
        },
        {
          "id": "S002",
          "type": "vendor",
          "title": "Feetech STS3215 C044 Servo – 7.4V 16KG 1/191 Servo for SO-ARM101",
          "url": "https://shop.wowrobo.com/products/feetech-sts3215-c044-servo-7-4v-27-4kg-1-191-servo-for-so-arm101",
          "publisher": "WowRobo Robotics",
          "locator": "Product JSON (/products/<handle>.js): variants, prices, availability",
          "finding": "Lists single, 5-piece and 10-piece variants in USD with availability.",
          "accessed_at": "2026-10-04"
        },
        {
          "id": "S003",
          "type": "vendor",
          "title": "Feetech STS3215 C044 Servo – 7.4V 16KG 1/191 Servo for SO-ARM101 (product page)",
          "url": "https://shop.wowrobo.com/products/feetech-sts3215-c044-servo-7-4v-27-4kg-1-191-servo-for-so-arm101",
          "publisher": "WowRobo Robotics",
          "locator": "Cart note",
          "finding": "States that discounts and shipping are calculated at checkout.",
          "accessed_at": "2026-10-04"
        },
        {
          "id": "S004",
          "type": "vendor",
          "title": "WowRobo contact / about page",
          "url": "https://shop.wowrobo.com/pages/contact",
          "publisher": "WowRobo Robotics",
          "locator": "Country/region selector; About Us",
          "finding": "Country selector includes United States (USD); manufacturing facility stated as Dongguan, China.",
          "accessed_at": "2026-10-04"
        }
      ],
      "offers": [
        {
          "offer_id": "upstream-readme-alibaba",
          "supplier": "Alibaba listing linked from upstream README",
          "url": "https://www.alibaba.com/product-detail/Feetech-STS3215-SO-ARM101-Servo-7_1601430747897.html",
          "region": "US",
          "observations": [
            {
              "observation_id": "readme-5f6d2b8",
              "currency": "USD",
              "pack_price": 13.89,
              "pack_qty": 1,
              "moq_packs": 1,
              "stock": "unknown",
              "source_checked_at": "2026-10-04",
              "price_observed_at": "2025-06-02",
              "price_date_basis": "earliest_unbroken_revision",
              "stock_observed_at": null,
              "check_method": "upstream_reported",
              "link_status": "unknown",
              "source_ids": [
                "S001",
                "S090"
              ],
              "shipping_note": "Upstream table states item prices only; delivery and tax not stated.",
              "notes": "Upstream README \"Unit Cost (US)\" column at pinned revision 5f6d2b8 (2026-09-23). The figures (13.89 servo; 121.94 and 229.88 totals) appear unchanged in every README revision from 2415d54 (2025-06-02) to the pinned revision (20 consecutive revisions; retained source evidence), so the price is dated to that earliest revision. Supplier MOQ not independently checked; the table prices single units for the listed amount."
            }
          ]
        },
        {
          "offer_id": "wowrobo-1-pack",
          "supplier": "WowRobo Robotics",
          "url": "https://shop.wowrobo.com/products/feetech-sts3215-c044-servo-7-4v-27-4kg-1-191-servo-for-so-arm101?variant=48037626708185",
          "region": "US",
          "observations": [
            {
              "observation_id": "wowrobo-2026-10-04",
              "currency": "USD",
              "pack_price": 15.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",
                "S004"
              ],
              "shipping_note": "Sells to United States in USD; shipping calculated at checkout (amount not established); facility in Dongguan, China.",
              "notes": "Variant 'Single Piece(15.99/pcs)' available=True per product JSON; stock quantity not shown."
            }
          ]
        },
        {
          "offer_id": "wowrobo-5-pack",
          "supplier": "WowRobo Robotics",
          "url": "https://shop.wowrobo.com/products/feetech-sts3215-c044-servo-7-4v-27-4kg-1-191-servo-for-so-arm101?variant=48037626740953",
          "region": "US",
          "observations": [
            {
              "observation_id": "wowrobo-2026-10-04",
              "currency": "USD",
              "pack_price": 74.95,
              "pack_qty": 5,
              "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",
                "S004"
              ],
              "shipping_note": "Sells to United States in USD; shipping calculated at checkout (amount not established); facility in Dongguan, China.",
              "notes": "Variant '5 Pieces(14.99/pcs)' available=True per product JSON; stock quantity not shown."
            }
          ]
        },
        {
          "offer_id": "wowrobo-10-pack",
          "supplier": "WowRobo Robotics",
          "url": "https://shop.wowrobo.com/products/feetech-sts3215-c044-servo-7-4v-27-4kg-1-191-servo-for-so-arm101?variant=48037626773721",
          "region": "US",
          "observations": [
            {
              "observation_id": "wowrobo-2026-10-04",
              "currency": "USD",
              "pack_price": 139.9,
              "pack_qty": 10,
              "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",
                "S004"
              ],
              "shipping_note": "Sells to United States in USD; shipping calculated at checkout (amount not established); facility in Dongguan, China.",
              "notes": "Variant '10 Pieces(13.99/pcs)' available=True per product JSON; stock quantity not shown."
            }
          ]
        }
      ]
    },
    "feetech-sts3215-7v4-c046": {
      "name": "Feetech STS3215 7.4 V servo, 1/147 gear (C046)",
      "unit": "each",
      "spec_summary": "Serial bus servo, 7.4 V nominal, 1/147 gear reduction, variant C046.",
      "manufacturer": "Feetech",
      "mpn": "STS3215-C046",
      "identity_sources": [
        "S001",
        "S002"
      ],
      "substitutes": [],
      "notes": "Mixed pack combinations (e.g. one 5-pack plus singles) are not modelled; each pack size is a separate offer.",
      "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"
        },
        {
          "id": "S090",
          "type": "upstream",
          "title": "SO-ARM100 README commit history and price presence scan",
          "url": "https://github.com/TheRobotStudio/SO-ARM100/commits/main/README.md",
          "publisher": "TheRobotStudio",
          "locator": "Commits touching README.md; presence of 13.89, 121.94 and 229.88 at each revision",
          "finding": "The three figures are present in every revision from 2415d54 (2025-06-02) to the pinned revision.",
          "accessed_at": "2026-10-04",
          "attribution_note": "Scan produced with the GitHub contents API on 2026-10-04."
        },
        {
          "id": "S002",
          "type": "vendor",
          "title": "Feetech STS3215 C046 Servo – 7.4V 14.4KG 1/147 Servo for SO-ARM101",
          "url": "https://shop.wowrobo.com/products/feetech-sts3215-c046-servo-7-4v-14-4kg-1-147-servo-for-so-arm101",
          "publisher": "WowRobo Robotics",
          "locator": "Product JSON (/products/<handle>.js): variants, prices, availability",
          "finding": "Lists single, 5-piece and 10-piece variants in USD with availability.",
          "accessed_at": "2026-10-04"
        },
        {
          "id": "S003",
          "type": "vendor",
          "title": "Feetech STS3215 C046 Servo – 7.4V 14.4KG 1/147 Servo for SO-ARM101 (product page)",
          "url": "https://shop.wowrobo.com/products/feetech-sts3215-c046-servo-7-4v-14-4kg-1-147-servo-for-so-arm101",
          "publisher": "WowRobo Robotics",
          "locator": "Cart note",
          "finding": "States that discounts and shipping are calculated at checkout.",
          "accessed_at": "2026-10-04"
        },
        {
          "id": "S004",
          "type": "vendor",
          "title": "WowRobo contact / about page",
          "url": "https://shop.wowrobo.com/pages/contact",
          "publisher": "WowRobo Robotics",
          "locator": "Country/region selector; About Us",
          "finding": "Country selector includes United States (USD); manufacturing facility stated as Dongguan, China.",
          "accessed_at": "2026-10-04"
        }
      ],
      "offers": [
        {
          "offer_id": "upstream-readme-alibaba",
          "supplier": "Alibaba listing linked from upstream README",
          "url": "https://www.alibaba.com/product-detail/Feetech-STS3215-SO-ARM101-Servo-7_1601430760797.html",
          "region": "US",
          "observations": [
            {
              "observation_id": "readme-5f6d2b8",
              "currency": "USD",
              "pack_price": 13.89,
              "pack_qty": 1,
              "moq_packs": 1,
              "stock": "unknown",
              "source_checked_at": "2026-10-04",
              "price_observed_at": "2025-06-02",
              "price_date_basis": "earliest_unbroken_revision",
              "stock_observed_at": null,
              "check_method": "upstream_reported",
              "link_status": "unknown",
              "source_ids": [
                "S001",
                "S090"
              ],
              "shipping_note": "Upstream table states item prices only; delivery and tax not stated.",
              "notes": "Upstream README \"Unit Cost (US)\" column at pinned revision 5f6d2b8 (2026-09-23). The figures (13.89 servo; 121.94 and 229.88 totals) appear unchanged in every README revision from 2415d54 (2025-06-02) to the pinned revision (20 consecutive revisions; retained source evidence), so the price is dated to that earliest revision. Supplier MOQ not independently checked; the table prices single units for the listed amount."
            }
          ]
        },
        {
          "offer_id": "wowrobo-1-pack",
          "supplier": "WowRobo Robotics",
          "url": "https://shop.wowrobo.com/products/feetech-sts3215-c046-servo-7-4v-14-4kg-1-147-servo-for-so-arm101?variant=48037665145049",
          "region": "US",
          "observations": [
            {
              "observation_id": "wowrobo-2026-10-04",
              "currency": "USD",
              "pack_price": 15.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",
                "S004"
              ],
              "shipping_note": "Sells to United States in USD; shipping calculated at checkout (amount not established); facility in Dongguan, China.",
              "notes": "Variant 'Single Piece(15.99/pcs)' available=True per product JSON; stock quantity not shown."
            }
          ]
        },
        {
          "offer_id": "wowrobo-5-pack",
          "supplier": "WowRobo Robotics",
          "url": "https://shop.wowrobo.com/products/feetech-sts3215-c046-servo-7-4v-14-4kg-1-147-servo-for-so-arm101?variant=48037665177817",
          "region": "US",
          "observations": [
            {
              "observation_id": "wowrobo-2026-10-04",
              "currency": "USD",
              "pack_price": 74.95,
              "pack_qty": 5,
              "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",
                "S004"
              ],
              "shipping_note": "Sells to United States in USD; shipping calculated at checkout (amount not established); facility in Dongguan, China.",
              "notes": "Variant '5 Pieces(14.99/pcs)' available=True per product JSON; stock quantity not shown."
            }
          ]
        },
        {
          "offer_id": "wowrobo-10-pack",
          "supplier": "WowRobo Robotics",
          "url": "https://shop.wowrobo.com/products/feetech-sts3215-c046-servo-7-4v-14-4kg-1-147-servo-for-so-arm101?variant=48037665210585",
          "region": "US",
          "observations": [
            {
              "observation_id": "wowrobo-2026-10-04",
              "currency": "USD",
              "pack_price": 139.9,
              "pack_qty": 10,
              "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",
                "S004"
              ],
              "shipping_note": "Sells to United States in USD; shipping calculated at checkout (amount not established); facility in Dongguan, China.",
              "notes": "Variant '10 Pieces(13.99/pcs)' available=True per product JSON; stock quantity not shown."
            }
          ]
        }
      ]
    },
    "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": []
    },
    "pla-plus-filament": {
      "name": "PLA+ filament, 1.75 mm",
      "unit": "g",
      "spec_summary": "PLA+ filament, 1.75 mm, as recommended by upstream print settings; any colour.",
      "manufacturer": null,
      "mpn": null,
      "identity_sources": [
        "S001"
      ],
      "substitutes": [],
      "notes": "Unit is grams; a 1 kg spool is a pack of 1000. Black listings recorded; colour does not change the requirement.",
      "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"
        },
        {
          "id": "S002",
          "type": "vendor",
          "title": "eSUN PLA+ Filament 1.75mm Black 1KG,PLA Pro 3D Printer Filament",
          "url": "https://www.amazon.com/dp/B0D256S2RQ",
          "publisher": "Amazon.com",
          "locator": "Buy box",
          "finding": "Current price and availability.",
          "accessed_at": "2026-10-04"
        },
        {
          "id": "S003",
          "type": "vendor",
          "title": "OVERTURE PLA Plus (PLA+) 3D Printer Filament 1.75mm, 1kg Black",
          "url": "https://www.amazon.com/dp/B07YDN56F2",
          "publisher": "Amazon.com",
          "locator": "Buy box",
          "finding": "Current price and availability.",
          "accessed_at": "2026-10-04"
        }
      ],
      "offers": [
        {
          "offer_id": "amazon-b0d256s2rq",
          "supplier": "eSUN Bio New Material",
          "url": "https://www.amazon.com/dp/B0D256S2RQ",
          "region": "US",
          "observations": [
            {
              "observation_id": "amazon-2026-10-04",
              "currency": "USD",
              "pack_price": 14.39,
              "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": [
                "S002"
              ],
              "shipping_note": "Amazon US listing; shipping and sales tax depend on address and membership, not established.",
              "notes": "Listing page fetched and buy box read on 2026-10-04; seller: eSUN Bio New Material."
            }
          ]
        },
        {
          "offer_id": "amazon-b07ydn56f2",
          "supplier": "OVERTURE 3D",
          "url": "https://www.amazon.com/dp/B07YDN56F2",
          "region": "US",
          "observations": [
            {
              "observation_id": "amazon-2026-10-04",
              "currency": "USD",
              "pack_price": 16.49,
              "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": [
                "S003"
              ],
              "shipping_note": "Amazon US listing; shipping and sales tax depend on address and membership, not established.",
              "notes": "Listing page fetched and buy box read on 2026-10-04; seller: OVERTURE 3D."
            }
          ]
        }
      ]
    },
    "precision-screwdriver-set": {
      "name": "Precision screwdriver set with Phillips #0 and #1",
      "unit": "each",
      "spec_summary": "Small Phillips/slotted precision screwdriver set; upstream recommends Phillips #0 and #1.",
      "manufacturer": null,
      "mpn": null,
      "identity_sources": [
        "S001",
        "S002"
      ],
      "substitutes": [],
      "notes": "Upstream says the exact set is not required; any set with Phillips #0 and #1 works.",
      "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"
        },
        {
          "id": "S090",
          "type": "upstream",
          "title": "SO-ARM100 README commit history and price presence scan",
          "url": "https://github.com/TheRobotStudio/SO-ARM100/commits/main/README.md",
          "publisher": "TheRobotStudio",
          "locator": "Commits touching README.md; presence of 13.89, 121.94 and 229.88 at each revision",
          "finding": "The three figures are present in every revision from 2415d54 (2025-06-02) to the pinned revision.",
          "accessed_at": "2026-10-04",
          "attribution_note": "Scan produced with the GitHub contents API on 2026-10-04."
        },
        {
          "id": "S002",
          "type": "vendor",
          "title": "Small Precision Phillips and Slotted Screwdriver Set 8 Sizes PH000 PH00 PH0 PH1 and Flat Head Slotted 1.5 2.0 2.5 3.0mm for Electronics Toys Computer, Watch Repair, Orange, SKZUSA0148",
          "url": "https://www.amazon.com/dp/B0DB227RTH",
          "publisher": "Amazon.com",
          "locator": "Buy box: price, availability, seller",
          "finding": "Current listing price and availability as fetched.",
          "accessed_at": "2026-10-04"
        }
      ],
      "offers": [
        {
          "offer_id": "upstream-readme-amazon",
          "supplier": "Amazon listing linked from upstream README",
          "url": "https://www.amazon.com/dp/B0DB227RTH",
          "region": "US",
          "observations": [
            {
              "observation_id": "readme-5f6d2b8",
              "currency": "USD",
              "pack_price": 6,
              "pack_qty": 1,
              "moq_packs": 1,
              "stock": "unknown",
              "source_checked_at": "2026-10-04",
              "price_observed_at": "2025-06-02",
              "price_date_basis": "earliest_unbroken_revision",
              "stock_observed_at": null,
              "check_method": "upstream_reported",
              "link_status": "unknown",
              "source_ids": [
                "S001",
                "S090"
              ],
              "shipping_note": "Upstream table states item prices only; delivery and tax not stated.",
              "notes": "Upstream README \"Unit Cost (US)\" column at pinned revision 5f6d2b8 (2026-09-23). The figures (13.89 servo; 121.94 and 229.88 totals) appear unchanged in every README revision from 2415d54 (2025-06-02) to the pinned revision (20 consecutive revisions; retained source evidence), so the price is dated to that earliest revision. Supplier MOQ not independently checked; the table prices single units for the listed amount."
            }
          ]
        },
        {
          "offer_id": "amazon-b0db227rth",
          "supplier": "Amazon.com marketplace seller (no featured offer)",
          "url": "https://www.amazon.com/dp/B0DB227RTH",
          "region": "US",
          "observations": [
            {
              "observation_id": "amazon-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": "Amazon US listing; shipping and sales tax depend on address and membership, not established.",
              "notes": "Listing page fetched and buy box read on 2026-10-04. No featured offer: currently unavailable."
            }
          ]
        }
      ]
    },
    "psu-5v-4a-barrel": {
      "name": "5 V 4 A power supply, 5.5 x 2.1 mm barrel",
      "unit": "each",
      "spec_summary": "5 V DC, 4 A switching adapter with 5.5 x 2.1 mm barrel plug, as linked by upstream for the 7.4 V servo build.",
      "manufacturer": null,
      "mpn": null,
      "identity_sources": [
        "S001",
        "S002"
      ],
      "substitutes": [],
      "notes": "",
      "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"
        },
        {
          "id": "S090",
          "type": "upstream",
          "title": "SO-ARM100 README commit history and price presence scan",
          "url": "https://github.com/TheRobotStudio/SO-ARM100/commits/main/README.md",
          "publisher": "TheRobotStudio",
          "locator": "Commits touching README.md; presence of 13.89, 121.94 and 229.88 at each revision",
          "finding": "The three figures are present in every revision from 2415d54 (2025-06-02) to the pinned revision.",
          "accessed_at": "2026-10-04",
          "attribution_note": "Scan produced with the GitHub contents API on 2026-10-04."
        },
        {
          "id": "S002",
          "type": "vendor",
          "title": "Facmogu 5V 4A AC to DC Power Supply Adapter, AC 100-240V to DC 5 Volt 4 Amp",
          "url": "https://www.amazon.com/dp/B087LY41PV",
          "publisher": "Amazon.com",
          "locator": "Buy box: price, availability, seller",
          "finding": "Current listing price and availability as fetched.",
          "accessed_at": "2026-10-04"
        }
      ],
      "offers": [
        {
          "offer_id": "upstream-readme-amazon",
          "supplier": "Amazon listing linked from upstream README",
          "url": "https://www.amazon.com/dp/B087LY41PV",
          "region": "US",
          "observations": [
            {
              "observation_id": "readme-5f6d2b8",
              "currency": "USD",
              "pack_price": 10,
              "pack_qty": 1,
              "moq_packs": 1,
              "stock": "unknown",
              "source_checked_at": "2026-10-04",
              "price_observed_at": "2025-06-02",
              "price_date_basis": "earliest_unbroken_revision",
              "stock_observed_at": null,
              "check_method": "upstream_reported",
              "link_status": "unknown",
              "source_ids": [
                "S001",
                "S090"
              ],
              "shipping_note": "Upstream table states item prices only; delivery and tax not stated.",
              "notes": "Upstream README \"Unit Cost (US)\" column at pinned revision 5f6d2b8 (2026-09-23). The figures (13.89 servo; 121.94 and 229.88 totals) appear unchanged in every README revision from 2415d54 (2025-06-02) to the pinned revision (20 consecutive revisions; retained source evidence), so the price is dated to that earliest revision. Supplier MOQ not independently checked; the table prices single units for the listed amount."
            }
          ]
        },
        {
          "offer_id": "amazon-b087ly41pv",
          "supplier": "Mo-gu",
          "url": "https://www.amazon.com/dp/B087LY41PV",
          "region": "US",
          "observations": [
            {
              "observation_id": "amazon-2026-10-04",
              "currency": "USD",
              "pack_price": 12.34,
              "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": "Listing page fetched and buy box read on 2026-10-04; seller: Mo-gu."
            }
          ]
        }
      ]
    },
    "serial-bus-servo-driver-board": {
      "name": "Serial bus servo driver board (Waveshare-type, USB)",
      "unit": "each",
      "spec_summary": "USB serial bus servo adapter/driver board for ST/SC series bus servos, as linked by upstream (ASIN B0CTMM4LWK).",
      "manufacturer": null,
      "mpn": null,
      "identity_sources": [
        "S001",
        "S002"
      ],
      "substitutes": [],
      "notes": "Upstream names this \"Motor Control Board\"; the listing is currently sold by a third-party seller.",
      "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"
        },
        {
          "id": "S090",
          "type": "upstream",
          "title": "SO-ARM100 README commit history and price presence scan",
          "url": "https://github.com/TheRobotStudio/SO-ARM100/commits/main/README.md",
          "publisher": "TheRobotStudio",
          "locator": "Commits touching README.md; presence of 13.89, 121.94 and 229.88 at each revision",
          "finding": "The three figures are present in every revision from 2415d54 (2025-06-02) to the pinned revision.",
          "accessed_at": "2026-10-04",
          "attribution_note": "Scan produced with the GitHub contents API on 2026-10-04."
        },
        {
          "id": "S002",
          "type": "vendor",
          "title": "Serial Bus Servo Driver Board, Support 253 ST/SC Serial Bus Servos",
          "url": "https://www.amazon.com/dp/B0CTMM4LWK",
          "publisher": "Amazon.com",
          "locator": "Buy box: price, availability, seller",
          "finding": "Current listing price and availability as fetched.",
          "accessed_at": "2026-10-04"
        }
      ],
      "offers": [
        {
          "offer_id": "upstream-readme-amazon",
          "supplier": "Amazon listing linked from upstream README",
          "url": "https://www.amazon.com/dp/B0CTMM4LWK",
          "region": "US",
          "observations": [
            {
              "observation_id": "readme-5f6d2b8",
              "currency": "USD",
              "pack_price": 10.6,
              "pack_qty": 1,
              "moq_packs": 1,
              "stock": "unknown",
              "source_checked_at": "2026-10-04",
              "price_observed_at": "2025-06-02",
              "price_date_basis": "earliest_unbroken_revision",
              "stock_observed_at": null,
              "check_method": "upstream_reported",
              "link_status": "unknown",
              "source_ids": [
                "S001",
                "S090"
              ],
              "shipping_note": "Upstream table states item prices only; delivery and tax not stated.",
              "notes": "Upstream README \"Unit Cost (US)\" column at pinned revision 5f6d2b8 (2026-09-23). The figures (13.89 servo; 121.94 and 229.88 totals) appear unchanged in every README revision from 2415d54 (2025-06-02) to the pinned revision (20 consecutive revisions; retained source evidence), so the price is dated to that earliest revision. Supplier MOQ not independently checked; the table prices single units for the listed amount."
            }
          ]
        },
        {
          "offer_id": "amazon-b0ctmm4lwk",
          "supplier": "Wonrabai Electronics",
          "url": "https://www.amazon.com/dp/B0CTMM4LWK",
          "region": "US",
          "observations": [
            {
              "observation_id": "amazon-2026-10-04",
              "currency": "USD",
              "pack_price": 12.47,
              "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": "Listing page fetched and buy box read on 2026-10-04; seller: Wonrabai Electronics."
            }
          ]
        }
      ]
    },
    "small-bar-clamp": {
      "name": "Small bar / trigger clamp for mounting the arm base",
      "unit": "each",
      "spec_summary": "Small quick-grip bar clamp (about 4-6 inch) used to clamp the arm base to a table; upstream links two different products.",
      "manufacturer": null,
      "mpn": null,
      "identity_sources": [
        "S001"
      ],
      "substitutes": [],
      "notes": "Different clamp products are treated as one generic need, as upstream does.",
      "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"
        },
        {
          "id": "S090",
          "type": "upstream",
          "title": "SO-ARM100 README commit history and price presence scan",
          "url": "https://github.com/TheRobotStudio/SO-ARM100/commits/main/README.md",
          "publisher": "TheRobotStudio",
          "locator": "Commits touching README.md; presence of 13.89, 121.94 and 229.88 at each revision",
          "finding": "The three figures are present in every revision from 2415d54 (2025-06-02) to the pinned revision.",
          "accessed_at": "2026-10-04",
          "attribution_note": "Scan produced with the GitHub contents API on 2026-10-04."
        },
        {
          "id": "S002",
          "type": "vendor",
          "title": "TAODAN 4PCS 4 Inch Trigger Quick Grip Clamps Bar Clamp Trigger Quick Grip Clamp Single Hand Ratchet Woodworking Clamp for Wood Bonding Processes",
          "url": "https://www.amazon.com/dp/B0DJNXF8WH",
          "publisher": "Amazon.com",
          "locator": "Buy box",
          "finding": "Current price and availability.",
          "accessed_at": "2026-10-04"
        },
        {
          "id": "S003",
          "type": "vendor",
          "title": "Mr. Pen- Bar Clamps for Woodworking, 6\", 2 Pack, Orange",
          "url": "https://www.amazon.com/dp/B092L925J4",
          "publisher": "Amazon.com",
          "locator": "Buy box",
          "finding": "Current price and availability.",
          "accessed_at": "2026-10-04"
        }
      ],
      "offers": [
        {
          "offer_id": "upstream-readme-taodan-4pack",
          "supplier": "Amazon listing linked from upstream README (two-arm table)",
          "url": "https://www.amazon.com/dp/B0DJNXF8WH",
          "region": "US",
          "observations": [
            {
              "observation_id": "readme-5f6d2b8",
              "currency": "USD",
              "pack_price": 9,
              "pack_qty": 4,
              "moq_packs": 1,
              "stock": "unknown",
              "source_checked_at": "2026-10-04",
              "price_observed_at": "2025-06-02",
              "price_date_basis": "earliest_unbroken_revision",
              "stock_observed_at": null,
              "check_method": "upstream_reported",
              "link_status": "unknown",
              "source_ids": [
                "S001",
                "S090"
              ],
              "shipping_note": "Upstream table states item prices only; delivery and tax not stated.",
              "notes": "Upstream README \"Unit Cost (US)\" column at pinned revision 5f6d2b8 (2026-09-23). The figures (13.89 servo; 121.94 and 229.88 totals) appear unchanged in every README revision from 2415d54 (2025-06-02) to the pinned revision (20 consecutive revisions; retained source evidence), so the price is dated to that earliest revision. Supplier MOQ not independently checked; the table prices single units for the listed amount."
            }
          ]
        },
        {
          "offer_id": "upstream-readme-mrpen-2pack",
          "supplier": "Amazon listing linked from upstream README (follower table)",
          "url": "https://www.amazon.com/dp/B092L925J4",
          "region": "US",
          "observations": [
            {
              "observation_id": "readme-5f6d2b8",
              "currency": "USD",
              "pack_price": 5,
              "pack_qty": 2,
              "moq_packs": 1,
              "stock": "unknown",
              "source_checked_at": "2026-10-04",
              "price_observed_at": "2025-06-02",
              "price_date_basis": "earliest_unbroken_revision",
              "stock_observed_at": null,
              "check_method": "upstream_reported",
              "link_status": "unknown",
              "source_ids": [
                "S001",
                "S090"
              ],
              "shipping_note": "Upstream table states item prices only; delivery and tax not stated.",
              "notes": "Upstream README \"Unit Cost (US)\" column at pinned revision 5f6d2b8 (2026-09-23). The figures (13.89 servo; 121.94 and 229.88 totals) appear unchanged in every README revision from 2415d54 (2025-06-02) to the pinned revision (20 consecutive revisions; retained source evidence), so the price is dated to that earliest revision. Supplier MOQ not independently checked; the table prices single units for the listed amount."
            }
          ]
        },
        {
          "offer_id": "amazon-b0djnxf8wh",
          "supplier": "Partstock",
          "url": "https://www.amazon.com/dp/B0DJNXF8WH",
          "region": "US",
          "observations": [
            {
              "observation_id": "amazon-2026-10-04",
              "currency": "USD",
              "pack_price": 9.99,
              "pack_qty": 4,
              "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": "Listing page fetched and buy box read on 2026-10-04; seller: Partstock."
            }
          ]
        },
        {
          "offer_id": "amazon-b092l925j4",
          "supplier": "Mr. Pen",
          "url": "https://www.amazon.com/dp/B092L925J4",
          "region": "US",
          "observations": [
            {
              "observation_id": "amazon-2026-10-04",
              "currency": "USD",
              "pack_price": 7.95,
              "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": [
                "S003"
              ],
              "shipping_note": "Amazon US listing; shipping and sales tax depend on address and membership, not established.",
              "notes": "Listing page fetched and buy box read on 2026-10-04; seller: Mr. Pen."
            }
          ]
        }
      ]
    },
    "usb-a-to-usb-c-cable": {
      "name": "USB-A to USB-C cable",
      "unit": "each",
      "spec_summary": "USB-A to USB-C data/charging cable, about 2 m; sold as a 2-pack.",
      "manufacturer": null,
      "mpn": null,
      "identity_sources": [
        "S001",
        "S002"
      ],
      "substitutes": [],
      "notes": "",
      "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"
        },
        {
          "id": "S090",
          "type": "upstream",
          "title": "SO-ARM100 README commit history and price presence scan",
          "url": "https://github.com/TheRobotStudio/SO-ARM100/commits/main/README.md",
          "publisher": "TheRobotStudio",
          "locator": "Commits touching README.md; presence of 13.89, 121.94 and 229.88 at each revision",
          "finding": "The three figures are present in every revision from 2415d54 (2025-06-02) to the pinned revision.",
          "accessed_at": "2026-10-04",
          "attribution_note": "Scan produced with the GitHub contents API on 2026-10-04."
        },
        {
          "id": "S002",
          "type": "vendor",
          "title": "etguuds 6.6ft USB A to USB C Cable, 2Pack Fast Charging Cord Type C Charger",
          "url": "https://www.amazon.com/dp/B0B8NWLLW2",
          "publisher": "Amazon.com",
          "locator": "Buy box: price, availability, seller",
          "finding": "Current listing price and availability as fetched.",
          "accessed_at": "2026-10-04"
        }
      ],
      "offers": [
        {
          "offer_id": "upstream-readme-amazon",
          "supplier": "Amazon listing linked from upstream README",
          "url": "https://www.amazon.com/dp/B0B8NWLLW2",
          "region": "US",
          "observations": [
            {
              "observation_id": "readme-5f6d2b8",
              "currency": "USD",
              "pack_price": 7,
              "pack_qty": 2,
              "moq_packs": 1,
              "stock": "unknown",
              "source_checked_at": "2026-10-04",
              "price_observed_at": "2025-06-02",
              "price_date_basis": "earliest_unbroken_revision",
              "stock_observed_at": null,
              "check_method": "upstream_reported",
              "link_status": "unknown",
              "source_ids": [
                "S001",
                "S090"
              ],
              "shipping_note": "Upstream table states item prices only; delivery and tax not stated.",
              "notes": "Upstream README \"Unit Cost (US)\" column at pinned revision 5f6d2b8 (2026-09-23). The figures (13.89 servo; 121.94 and 229.88 totals) appear unchanged in every README revision from 2415d54 (2025-06-02) to the pinned revision (20 consecutive revisions; retained source evidence), so the price is dated to that earliest revision. Supplier MOQ not independently checked; the table prices single units for the listed amount."
            }
          ]
        },
        {
          "offer_id": "amazon-b0b8nwllw2",
          "supplier": "etguuds",
          "url": "https://www.amazon.com/dp/B0B8NWLLW2",
          "region": "US",
          "observations": [
            {
              "observation_id": "amazon-2026-10-04",
              "currency": "USD",
              "pack_price": 7.19,
              "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": "Listing page fetched and buy box read on 2026-10-04; seller: etguuds."
            }
          ]
        }
      ]
    }
  },
  "sources": [
    {
      "id": "S001",
      "title": "SO-101 documentation",
      "url": "https://huggingface.co/docs/lerobot/so101",
      "finding": "A printable robot arm for teleoperation and robot-learning experiments.",
      "type": "upstream",
      "locator": "Overview",
      "accessed_at": "2026-09-29",
      "publisher": "Hugging Face / LeRobot contributors",
      "attribution_note": ""
    },
    {
      "id": "S002",
      "title": "SO-101 repository revision",
      "url": "https://github.com/TheRobotStudio/SO-ARM100/commit/5f6d2b876a53a4872e405b991dd925556c9e38a4",
      "finding": "Commit date refers to this repository default branch; it is not a hardware revision or a release date.",
      "type": "upstream",
      "locator": "5f6d2b876a53a4872e405b991dd925556c9e38a4",
      "accessed_at": "2026-09-29",
      "publisher": "TheRobotStudio / SO-ARM contributors",
      "attribution_note": ""
    },
    {
      "id": "S003",
      "title": "Repository license",
      "url": "https://github.com/TheRobotStudio/SO-ARM100/blob/5f6d2b876a53a4872e405b991dd925556c9e38a4/LICENSE",
      "finding": "Repository-level license: Apache-2.0. Coverage of individual artifacts still needs review.",
      "type": "license",
      "locator": "LICENSE file",
      "accessed_at": "2026-09-29",
      "publisher": "TheRobotStudio / SO-ARM contributors",
      "attribution_note": ""
    },
    {
      "id": "S005",
      "title": "SO-101 upstream bill of materials",
      "url": "https://github.com/TheRobotStudio/SO-ARM100/blob/5f6d2b876a53a4872e405b991dd925556c9e38a4/README.md",
      "finding": "US-column reference subtotals: $121.94 for one follower and $229.88 for follower plus leader. Printing is described separately. Vendor prices, stock, delivery and taxes have not been re-quoted.",
      "type": "upstream",
      "publisher": "TheRobotStudio / SO-ARM contributors",
      "attribution_note": "",
      "accessed_at": "2026-09-29",
      "locator": "Parts for One Follower Arm; Parts For Two Arms; Printing the Parts"
    },
    {
      "id": "S006",
      "title": "SO-101 design files",
      "url": "https://github.com/TheRobotStudio/SO-ARM100/tree/5f6d2b876a53a4872e405b991dd925556c9e38a4/STL",
      "finding": "Printable mechanical files are available in the STL directory; STEP files are also present in the repository.",
      "type": "upstream",
      "publisher": "TheRobotStudio / SO-ARM contributors",
      "attribution_note": "",
      "accessed_at": "2026-09-29",
      "locator": "STL and STEP directories"
    },
    {
      "id": "S007",
      "title": "LeRobot software license",
      "url": "https://github.com/huggingface/lerobot/blob/e0d50211ef236143ae867228662b7dfaba554f02/LICENSE",
      "finding": "LeRobot repository root license is Apache-2.0 with third-party notices.",
      "type": "license",
      "publisher": "Hugging Face / LeRobot contributors",
      "attribution_note": "",
      "accessed_at": "2026-09-29",
      "locator": "LICENSE"
    },
    {
      "id": "S090",
      "title": "Build-file and software-check receipt",
      "url": "https://opensourcerobotics.dev/assets/build-guides/so-101-checks.json",
      "type": "secondary",
      "publisher": "Open Source Robotics",
      "locator": "Pinned source / audit snapshot, September 30, 2026",
      "finding": "Public receipt of the limited file/software checks, exact environment and untested hardware scope.",
      "accessed_at": "2026-09-30"
    },
    {
      "id": "S091",
      "title": "Configuration-specific print-file manifest",
      "url": "https://opensourcerobotics.dev/assets/build-guides/so-101-print-manifest.json",
      "type": "secondary",
      "publisher": "Open Source Robotics",
      "locator": "Pinned source / audit snapshot, September 30, 2026",
      "finding": "Configuration-specific print-file paths, quantities where reconciled, immutable upstream download links and SHA-256 hashes.",
      "accessed_at": "2026-09-30"
    },
    {
      "id": "S008",
      "title": "LeRobot v0.6.1 so101.mdx",
      "url": "https://github.com/huggingface/lerobot/blob/7e241bd630a3719a56157a497ce5d08f244784f1/docs/source/so101.mdx",
      "type": "upstream",
      "publisher": "Hugging Face / LeRobot contributors",
      "locator": "Pinned source / audit snapshot, September 30, 2026",
      "finding": "Configure motors individually, assemble the selected leader and follower, then calibrate each arm using its actual port and ID.",
      "accessed_at": "2026-09-30"
    },
    {
      "id": "S009",
      "title": "LeRobot v0.6.1 installation.mdx",
      "url": "https://github.com/huggingface/lerobot/blob/7e241bd630a3719a56157a497ce5d08f244784f1/docs/source/installation.mdx",
      "type": "upstream",
      "publisher": "Hugging Face / LeRobot contributors",
      "locator": "Pinned source / audit snapshot, September 30, 2026",
      "finding": "Versioned installation instructions specify Python and platform-dependent dependencies; workflow extras select the required features.",
      "accessed_at": "2026-09-30"
    },
    {
      "id": "S010",
      "title": "LeRobot v0.6.1 SO-101 teleoperation instructions",
      "url": "https://github.com/huggingface/lerobot/blob/7e241bd630a3719a56157a497ce5d08f244784f1/docs/source/il_robots.mdx",
      "type": "upstream",
      "publisher": "Hugging Face / LeRobot contributors",
      "locator": "Teleoperate section, pinned v0.6.1",
      "finding": "SO-101 leader/follower teleoperation commands use the same IDs as calibration; the rest of the tutorial covers optional recording and training.",
      "accessed_at": "2026-09-30"
    },
    {
      "id": "S092",
      "type": "secondary",
      "title": "SO-101 US cost and sourcing estimate receipt",
      "url": "https://opensourcerobotics.dev/assets/build-guides/so-101-cost-estimate.json",
      "publisher": "Open Source Robotics",
      "locator": "Rollups as of 2026-10-04",
      "finding": "Line-level US offers, price dates, printed-part slicing and rollups for both SO-101 configurations.",
      "accessed_at": "2026-10-04"
    },
    {
      "id": "S093",
      "title": "Want to help with building robots? (YouTube video)",
      "url": "https://www.youtube.com/watch?v=dss8E3DG2rA",
      "finding": "Video 'Want to help with building robots?' uploaded by the YouTube channel 'therobotstudio' (https://www.youtube.com/@therobotstudio). Linked from README.md in TheRobotStudio/SO-ARM100 at revision 5f6d2b876a53. The uploader is treated as the project's own channel because its About page links to the maintainer domain therobotstudio.com. The video is listed as a demonstration link; its content was not reviewed for technical accuracy.",
      "type": "maintainer",
      "locator": "YouTube video; linked from README.md in TheRobotStudio/SO-ARM100 at revision 5f6d2b876a53",
      "accessed_at": "2026-10-04",
      "publisher": "therobotstudio",
      "attribution_note": ""
    },
    {
      "id": "S095",
      "title": "therobotstudio (YouTube channel)",
      "url": "https://www.youtube.com/channel/UC7r_cmRhdfrTGcatjX2aIPA",
      "finding": "YouTube channel 'therobotstudio' (/@therobotstudio) 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 therobotstudio.com. The preserved upstream sources did not link this channel. Individual videos were not reviewed for technical accuracy.",
      "type": "maintainer",
      "locator": "YouTube channel /@therobotstudio; found by YouTube search, verified from its About page",
      "accessed_at": "2026-10-04",
      "publisher": "therobotstudio",
      "attribution_note": ""
    }
  ]
}
