{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/dripmetrics-ai/json-schema/dripmetrics-ai-aerodrome-amm-flow-impact-result-schema.json",
  "title": "AerodromeAmmFlowImpactResult",
  "x-generated": "2026-11-06",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/dripmetrics-ai-openapi.json#/components/schemas/AerodromeAmmFlowImpactResult",
  "type": "object",
  "properties": {
    "metric": {
      "type": "string",
      "const": "amm-flow-impact"
    },
    "methodologyVersion": {
      "type": "string",
      "const": "aerodrome-amm-flow-impact-v1"
    },
    "pair": {
      "type": "string",
      "enum": [
        "B20:SPCX/USDC",
        "B20:MSTR/USDC",
        "B20:SNDK/USDC",
        "B20:MSFT/USDC",
        "B20:TSLA/USDC"
      ]
    },
    "exchange": {
      "type": "string",
      "const": "aerodrome"
    },
    "chain": {
      "type": "string",
      "const": "base"
    },
    "chainId": {
      "type": "integer",
      "const": 8453
    },
    "interval": {
      "type": "string",
      "const": "1h"
    },
    "intervalStart": {
      "type": "string",
      "format": "date-time"
    },
    "intervalEnd": {
      "type": "string",
      "format": "date-time"
    },
    "intervalEndSemantics": {
      "type": "string",
      "const": "exclusive"
    },
    "value": {
      "type": "number",
      "description": "OLS slope in basis points per 10,000 USDC of signed minute flow."
    },
    "units": {
      "type": "object",
      "properties": {
        "value": {
          "type": "string",
          "const": "basis points per 10,000 USDC signed flow"
        },
        "slopeStandardError": {
          "type": "string",
          "const": "basis points per 10,000 USDC signed flow"
        },
        "slopeTStatistic": {
          "type": "string",
          "const": "dimensionless"
        },
        "signedQuoteFlow": {
          "type": "string",
          "const": "USDC"
        },
        "lastPrice": {
          "type": "string",
          "const": "USDC per base token"
        },
        "signedFlowMagnitudeUsdPer1Bp": {
          "type": "string",
          "const": "USDC"
        }
      },
      "required": [
        "value",
        "slopeStandardError",
        "slopeTStatistic",
        "signedQuoteFlow",
        "lastPrice",
        "signedFlowMagnitudeUsdPer1Bp"
      ],
      "additionalProperties": false
    },
    "components": {
      "type": "object",
      "properties": {
        "impactBpsPer10kUsd": {
          "type": "number"
        },
        "slopeStandardErrorBpsPer10kUsd": {
          "type": "number",
          "minimum": 0
        },
        "slopeTStatistic": {
          "type": [
            "number",
            "null"
          ],
          "description": "Signed slope divided by its standard error; null only when the published standard error rounds to zero."
        },
        "interceptBps": {
          "type": "number"
        },
        "rSquared": {
          "type": "number"
        },
        "meanSignedQuoteFlowUsd": {
          "type": "number"
        },
        "totalAbsoluteSignedQuoteFlowUsd": {
          "type": "string"
        },
        "lastPrice": {
          "type": "string"
        },
        "signedFlowMagnitudeUsdPer1Bp": {
          "type": [
            "number",
            "null"
          ],
          "minimum": 0
        }
      },
      "required": [
        "impactBpsPer10kUsd",
        "slopeStandardErrorBpsPer10kUsd",
        "slopeTStatistic",
        "interceptBps",
        "rSquared",
        "meanSignedQuoteFlowUsd",
        "totalAbsoluteSignedQuoteFlowUsd",
        "lastPrice",
        "signedFlowMagnitudeUsdPer1Bp"
      ],
      "additionalProperties": false
    },
    "sampleSize": {
      "type": "object",
      "properties": {
        "poolExecutionCount": {
          "type": "integer",
          "minimum": 20
        },
        "transactionCount": {
          "type": "integer",
          "minimum": 1
        },
        "activeMinutes": {
          "type": "integer",
          "minimum": 1,
          "maximum": 60
        },
        "usableMinutes": {
          "type": "integer",
          "minimum": 5,
          "maximum": 60
        },
        "regressionDegreesOfFreedom": {
          "type": "integer",
          "minimum": 3,
          "maximum": 58
        },
        "minimumExecutionCount": {
          "type": "integer",
          "const": 20
        },
        "minimumUsableMinutes": {
          "type": "integer",
          "const": 5
        },
        "minimumExecutionsPerUsableMinute": {
          "type": "integer",
          "const": 2
        }
      },
      "required": [
        "poolExecutionCount",
        "transactionCount",
        "activeMinutes",
        "usableMinutes",
        "regressionDegreesOfFreedom",
        "minimumExecutionCount",
        "minimumUsableMinutes",
        "minimumExecutionsPerUsableMinute"
      ],
      "additionalProperties": false
    },
    "methodology": {
      "type": "object",
      "properties": {
        "minuteAlignment": {
          "type": "string",
          "const": "utc"
        },
        "priceChange": {
          "type": "string",
          "const": "within_minute_log_return_bps"
        },
        "signedFlow": {
          "type": "string",
          "const": "buy_minus_sell_usdc_in_10000_usdc_units"
        },
        "regression": {
          "type": "string",
          "const": "ols_with_intercept"
        },
        "emptyMinuteTreatment": {
          "type": "string",
          "const": "omitted"
        },
        "poolModel": {
          "type": "string",
          "const": "slipstream_concentrated_liquidity"
        },
        "sampleSelection": {
          "type": "string",
          "const": "utc_minutes_with_at_least_two_executions"
        },
        "selectionEffect": {
          "type": "string",
          "const": "describes_busier_minutes"
        },
        "slopeTStatisticNullMeaning": {
          "type": "string",
          "const": "standard_error_rounds_to_zero"
        },
        "interpretation": {
          "type": "string",
          "const": "amm_depth_and_curvature_proxy_not_informed_trading"
        }
      },
      "required": [
        "minuteAlignment",
        "priceChange",
        "signedFlow",
        "regression",
        "emptyMinuteTreatment",
        "poolModel",
        "sampleSelection",
        "selectionEffect",
        "slopeTStatisticNullMeaning",
        "interpretation"
      ],
      "additionalProperties": false
    },
    "quality": {
      "type": "object",
      "additionalProperties": true
    },
    "source": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "metric",
    "methodologyVersion",
    "pair",
    "exchange",
    "chain",
    "chainId",
    "interval",
    "intervalStart",
    "intervalEnd",
    "intervalEndSemantics",
    "value",
    "units",
    "components",
    "sampleSize",
    "methodology",
    "quality",
    "source"
  ],
  "additionalProperties": false
}