{
  "tool_id": "order-book-replay",
  "slug": "order-book-replay",
  "path": "/order-book-replay/",
  "mode": "client_side",
  "usage": "Client-side visualizer. Open https://aifinhub.io/order-book-replay/ and drop a Level-2 CSV. The book reconstructs tick-by-tick in the browser. No upload, no backend.",
  "methodology": "https://aifinhub.io/methodology/order-book-replay/",
  "sample_input": {
    "tool": "order-book-replay",
    "price": 0,
    "size": 0,
    "depth_bps": 10,
    "snapshots": [
      {
        "t": 0,
        "bids": [
          {
            "price": 100.01,
            "size": 200
          },
          {
            "price": 100,
            "size": 350
          },
          {
            "price": 99.99,
            "size": 500
          },
          {
            "price": 99.98,
            "size": 650
          },
          {
            "price": 99.97,
            "size": 800
          }
        ],
        "asks": [
          {
            "price": 100.03,
            "size": 180
          },
          {
            "price": 100.04,
            "size": 320
          },
          {
            "price": 100.05,
            "size": 460
          },
          {
            "price": 100.06,
            "size": 600
          },
          {
            "price": 100.07,
            "size": 740
          }
        ]
      },
      {
        "t": 500,
        "bids": [
          {
            "price": 100.01,
            "size": 250
          },
          {
            "price": 100,
            "size": 400
          },
          {
            "price": 99.99,
            "size": 550
          },
          {
            "price": 99.98,
            "size": 700
          },
          {
            "price": 99.97,
            "size": 850
          }
        ],
        "asks": [
          {
            "price": 100.03,
            "size": 220
          },
          {
            "price": 100.04,
            "size": 360
          },
          {
            "price": 100.05,
            "size": 500
          },
          {
            "price": 100.06,
            "size": 640
          },
          {
            "price": 100.07,
            "size": 780
          }
        ]
      },
      {
        "t": 1000,
        "bids": [
          {
            "price": 100.03,
            "size": 300
          },
          {
            "price": 100.02,
            "size": 450
          },
          {
            "price": 100.01,
            "size": 600
          },
          {
            "price": 100,
            "size": 750
          },
          {
            "price": 99.99,
            "size": 900
          }
        ],
        "asks": [
          {
            "price": 100.05,
            "size": 260
          },
          {
            "price": 100.06,
            "size": 400
          },
          {
            "price": 100.07,
            "size": 540
          },
          {
            "price": 100.08,
            "size": 680
          },
          {
            "price": 100.09,
            "size": 820
          }
        ]
      },
      {
        "t": 1500,
        "bids": [
          {
            "price": 100.03,
            "size": 200
          },
          {
            "price": 100.02,
            "size": 350
          },
          {
            "price": 100.01,
            "size": 500
          },
          {
            "price": 100,
            "size": 650
          },
          {
            "price": 99.99,
            "size": 800
          }
        ],
        "asks": [
          {
            "price": 100.05,
            "size": 300
          },
          {
            "price": 100.06,
            "size": 440
          },
          {
            "price": 100.07,
            "size": 580
          },
          {
            "price": 100.08,
            "size": 720
          },
          {
            "price": 100.09,
            "size": 860
          }
        ]
      },
      {
        "t": 2000,
        "bids": [
          {
            "price": 100.03,
            "size": 250
          },
          {
            "price": 100.02,
            "size": 400
          },
          {
            "price": 100.01,
            "size": 550
          },
          {
            "price": 100,
            "size": 700
          },
          {
            "price": 99.99,
            "size": 850
          }
        ],
        "asks": [
          {
            "price": 100.05,
            "size": 180
          },
          {
            "price": 100.06,
            "size": 320
          },
          {
            "price": 100.07,
            "size": 460
          },
          {
            "price": 100.08,
            "size": 600
          },
          {
            "price": 100.09,
            "size": 740
          }
        ]
      },
      {
        "t": 2500,
        "bids": [
          {
            "price": 100.04,
            "size": 300
          },
          {
            "price": 100.03,
            "size": 450
          },
          {
            "price": 100.02,
            "size": 600
          },
          {
            "price": 100.01,
            "size": 750
          },
          {
            "price": 100,
            "size": 900
          }
        ],
        "asks": [
          {
            "price": 100.06,
            "size": 220
          },
          {
            "price": 100.07,
            "size": 360
          },
          {
            "price": 100.08,
            "size": 500
          },
          {
            "price": 100.09,
            "size": 640
          },
          {
            "price": 100.1,
            "size": 780
          }
        ]
      },
      {
        "t": 3000,
        "bids": [
          {
            "price": 100.05,
            "size": 200
          },
          {
            "price": 100.04,
            "size": 350
          },
          {
            "price": 100.03,
            "size": 500
          },
          {
            "price": 100.02,
            "size": 650
          },
          {
            "price": 100.01,
            "size": 800
          }
        ],
        "asks": [
          {
            "price": 100.07,
            "size": 260
          },
          {
            "price": 100.08,
            "size": 400
          },
          {
            "price": 100.09,
            "size": 540
          },
          {
            "price": 100.1,
            "size": 680
          },
          {
            "price": 100.11,
            "size": 820
          }
        ]
      },
      {
        "t": 3500,
        "bids": [
          {
            "price": 100.06,
            "size": 250
          },
          {
            "price": 100.05,
            "size": 400
          },
          {
            "price": 100.04,
            "size": 550
          },
          {
            "price": 100.03,
            "size": 700
          },
          {
            "price": 100.02,
            "size": 850
          }
        ],
        "asks": [
          {
            "price": 100.08,
            "size": 300
          },
          {
            "price": 100.09,
            "size": 440
          },
          {
            "price": 100.1,
            "size": 580
          },
          {
            "price": 100.11,
            "size": 720
          },
          {
            "price": 100.12,
            "size": 860
          }
        ]
      },
      {
        "t": 4000,
        "bids": [
          {
            "price": 100.05,
            "size": 300
          },
          {
            "price": 100.04,
            "size": 450
          },
          {
            "price": 100.03,
            "size": 600
          },
          {
            "price": 100.02,
            "size": 750
          },
          {
            "price": 100.01,
            "size": 900
          }
        ],
        "asks": [
          {
            "price": 100.07,
            "size": 180
          },
          {
            "price": 100.08,
            "size": 320
          },
          {
            "price": 100.09,
            "size": 460
          },
          {
            "price": 100.1,
            "size": 600
          },
          {
            "price": 100.11,
            "size": 740
          }
        ]
      },
      {
        "t": 4500,
        "bids": [
          {
            "price": 100.06,
            "size": 200
          },
          {
            "price": 100.05,
            "size": 350
          },
          {
            "price": 100.04,
            "size": 500
          },
          {
            "price": 100.03,
            "size": 650
          },
          {
            "price": 100.02,
            "size": 800
          }
        ],
        "asks": [
          {
            "price": 100.08,
            "size": 220
          },
          {
            "price": 100.09,
            "size": 360
          },
          {
            "price": 100.1,
            "size": 500
          },
          {
            "price": 100.11,
            "size": 640
          },
          {
            "price": 100.12,
            "size": 780
          }
        ]
      },
      {
        "t": 5000,
        "bids": [
          {
            "price": 100.06,
            "size": 250
          },
          {
            "price": 100.05,
            "size": 400
          },
          {
            "price": 100.04,
            "size": 550
          },
          {
            "price": 100.03,
            "size": 700
          },
          {
            "price": 100.02,
            "size": 850
          }
        ],
        "asks": [
          {
            "price": 100.08,
            "size": 260
          },
          {
            "price": 100.09,
            "size": 400
          },
          {
            "price": 100.1,
            "size": 540
          },
          {
            "price": 100.11,
            "size": 680
          },
          {
            "price": 100.12,
            "size": 820
          }
        ]
      },
      {
        "t": 5500,
        "bids": [
          {
            "price": 100.04,
            "size": 300
          },
          {
            "price": 100.03,
            "size": 450
          },
          {
            "price": 100.02,
            "size": 600
          },
          {
            "price": 100.01,
            "size": 750
          },
          {
            "price": 100,
            "size": 900
          }
        ],
        "asks": [
          {
            "price": 100.06,
            "size": 300
          },
          {
            "price": 100.07,
            "size": 440
          },
          {
            "price": 100.08,
            "size": 580
          },
          {
            "price": 100.09,
            "size": 720
          },
          {
            "price": 100.1,
            "size": 860
          }
        ]
      }
    ]
  },
  "input_schema": {
    "type": "object",
    "properties": {
      "tool": {
        "type": "string"
      },
      "price": {
        "type": "number"
      },
      "size": {
        "type": "number"
      },
      "depth_bps": {
        "type": "number"
      }
    },
    "required": [
      "tool",
      "price",
      "size",
      "depth_bps"
    ]
  },
  "output_schema": {
    "type": "object",
    "properties": {
      "animation_ready": {
        "type": "boolean"
      },
      "detected_event_types": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "tick_count": {
        "type": "integer"
      },
      "duration_seconds": {
        "type": "number"
      }
    }
  }
}
