{
  "mode": "history",
  "start": "2025-01-01T00:00:00+08:00",
  "end": "2026-01-26T00:00:00+08:00",
  "windows": [
    {
      "mode": "window",
      "window": {
        "start": "2025-01-01T00:00:00+08:00",
        "end": "2025-02-01T00:00:00+08:00",
        "label": "month_2025-01-01",
        "granularity": "month"
      },
      "api_to_ods": {
        "window_split_unit": "month",
        "window_compensation_hours": 2,
        "start": "2024-12-31T22:00:00+08:00",
        "end": "2025-02-01T02:00:00+08:00",
        "cutoff": null,
        "window_days": 31,
        "window_hours": 0,
        "page_size": 200,
        "chunk_size": 500,
        "sample_limit": 50,
        "store_id": 2790685415443269,
        "base_url": "https://pc.ficoo.vip/apiprod/admin/v1/",
        "results": [
          {
            "task_code": "ODS_ASSISTANT_ACCOUNT",
            "table": "billiards_ods.assistant_accounts_master",
            "endpoint": "/PersonnelManagement/SearchAssistantInfo",
            "pk_columns": [
              "id"
            ],
            "records": 204,
            "records_with_pk": 204,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_RECORDS",
            "table": "billiards_ods.settlement_records",
            "endpoint": "/Site/GetAllOrderSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_USE",
            "table": "billiards_ods.table_fee_transactions",
            "endpoint": "/Site/GetSiteTableOrderDetails",
            "pk_columns": [
              "id"
            ],
            "records": 10071,
            "records_with_pk": 10071,
            "missing": 1,
            "missing_samples": [
              {
                "id": 3067211608837061
              }
            ],
            "pages": 51,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_LEDGER",
            "table": "billiards_ods.assistant_service_records",
            "endpoint": "/AssistantPerformance/GetOrderAssistantDetails",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_ABOLISH",
            "table": "billiards_ods.assistant_cancellation_records",
            "endpoint": "/AssistantPerformance/GetAbolitionAssistant",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS_SALES",
            "table": "billiards_ods.store_goods_sales_records",
            "endpoint": "/TenantGoods/GetGoodsSalesList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PAYMENT",
            "table": "billiards_ods.payment_transactions",
            "endpoint": "/PayLog/GetPayLogListPage",
            "pk_columns": [
              "id"
            ],
            "records": 11928,
            "records_with_pk": 11928,
            "missing": 2,
            "missing_samples": [
              {
                "id": 3067211605281733
              },
              {
                "id": 3067210806709061
              }
            ],
            "pages": 60,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_REFUND",
            "table": "billiards_ods.refund_transactions",
            "endpoint": "/Order/GetRefundPayLogList",
            "pk_columns": [
              "id"
            ],
            "records": 38,
            "records_with_pk": 38,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PLATFORM_COUPON",
            "table": "billiards_ods.platform_coupon_redemption_records",
            "endpoint": "/Promotion/GetOfflineCouponConsumePageList",
            "pk_columns": [
              "id"
            ],
            "records": 16953,
            "records_with_pk": 16953,
            "missing": 0,
            "missing_samples": [],
            "pages": 85,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER",
            "table": "billiards_ods.member_profiles",
            "endpoint": "/MemberProfile/GetTenantMemberList",
            "pk_columns": [
              "id"
            ],
            "records": 556,
            "records_with_pk": 556,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_CARD",
            "table": "billiards_ods.member_stored_value_cards",
            "endpoint": "/MemberProfile/GetTenantMemberCardList",
            "pk_columns": [
              "id"
            ],
            "records": 945,
            "records_with_pk": 945,
            "missing": 0,
            "missing_samples": [],
            "pages": 5,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_BALANCE",
            "table": "billiards_ods.member_balance_changes",
            "endpoint": "/MemberProfile/GetMemberCardBalanceChange",
            "pk_columns": [
              "id"
            ],
            "records": 2474,
            "records_with_pk": 2474,
            "missing": 2,
            "missing_samples": [
              {
                "id": 3067211605855173
              },
              {
                "id": 3067210808216389
              }
            ],
            "pages": 13,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_RECHARGE_SETTLE",
            "table": "billiards_ods.recharge_settlements",
            "endpoint": "/Site/GetRechargeSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_PACKAGE",
            "table": "billiards_ods.group_buy_packages",
            "endpoint": "/PackageCoupon/QueryPackageCouponList",
            "pk_columns": [
              "id"
            ],
            "records": 18,
            "records_with_pk": 18,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_BUY_REDEMPTION",
            "table": "billiards_ods.group_buy_redemption_records",
            "endpoint": "/Site/GetSiteTableUseDetails",
            "pk_columns": [
              "id"
            ],
            "records": 8266,
            "records_with_pk": 8266,
            "missing": 0,
            "missing_samples": [],
            "pages": 42,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_STOCK",
            "table": "billiards_ods.goods_stock_summary",
            "endpoint": "/TenantGoods/GetGoodsStockReport",
            "pk_columns": [
              "sitegoodsid"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_CHANGE",
            "table": "billiards_ods.goods_stock_movements",
            "endpoint": "/GoodsStockManage/QueryGoodsOutboundReceipt",
            "pk_columns": [
              "sitegoodsstockid"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLES",
            "table": "billiards_ods.site_tables_master",
            "endpoint": "/Table/GetSiteTables",
            "pk_columns": [
              "id"
            ],
            "records": 74,
            "records_with_pk": 74,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GOODS_CATEGORY",
            "table": "billiards_ods.stock_goods_category_tree",
            "endpoint": "/TenantGoodsCategory/QueryPrimarySecondaryCategory",
            "pk_columns": [
              "id"
            ],
            "records": 9,
            "records_with_pk": 9,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS",
            "table": "billiards_ods.store_goods_master",
            "endpoint": "/TenantGoods/GetGoodsInventoryList",
            "pk_columns": [
              "id"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_FEE_DISCOUNT",
            "table": "billiards_ods.table_fee_discount_records",
            "endpoint": "/Site/GetTaiFeeAdjustList",
            "pk_columns": [
              "id"
            ],
            "records": 1738,
            "records_with_pk": 1738,
            "missing": 1,
            "missing_samples": [
              {
                "id": 3067211610753989
              }
            ],
            "pages": 9,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TENANT_GOODS",
            "table": "billiards_ods.tenant_goods_master",
            "endpoint": "/TenantGoods/QueryTenantGoods",
            "pk_columns": [
              "id"
            ],
            "records": 171,
            "records_with_pk": 171,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_TICKET",
            "table": "billiards_ods.settlement_ticket_details",
            "endpoint": "/Order/GetOrderSettleTicketNew",
            "pk_columns": [
              "ordersettleid"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 6,
        "total_errors": 0,
        "generated_at": "2026-01-26T04:44:50.286736+08:00"
      },
      "ods_to_dwd": {
        "tables": [
          {
            "dwd_table": "billiards_dwd.dim_site",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 1,
              "ods": 18361,
              "diff": -18360
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_site_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table_ex",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 68,
              "ods": 68,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant_ex",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_ex",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 556,
              "ods": 556,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 945,
              "ods": 945,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 413038.35,
                "ods_sum": 413038.35,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account_ex",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "deliveryfeededuct",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods_ex",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 171,
              "ods": 171,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_goods_category",
            "ods_table": "billiards_ods.stock_goods_category_tree",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 26,
              "ods": 9,
              "diff": 17
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package_ex",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 34,
              "ods": 34,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "adjust_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "coupon_promotion_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "real_table_charge_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 18361,
              "ods": 18361,
              "diff": 0
            },
            "amounts": [
              {
                "column": "fee_total",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "mgmt_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "used_card_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 328358.71,
                "ods_sum": 328901.21,
                "diff": -542.5
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "cost_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "real_goods_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale_ex",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 17563,
              "ods": 17563,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 21673.2,
                "ods_sum": 21673.2,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_member_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money_cost",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "push_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log_ex",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4998,
              "ods": 4998,
              "diff": 0
            },
            "amounts": [
              {
                "column": "manual_discount_amount",
                "dwd_sum": 414.17,
                "ods_sum": 414.17,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": [
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption_ex",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 11388,
              "ods": 11411,
              "diff": -23
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7544.8,
                "ods_sum": 7544.8,
                "diff": 0.0
              },
              {
                "column": "assistant_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "goods_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "recharge_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "reward_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "table_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption_ex",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 16953,
              "ods": 16953,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_payment",
            "ods_table": "billiards_ods.payment_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "pay_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "channel_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "pay_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund_ex",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 45,
              "ods": 45,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "card_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "round_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          }
        ],
        "total_count_diff": -18382
      },
      "generated_at": "2026-01-26T04:44:54.113987+08:00"
    },
    {
      "mode": "window",
      "window": {
        "start": "2025-02-01T00:00:00+08:00",
        "end": "2025-03-01T00:00:00+08:00",
        "label": "month_2025-02-01",
        "granularity": "month"
      },
      "api_to_ods": {
        "window_split_unit": "month",
        "window_compensation_hours": 2,
        "start": "2025-01-31T22:00:00+08:00",
        "end": "2025-03-01T02:00:00+08:00",
        "cutoff": null,
        "window_days": 28,
        "window_hours": 0,
        "page_size": 200,
        "chunk_size": 500,
        "sample_limit": 50,
        "store_id": 2790685415443269,
        "base_url": "https://pc.ficoo.vip/apiprod/admin/v1/",
        "results": [
          {
            "task_code": "ODS_ASSISTANT_ACCOUNT",
            "table": "billiards_ods.assistant_accounts_master",
            "endpoint": "/PersonnelManagement/SearchAssistantInfo",
            "pk_columns": [
              "id"
            ],
            "records": 204,
            "records_with_pk": 204,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_RECORDS",
            "table": "billiards_ods.settlement_records",
            "endpoint": "/Site/GetAllOrderSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_USE",
            "table": "billiards_ods.table_fee_transactions",
            "endpoint": "/Site/GetSiteTableOrderDetails",
            "pk_columns": [
              "id"
            ],
            "records": 10071,
            "records_with_pk": 10071,
            "missing": 1,
            "missing_samples": [
              {
                "id": 3067211608837061
              }
            ],
            "pages": 51,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_LEDGER",
            "table": "billiards_ods.assistant_service_records",
            "endpoint": "/AssistantPerformance/GetOrderAssistantDetails",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_ABOLISH",
            "table": "billiards_ods.assistant_cancellation_records",
            "endpoint": "/AssistantPerformance/GetAbolitionAssistant",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS_SALES",
            "table": "billiards_ods.store_goods_sales_records",
            "endpoint": "/TenantGoods/GetGoodsSalesList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PAYMENT",
            "table": "billiards_ods.payment_transactions",
            "endpoint": "/PayLog/GetPayLogListPage",
            "pk_columns": [
              "id"
            ],
            "records": 11928,
            "records_with_pk": 11928,
            "missing": 2,
            "missing_samples": [
              {
                "id": 3067211605281733
              },
              {
                "id": 3067210806709061
              }
            ],
            "pages": 60,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_REFUND",
            "table": "billiards_ods.refund_transactions",
            "endpoint": "/Order/GetRefundPayLogList",
            "pk_columns": [
              "id"
            ],
            "records": 38,
            "records_with_pk": 38,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PLATFORM_COUPON",
            "table": "billiards_ods.platform_coupon_redemption_records",
            "endpoint": "/Promotion/GetOfflineCouponConsumePageList",
            "pk_columns": [
              "id"
            ],
            "records": 16953,
            "records_with_pk": 16953,
            "missing": 0,
            "missing_samples": [],
            "pages": 85,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER",
            "table": "billiards_ods.member_profiles",
            "endpoint": "/MemberProfile/GetTenantMemberList",
            "pk_columns": [
              "id"
            ],
            "records": 556,
            "records_with_pk": 556,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_CARD",
            "table": "billiards_ods.member_stored_value_cards",
            "endpoint": "/MemberProfile/GetTenantMemberCardList",
            "pk_columns": [
              "id"
            ],
            "records": 945,
            "records_with_pk": 945,
            "missing": 0,
            "missing_samples": [],
            "pages": 5,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_BALANCE",
            "table": "billiards_ods.member_balance_changes",
            "endpoint": "/MemberProfile/GetMemberCardBalanceChange",
            "pk_columns": [
              "id"
            ],
            "records": 2474,
            "records_with_pk": 2474,
            "missing": 2,
            "missing_samples": [
              {
                "id": 3067211605855173
              },
              {
                "id": 3067210808216389
              }
            ],
            "pages": 13,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_RECHARGE_SETTLE",
            "table": "billiards_ods.recharge_settlements",
            "endpoint": "/Site/GetRechargeSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_PACKAGE",
            "table": "billiards_ods.group_buy_packages",
            "endpoint": "/PackageCoupon/QueryPackageCouponList",
            "pk_columns": [
              "id"
            ],
            "records": 18,
            "records_with_pk": 18,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_BUY_REDEMPTION",
            "table": "billiards_ods.group_buy_redemption_records",
            "endpoint": "/Site/GetSiteTableUseDetails",
            "pk_columns": [
              "id"
            ],
            "records": 8266,
            "records_with_pk": 8266,
            "missing": 0,
            "missing_samples": [],
            "pages": 42,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_STOCK",
            "table": "billiards_ods.goods_stock_summary",
            "endpoint": "/TenantGoods/GetGoodsStockReport",
            "pk_columns": [
              "sitegoodsid"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_CHANGE",
            "table": "billiards_ods.goods_stock_movements",
            "endpoint": "/GoodsStockManage/QueryGoodsOutboundReceipt",
            "pk_columns": [
              "sitegoodsstockid"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLES",
            "table": "billiards_ods.site_tables_master",
            "endpoint": "/Table/GetSiteTables",
            "pk_columns": [
              "id"
            ],
            "records": 74,
            "records_with_pk": 74,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GOODS_CATEGORY",
            "table": "billiards_ods.stock_goods_category_tree",
            "endpoint": "/TenantGoodsCategory/QueryPrimarySecondaryCategory",
            "pk_columns": [
              "id"
            ],
            "records": 9,
            "records_with_pk": 9,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS",
            "table": "billiards_ods.store_goods_master",
            "endpoint": "/TenantGoods/GetGoodsInventoryList",
            "pk_columns": [
              "id"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_FEE_DISCOUNT",
            "table": "billiards_ods.table_fee_discount_records",
            "endpoint": "/Site/GetTaiFeeAdjustList",
            "pk_columns": [
              "id"
            ],
            "records": 1738,
            "records_with_pk": 1738,
            "missing": 1,
            "missing_samples": [
              {
                "id": 3067211610753989
              }
            ],
            "pages": 9,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TENANT_GOODS",
            "table": "billiards_ods.tenant_goods_master",
            "endpoint": "/TenantGoods/QueryTenantGoods",
            "pk_columns": [
              "id"
            ],
            "records": 171,
            "records_with_pk": 171,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_TICKET",
            "table": "billiards_ods.settlement_ticket_details",
            "endpoint": "/Order/GetOrderSettleTicketNew",
            "pk_columns": [
              "ordersettleid"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 6,
        "total_errors": 0,
        "generated_at": "2026-01-26T04:50:54.915246+08:00"
      },
      "ods_to_dwd": {
        "tables": [
          {
            "dwd_table": "billiards_dwd.dim_site",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 1,
              "ods": 18361,
              "diff": -18360
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_site_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table_ex",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 68,
              "ods": 68,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant_ex",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_ex",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 556,
              "ods": 556,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 945,
              "ods": 945,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 413038.35,
                "ods_sum": 413038.35,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account_ex",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "deliveryfeededuct",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods_ex",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 171,
              "ods": 171,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_goods_category",
            "ods_table": "billiards_ods.stock_goods_category_tree",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 26,
              "ods": 9,
              "diff": 17
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package_ex",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 34,
              "ods": 34,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "adjust_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "coupon_promotion_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "real_table_charge_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 18361,
              "ods": 18361,
              "diff": 0
            },
            "amounts": [
              {
                "column": "fee_total",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "mgmt_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "used_card_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 328358.71,
                "ods_sum": 328901.21,
                "diff": -542.5
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "cost_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "real_goods_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale_ex",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 17563,
              "ods": 17563,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 21673.2,
                "ods_sum": 21673.2,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_member_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money_cost",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "push_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log_ex",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4998,
              "ods": 4998,
              "diff": 0
            },
            "amounts": [
              {
                "column": "manual_discount_amount",
                "dwd_sum": 414.17,
                "ods_sum": 414.17,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": [
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption_ex",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 11388,
              "ods": 11411,
              "diff": -23
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7544.8,
                "ods_sum": 7544.8,
                "diff": 0.0
              },
              {
                "column": "assistant_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "goods_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "recharge_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "reward_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "table_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption_ex",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 16953,
              "ods": 16953,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_payment",
            "ods_table": "billiards_ods.payment_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "pay_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "channel_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "pay_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund_ex",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 45,
              "ods": 45,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "card_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "round_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          }
        ],
        "total_count_diff": -18382
      },
      "generated_at": "2026-01-26T04:50:58.640259+08:00"
    },
    {
      "mode": "window",
      "window": {
        "start": "2025-03-01T00:00:00+08:00",
        "end": "2025-04-01T00:00:00+08:00",
        "label": "month_2025-03-01",
        "granularity": "month"
      },
      "api_to_ods": {
        "window_split_unit": "month",
        "window_compensation_hours": 2,
        "start": "2025-02-28T22:00:00+08:00",
        "end": "2025-04-01T02:00:00+08:00",
        "cutoff": null,
        "window_days": 31,
        "window_hours": 0,
        "page_size": 200,
        "chunk_size": 500,
        "sample_limit": 50,
        "store_id": 2790685415443269,
        "base_url": "https://pc.ficoo.vip/apiprod/admin/v1/",
        "results": [
          {
            "task_code": "ODS_ASSISTANT_ACCOUNT",
            "table": "billiards_ods.assistant_accounts_master",
            "endpoint": "/PersonnelManagement/SearchAssistantInfo",
            "pk_columns": [
              "id"
            ],
            "records": 204,
            "records_with_pk": 204,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_RECORDS",
            "table": "billiards_ods.settlement_records",
            "endpoint": "/Site/GetAllOrderSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_USE",
            "table": "billiards_ods.table_fee_transactions",
            "endpoint": "/Site/GetSiteTableOrderDetails",
            "pk_columns": [
              "id"
            ],
            "records": 10071,
            "records_with_pk": 10071,
            "missing": 1,
            "missing_samples": [
              {
                "id": 3067211608837061
              }
            ],
            "pages": 51,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_LEDGER",
            "table": "billiards_ods.assistant_service_records",
            "endpoint": "/AssistantPerformance/GetOrderAssistantDetails",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_ABOLISH",
            "table": "billiards_ods.assistant_cancellation_records",
            "endpoint": "/AssistantPerformance/GetAbolitionAssistant",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS_SALES",
            "table": "billiards_ods.store_goods_sales_records",
            "endpoint": "/TenantGoods/GetGoodsSalesList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PAYMENT",
            "table": "billiards_ods.payment_transactions",
            "endpoint": "/PayLog/GetPayLogListPage",
            "pk_columns": [
              "id"
            ],
            "records": 11928,
            "records_with_pk": 11928,
            "missing": 2,
            "missing_samples": [
              {
                "id": 3067211605281733
              },
              {
                "id": 3067210806709061
              }
            ],
            "pages": 60,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_REFUND",
            "table": "billiards_ods.refund_transactions",
            "endpoint": "/Order/GetRefundPayLogList",
            "pk_columns": [
              "id"
            ],
            "records": 38,
            "records_with_pk": 38,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PLATFORM_COUPON",
            "table": "billiards_ods.platform_coupon_redemption_records",
            "endpoint": "/Promotion/GetOfflineCouponConsumePageList",
            "pk_columns": [
              "id"
            ],
            "records": 16953,
            "records_with_pk": 16953,
            "missing": 0,
            "missing_samples": [],
            "pages": 85,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER",
            "table": "billiards_ods.member_profiles",
            "endpoint": "/MemberProfile/GetTenantMemberList",
            "pk_columns": [
              "id"
            ],
            "records": 556,
            "records_with_pk": 556,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_CARD",
            "table": "billiards_ods.member_stored_value_cards",
            "endpoint": "/MemberProfile/GetTenantMemberCardList",
            "pk_columns": [
              "id"
            ],
            "records": 945,
            "records_with_pk": 945,
            "missing": 0,
            "missing_samples": [],
            "pages": 5,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_BALANCE",
            "table": "billiards_ods.member_balance_changes",
            "endpoint": "/MemberProfile/GetMemberCardBalanceChange",
            "pk_columns": [
              "id"
            ],
            "records": 2474,
            "records_with_pk": 2474,
            "missing": 2,
            "missing_samples": [
              {
                "id": 3067211605855173
              },
              {
                "id": 3067210808216389
              }
            ],
            "pages": 13,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_RECHARGE_SETTLE",
            "table": "billiards_ods.recharge_settlements",
            "endpoint": "/Site/GetRechargeSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_PACKAGE",
            "table": "billiards_ods.group_buy_packages",
            "endpoint": "/PackageCoupon/QueryPackageCouponList",
            "pk_columns": [
              "id"
            ],
            "records": 18,
            "records_with_pk": 18,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_BUY_REDEMPTION",
            "table": "billiards_ods.group_buy_redemption_records",
            "endpoint": "/Site/GetSiteTableUseDetails",
            "pk_columns": [
              "id"
            ],
            "records": 8266,
            "records_with_pk": 8266,
            "missing": 0,
            "missing_samples": [],
            "pages": 42,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_STOCK",
            "table": "billiards_ods.goods_stock_summary",
            "endpoint": "/TenantGoods/GetGoodsStockReport",
            "pk_columns": [
              "sitegoodsid"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_CHANGE",
            "table": "billiards_ods.goods_stock_movements",
            "endpoint": "/GoodsStockManage/QueryGoodsOutboundReceipt",
            "pk_columns": [
              "sitegoodsstockid"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLES",
            "table": "billiards_ods.site_tables_master",
            "endpoint": "/Table/GetSiteTables",
            "pk_columns": [
              "id"
            ],
            "records": 74,
            "records_with_pk": 74,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GOODS_CATEGORY",
            "table": "billiards_ods.stock_goods_category_tree",
            "endpoint": "/TenantGoodsCategory/QueryPrimarySecondaryCategory",
            "pk_columns": [
              "id"
            ],
            "records": 9,
            "records_with_pk": 9,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS",
            "table": "billiards_ods.store_goods_master",
            "endpoint": "/TenantGoods/GetGoodsInventoryList",
            "pk_columns": [
              "id"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_FEE_DISCOUNT",
            "table": "billiards_ods.table_fee_discount_records",
            "endpoint": "/Site/GetTaiFeeAdjustList",
            "pk_columns": [
              "id"
            ],
            "records": 1738,
            "records_with_pk": 1738,
            "missing": 1,
            "missing_samples": [
              {
                "id": 3067211610753989
              }
            ],
            "pages": 9,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TENANT_GOODS",
            "table": "billiards_ods.tenant_goods_master",
            "endpoint": "/TenantGoods/QueryTenantGoods",
            "pk_columns": [
              "id"
            ],
            "records": 171,
            "records_with_pk": 171,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_TICKET",
            "table": "billiards_ods.settlement_ticket_details",
            "endpoint": "/Order/GetOrderSettleTicketNew",
            "pk_columns": [
              "ordersettleid"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 6,
        "total_errors": 0,
        "generated_at": "2026-01-26T04:56:40.233217+08:00"
      },
      "ods_to_dwd": {
        "tables": [
          {
            "dwd_table": "billiards_dwd.dim_site",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 1,
              "ods": 18361,
              "diff": -18360
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_site_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table_ex",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 68,
              "ods": 68,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant_ex",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_ex",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 556,
              "ods": 556,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 945,
              "ods": 945,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 413038.35,
                "ods_sum": 413038.35,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account_ex",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "deliveryfeededuct",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods_ex",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 171,
              "ods": 171,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_goods_category",
            "ods_table": "billiards_ods.stock_goods_category_tree",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 26,
              "ods": 9,
              "diff": 17
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package_ex",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 34,
              "ods": 34,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "adjust_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "coupon_promotion_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "real_table_charge_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 18361,
              "ods": 18361,
              "diff": 0
            },
            "amounts": [
              {
                "column": "fee_total",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "mgmt_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "used_card_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 328358.71,
                "ods_sum": 328901.21,
                "diff": -542.5
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "cost_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "real_goods_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale_ex",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 17563,
              "ods": 17563,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 21673.2,
                "ods_sum": 21673.2,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_member_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money_cost",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "push_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log_ex",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4998,
              "ods": 4998,
              "diff": 0
            },
            "amounts": [
              {
                "column": "manual_discount_amount",
                "dwd_sum": 414.17,
                "ods_sum": 414.17,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": [
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption_ex",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 11388,
              "ods": 11411,
              "diff": -23
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7544.8,
                "ods_sum": 7544.8,
                "diff": 0.0
              },
              {
                "column": "assistant_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "goods_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "recharge_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "reward_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "table_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption_ex",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 16953,
              "ods": 16953,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_payment",
            "ods_table": "billiards_ods.payment_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "pay_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "channel_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "pay_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund_ex",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 45,
              "ods": 45,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "card_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "round_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          }
        ],
        "total_count_diff": -18382
      },
      "generated_at": "2026-01-26T04:56:43.957627+08:00"
    },
    {
      "mode": "window",
      "window": {
        "start": "2025-04-01T00:00:00+08:00",
        "end": "2025-05-01T00:00:00+08:00",
        "label": "month_2025-04-01",
        "granularity": "month"
      },
      "api_to_ods": {
        "window_split_unit": "month",
        "window_compensation_hours": 2,
        "start": "2025-03-31T22:00:00+08:00",
        "end": "2025-05-01T02:00:00+08:00",
        "cutoff": null,
        "window_days": 30,
        "window_hours": 0,
        "page_size": 200,
        "chunk_size": 500,
        "sample_limit": 50,
        "store_id": 2790685415443269,
        "base_url": "https://pc.ficoo.vip/apiprod/admin/v1/",
        "results": [
          {
            "task_code": "ODS_ASSISTANT_ACCOUNT",
            "table": "billiards_ods.assistant_accounts_master",
            "endpoint": "/PersonnelManagement/SearchAssistantInfo",
            "pk_columns": [
              "id"
            ],
            "records": 204,
            "records_with_pk": 204,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_RECORDS",
            "table": "billiards_ods.settlement_records",
            "endpoint": "/Site/GetAllOrderSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_USE",
            "table": "billiards_ods.table_fee_transactions",
            "endpoint": "/Site/GetSiteTableOrderDetails",
            "pk_columns": [
              "id"
            ],
            "records": 10071,
            "records_with_pk": 10071,
            "missing": 1,
            "missing_samples": [
              {
                "id": 3067211608837061
              }
            ],
            "pages": 51,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_LEDGER",
            "table": "billiards_ods.assistant_service_records",
            "endpoint": "/AssistantPerformance/GetOrderAssistantDetails",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_ABOLISH",
            "table": "billiards_ods.assistant_cancellation_records",
            "endpoint": "/AssistantPerformance/GetAbolitionAssistant",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS_SALES",
            "table": "billiards_ods.store_goods_sales_records",
            "endpoint": "/TenantGoods/GetGoodsSalesList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PAYMENT",
            "table": "billiards_ods.payment_transactions",
            "endpoint": "/PayLog/GetPayLogListPage",
            "pk_columns": [
              "id"
            ],
            "records": 11928,
            "records_with_pk": 11928,
            "missing": 2,
            "missing_samples": [
              {
                "id": 3067211605281733
              },
              {
                "id": 3067210806709061
              }
            ],
            "pages": 60,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_REFUND",
            "table": "billiards_ods.refund_transactions",
            "endpoint": "/Order/GetRefundPayLogList",
            "pk_columns": [
              "id"
            ],
            "records": 38,
            "records_with_pk": 38,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PLATFORM_COUPON",
            "table": "billiards_ods.platform_coupon_redemption_records",
            "endpoint": "/Promotion/GetOfflineCouponConsumePageList",
            "pk_columns": [
              "id"
            ],
            "records": 16953,
            "records_with_pk": 16953,
            "missing": 0,
            "missing_samples": [],
            "pages": 85,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER",
            "table": "billiards_ods.member_profiles",
            "endpoint": "/MemberProfile/GetTenantMemberList",
            "pk_columns": [
              "id"
            ],
            "records": 556,
            "records_with_pk": 556,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_CARD",
            "table": "billiards_ods.member_stored_value_cards",
            "endpoint": "/MemberProfile/GetTenantMemberCardList",
            "pk_columns": [
              "id"
            ],
            "records": 945,
            "records_with_pk": 945,
            "missing": 0,
            "missing_samples": [],
            "pages": 5,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_BALANCE",
            "table": "billiards_ods.member_balance_changes",
            "endpoint": "/MemberProfile/GetMemberCardBalanceChange",
            "pk_columns": [
              "id"
            ],
            "records": 2474,
            "records_with_pk": 2474,
            "missing": 2,
            "missing_samples": [
              {
                "id": 3067211605855173
              },
              {
                "id": 3067210808216389
              }
            ],
            "pages": 13,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_RECHARGE_SETTLE",
            "table": "billiards_ods.recharge_settlements",
            "endpoint": "/Site/GetRechargeSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_PACKAGE",
            "table": "billiards_ods.group_buy_packages",
            "endpoint": "/PackageCoupon/QueryPackageCouponList",
            "pk_columns": [
              "id"
            ],
            "records": 18,
            "records_with_pk": 18,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_BUY_REDEMPTION",
            "table": "billiards_ods.group_buy_redemption_records",
            "endpoint": "/Site/GetSiteTableUseDetails",
            "pk_columns": [
              "id"
            ],
            "records": 8266,
            "records_with_pk": 8266,
            "missing": 0,
            "missing_samples": [],
            "pages": 42,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_STOCK",
            "table": "billiards_ods.goods_stock_summary",
            "endpoint": "/TenantGoods/GetGoodsStockReport",
            "pk_columns": [
              "sitegoodsid"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_CHANGE",
            "table": "billiards_ods.goods_stock_movements",
            "endpoint": "/GoodsStockManage/QueryGoodsOutboundReceipt",
            "pk_columns": [
              "sitegoodsstockid"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLES",
            "table": "billiards_ods.site_tables_master",
            "endpoint": "/Table/GetSiteTables",
            "pk_columns": [
              "id"
            ],
            "records": 74,
            "records_with_pk": 74,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GOODS_CATEGORY",
            "table": "billiards_ods.stock_goods_category_tree",
            "endpoint": "/TenantGoodsCategory/QueryPrimarySecondaryCategory",
            "pk_columns": [
              "id"
            ],
            "records": 9,
            "records_with_pk": 9,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS",
            "table": "billiards_ods.store_goods_master",
            "endpoint": "/TenantGoods/GetGoodsInventoryList",
            "pk_columns": [
              "id"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_FEE_DISCOUNT",
            "table": "billiards_ods.table_fee_discount_records",
            "endpoint": "/Site/GetTaiFeeAdjustList",
            "pk_columns": [
              "id"
            ],
            "records": 1738,
            "records_with_pk": 1738,
            "missing": 1,
            "missing_samples": [
              {
                "id": 3067211610753989
              }
            ],
            "pages": 9,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TENANT_GOODS",
            "table": "billiards_ods.tenant_goods_master",
            "endpoint": "/TenantGoods/QueryTenantGoods",
            "pk_columns": [
              "id"
            ],
            "records": 171,
            "records_with_pk": 171,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_TICKET",
            "table": "billiards_ods.settlement_ticket_details",
            "endpoint": "/Order/GetOrderSettleTicketNew",
            "pk_columns": [
              "ordersettleid"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 6,
        "total_errors": 0,
        "generated_at": "2026-01-26T05:02:32.502900+08:00"
      },
      "ods_to_dwd": {
        "tables": [
          {
            "dwd_table": "billiards_dwd.dim_site",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 1,
              "ods": 18361,
              "diff": -18360
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_site_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table_ex",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 68,
              "ods": 68,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant_ex",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_ex",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 556,
              "ods": 556,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 945,
              "ods": 945,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 413038.35,
                "ods_sum": 413038.35,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account_ex",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "deliveryfeededuct",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods_ex",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 171,
              "ods": 171,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_goods_category",
            "ods_table": "billiards_ods.stock_goods_category_tree",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 26,
              "ods": 9,
              "diff": 17
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package_ex",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 34,
              "ods": 34,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "adjust_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "coupon_promotion_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "real_table_charge_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 18361,
              "ods": 18361,
              "diff": 0
            },
            "amounts": [
              {
                "column": "fee_total",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "mgmt_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "used_card_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 328358.71,
                "ods_sum": 328901.21,
                "diff": -542.5
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "cost_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "real_goods_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale_ex",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 17563,
              "ods": 17563,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 21673.2,
                "ods_sum": 21673.2,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_member_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money_cost",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "push_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log_ex",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4998,
              "ods": 4998,
              "diff": 0
            },
            "amounts": [
              {
                "column": "manual_discount_amount",
                "dwd_sum": 414.17,
                "ods_sum": 414.17,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": [
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption_ex",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 11388,
              "ods": 11411,
              "diff": -23
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7544.8,
                "ods_sum": 7544.8,
                "diff": 0.0
              },
              {
                "column": "assistant_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "goods_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "recharge_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "reward_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "table_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption_ex",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 16953,
              "ods": 16953,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_payment",
            "ods_table": "billiards_ods.payment_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "pay_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "channel_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "pay_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund_ex",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 45,
              "ods": 45,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "card_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "round_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          }
        ],
        "total_count_diff": -18382
      },
      "generated_at": "2026-01-26T05:02:36.144485+08:00"
    },
    {
      "mode": "window",
      "window": {
        "start": "2025-05-01T00:00:00+08:00",
        "end": "2025-06-01T00:00:00+08:00",
        "label": "month_2025-05-01",
        "granularity": "month"
      },
      "api_to_ods": {
        "window_split_unit": "month",
        "window_compensation_hours": 2,
        "start": "2025-04-30T22:00:00+08:00",
        "end": "2025-06-01T02:00:00+08:00",
        "cutoff": null,
        "window_days": 31,
        "window_hours": 0,
        "page_size": 200,
        "chunk_size": 500,
        "sample_limit": 50,
        "store_id": 2790685415443269,
        "base_url": "https://pc.ficoo.vip/apiprod/admin/v1/",
        "results": [
          {
            "task_code": "ODS_ASSISTANT_ACCOUNT",
            "table": "billiards_ods.assistant_accounts_master",
            "endpoint": "/PersonnelManagement/SearchAssistantInfo",
            "pk_columns": [
              "id"
            ],
            "records": 204,
            "records_with_pk": 204,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_RECORDS",
            "table": "billiards_ods.settlement_records",
            "endpoint": "/Site/GetAllOrderSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_USE",
            "table": "billiards_ods.table_fee_transactions",
            "endpoint": "/Site/GetSiteTableOrderDetails",
            "pk_columns": [
              "id"
            ],
            "records": 10071,
            "records_with_pk": 10071,
            "missing": 1,
            "missing_samples": [
              {
                "id": 3067211608837061
              }
            ],
            "pages": 51,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_LEDGER",
            "table": "billiards_ods.assistant_service_records",
            "endpoint": "/AssistantPerformance/GetOrderAssistantDetails",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_ABOLISH",
            "table": "billiards_ods.assistant_cancellation_records",
            "endpoint": "/AssistantPerformance/GetAbolitionAssistant",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS_SALES",
            "table": "billiards_ods.store_goods_sales_records",
            "endpoint": "/TenantGoods/GetGoodsSalesList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PAYMENT",
            "table": "billiards_ods.payment_transactions",
            "endpoint": "/PayLog/GetPayLogListPage",
            "pk_columns": [
              "id"
            ],
            "records": 11928,
            "records_with_pk": 11928,
            "missing": 2,
            "missing_samples": [
              {
                "id": 3067211605281733
              },
              {
                "id": 3067210806709061
              }
            ],
            "pages": 60,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_REFUND",
            "table": "billiards_ods.refund_transactions",
            "endpoint": "/Order/GetRefundPayLogList",
            "pk_columns": [
              "id"
            ],
            "records": 38,
            "records_with_pk": 38,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PLATFORM_COUPON",
            "table": "billiards_ods.platform_coupon_redemption_records",
            "endpoint": "/Promotion/GetOfflineCouponConsumePageList",
            "pk_columns": [
              "id"
            ],
            "records": 16953,
            "records_with_pk": 16953,
            "missing": 0,
            "missing_samples": [],
            "pages": 85,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER",
            "table": "billiards_ods.member_profiles",
            "endpoint": "/MemberProfile/GetTenantMemberList",
            "pk_columns": [
              "id"
            ],
            "records": 556,
            "records_with_pk": 556,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_CARD",
            "table": "billiards_ods.member_stored_value_cards",
            "endpoint": "/MemberProfile/GetTenantMemberCardList",
            "pk_columns": [
              "id"
            ],
            "records": 945,
            "records_with_pk": 945,
            "missing": 0,
            "missing_samples": [],
            "pages": 5,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_BALANCE",
            "table": "billiards_ods.member_balance_changes",
            "endpoint": "/MemberProfile/GetMemberCardBalanceChange",
            "pk_columns": [
              "id"
            ],
            "records": 2474,
            "records_with_pk": 2474,
            "missing": 2,
            "missing_samples": [
              {
                "id": 3067211605855173
              },
              {
                "id": 3067210808216389
              }
            ],
            "pages": 13,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_RECHARGE_SETTLE",
            "table": "billiards_ods.recharge_settlements",
            "endpoint": "/Site/GetRechargeSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_PACKAGE",
            "table": "billiards_ods.group_buy_packages",
            "endpoint": "/PackageCoupon/QueryPackageCouponList",
            "pk_columns": [
              "id"
            ],
            "records": 18,
            "records_with_pk": 18,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_BUY_REDEMPTION",
            "table": "billiards_ods.group_buy_redemption_records",
            "endpoint": "/Site/GetSiteTableUseDetails",
            "pk_columns": [
              "id"
            ],
            "records": 8266,
            "records_with_pk": 8266,
            "missing": 0,
            "missing_samples": [],
            "pages": 42,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_STOCK",
            "table": "billiards_ods.goods_stock_summary",
            "endpoint": "/TenantGoods/GetGoodsStockReport",
            "pk_columns": [
              "sitegoodsid"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_CHANGE",
            "table": "billiards_ods.goods_stock_movements",
            "endpoint": "/GoodsStockManage/QueryGoodsOutboundReceipt",
            "pk_columns": [
              "sitegoodsstockid"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLES",
            "table": "billiards_ods.site_tables_master",
            "endpoint": "/Table/GetSiteTables",
            "pk_columns": [
              "id"
            ],
            "records": 74,
            "records_with_pk": 74,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GOODS_CATEGORY",
            "table": "billiards_ods.stock_goods_category_tree",
            "endpoint": "/TenantGoodsCategory/QueryPrimarySecondaryCategory",
            "pk_columns": [
              "id"
            ],
            "records": 9,
            "records_with_pk": 9,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS",
            "table": "billiards_ods.store_goods_master",
            "endpoint": "/TenantGoods/GetGoodsInventoryList",
            "pk_columns": [
              "id"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_FEE_DISCOUNT",
            "table": "billiards_ods.table_fee_discount_records",
            "endpoint": "/Site/GetTaiFeeAdjustList",
            "pk_columns": [
              "id"
            ],
            "records": 1738,
            "records_with_pk": 1738,
            "missing": 1,
            "missing_samples": [
              {
                "id": 3067211610753989
              }
            ],
            "pages": 9,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TENANT_GOODS",
            "table": "billiards_ods.tenant_goods_master",
            "endpoint": "/TenantGoods/QueryTenantGoods",
            "pk_columns": [
              "id"
            ],
            "records": 171,
            "records_with_pk": 171,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_TICKET",
            "table": "billiards_ods.settlement_ticket_details",
            "endpoint": "/Order/GetOrderSettleTicketNew",
            "pk_columns": [
              "ordersettleid"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 6,
        "total_errors": 0,
        "generated_at": "2026-01-26T05:08:23.632374+08:00"
      },
      "ods_to_dwd": {
        "tables": [
          {
            "dwd_table": "billiards_dwd.dim_site",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 1,
              "ods": 18361,
              "diff": -18360
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_site_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table_ex",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 68,
              "ods": 68,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant_ex",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_ex",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 556,
              "ods": 556,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 945,
              "ods": 945,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 413038.35,
                "ods_sum": 413038.35,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account_ex",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "deliveryfeededuct",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods_ex",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 171,
              "ods": 171,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_goods_category",
            "ods_table": "billiards_ods.stock_goods_category_tree",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 26,
              "ods": 9,
              "diff": 17
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package_ex",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 34,
              "ods": 34,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "adjust_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "coupon_promotion_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "real_table_charge_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 18361,
              "ods": 18361,
              "diff": 0
            },
            "amounts": [
              {
                "column": "fee_total",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "mgmt_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "used_card_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 328358.71,
                "ods_sum": 328901.21,
                "diff": -542.5
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "cost_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "real_goods_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale_ex",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 17563,
              "ods": 17563,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 21673.2,
                "ods_sum": 21673.2,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_member_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money_cost",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "push_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log_ex",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4998,
              "ods": 4998,
              "diff": 0
            },
            "amounts": [
              {
                "column": "manual_discount_amount",
                "dwd_sum": 414.17,
                "ods_sum": 414.17,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": [
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption_ex",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 11388,
              "ods": 11411,
              "diff": -23
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7544.8,
                "ods_sum": 7544.8,
                "diff": 0.0
              },
              {
                "column": "assistant_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "goods_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "recharge_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "reward_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "table_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption_ex",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 16953,
              "ods": 16953,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_payment",
            "ods_table": "billiards_ods.payment_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "pay_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "channel_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "pay_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund_ex",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 45,
              "ods": 45,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "card_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "round_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          }
        ],
        "total_count_diff": -18382
      },
      "generated_at": "2026-01-26T05:08:27.290890+08:00"
    },
    {
      "mode": "window",
      "window": {
        "start": "2025-06-01T00:00:00+08:00",
        "end": "2025-07-01T00:00:00+08:00",
        "label": "month_2025-06-01",
        "granularity": "month"
      },
      "api_to_ods": {
        "window_split_unit": "month",
        "window_compensation_hours": 2,
        "start": "2025-05-31T22:00:00+08:00",
        "end": "2025-07-01T02:00:00+08:00",
        "cutoff": null,
        "window_days": 30,
        "window_hours": 0,
        "page_size": 200,
        "chunk_size": 500,
        "sample_limit": 50,
        "store_id": 2790685415443269,
        "base_url": "https://pc.ficoo.vip/apiprod/admin/v1/",
        "results": [
          {
            "task_code": "ODS_ASSISTANT_ACCOUNT",
            "table": "billiards_ods.assistant_accounts_master",
            "endpoint": "/PersonnelManagement/SearchAssistantInfo",
            "pk_columns": [
              "id"
            ],
            "records": 204,
            "records_with_pk": 204,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_RECORDS",
            "table": "billiards_ods.settlement_records",
            "endpoint": "/Site/GetAllOrderSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_USE",
            "table": "billiards_ods.table_fee_transactions",
            "endpoint": "/Site/GetSiteTableOrderDetails",
            "pk_columns": [
              "id"
            ],
            "records": 10071,
            "records_with_pk": 10071,
            "missing": 1,
            "missing_samples": [
              {
                "id": 3067211608837061
              }
            ],
            "pages": 51,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_LEDGER",
            "table": "billiards_ods.assistant_service_records",
            "endpoint": "/AssistantPerformance/GetOrderAssistantDetails",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_ABOLISH",
            "table": "billiards_ods.assistant_cancellation_records",
            "endpoint": "/AssistantPerformance/GetAbolitionAssistant",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS_SALES",
            "table": "billiards_ods.store_goods_sales_records",
            "endpoint": "/TenantGoods/GetGoodsSalesList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PAYMENT",
            "table": "billiards_ods.payment_transactions",
            "endpoint": "/PayLog/GetPayLogListPage",
            "pk_columns": [
              "id"
            ],
            "records": 11928,
            "records_with_pk": 11928,
            "missing": 2,
            "missing_samples": [
              {
                "id": 3067211605281733
              },
              {
                "id": 3067210806709061
              }
            ],
            "pages": 60,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_REFUND",
            "table": "billiards_ods.refund_transactions",
            "endpoint": "/Order/GetRefundPayLogList",
            "pk_columns": [
              "id"
            ],
            "records": 38,
            "records_with_pk": 38,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PLATFORM_COUPON",
            "table": "billiards_ods.platform_coupon_redemption_records",
            "endpoint": "/Promotion/GetOfflineCouponConsumePageList",
            "pk_columns": [
              "id"
            ],
            "records": 16953,
            "records_with_pk": 16953,
            "missing": 0,
            "missing_samples": [],
            "pages": 85,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER",
            "table": "billiards_ods.member_profiles",
            "endpoint": "/MemberProfile/GetTenantMemberList",
            "pk_columns": [
              "id"
            ],
            "records": 556,
            "records_with_pk": 556,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_CARD",
            "table": "billiards_ods.member_stored_value_cards",
            "endpoint": "/MemberProfile/GetTenantMemberCardList",
            "pk_columns": [
              "id"
            ],
            "records": 945,
            "records_with_pk": 945,
            "missing": 0,
            "missing_samples": [],
            "pages": 5,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_BALANCE",
            "table": "billiards_ods.member_balance_changes",
            "endpoint": "/MemberProfile/GetMemberCardBalanceChange",
            "pk_columns": [
              "id"
            ],
            "records": 2474,
            "records_with_pk": 2474,
            "missing": 2,
            "missing_samples": [
              {
                "id": 3067211605855173
              },
              {
                "id": 3067210808216389
              }
            ],
            "pages": 13,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_RECHARGE_SETTLE",
            "table": "billiards_ods.recharge_settlements",
            "endpoint": "/Site/GetRechargeSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_PACKAGE",
            "table": "billiards_ods.group_buy_packages",
            "endpoint": "/PackageCoupon/QueryPackageCouponList",
            "pk_columns": [
              "id"
            ],
            "records": 18,
            "records_with_pk": 18,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_BUY_REDEMPTION",
            "table": "billiards_ods.group_buy_redemption_records",
            "endpoint": "/Site/GetSiteTableUseDetails",
            "pk_columns": [
              "id"
            ],
            "records": 8266,
            "records_with_pk": 8266,
            "missing": 0,
            "missing_samples": [],
            "pages": 42,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_STOCK",
            "table": "billiards_ods.goods_stock_summary",
            "endpoint": "/TenantGoods/GetGoodsStockReport",
            "pk_columns": [
              "sitegoodsid"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_CHANGE",
            "table": "billiards_ods.goods_stock_movements",
            "endpoint": "/GoodsStockManage/QueryGoodsOutboundReceipt",
            "pk_columns": [
              "sitegoodsstockid"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLES",
            "table": "billiards_ods.site_tables_master",
            "endpoint": "/Table/GetSiteTables",
            "pk_columns": [
              "id"
            ],
            "records": 74,
            "records_with_pk": 74,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GOODS_CATEGORY",
            "table": "billiards_ods.stock_goods_category_tree",
            "endpoint": "/TenantGoodsCategory/QueryPrimarySecondaryCategory",
            "pk_columns": [
              "id"
            ],
            "records": 9,
            "records_with_pk": 9,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS",
            "table": "billiards_ods.store_goods_master",
            "endpoint": "/TenantGoods/GetGoodsInventoryList",
            "pk_columns": [
              "id"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_FEE_DISCOUNT",
            "table": "billiards_ods.table_fee_discount_records",
            "endpoint": "/Site/GetTaiFeeAdjustList",
            "pk_columns": [
              "id"
            ],
            "records": 1740,
            "records_with_pk": 1740,
            "missing": 3,
            "missing_samples": [
              {
                "id": 3067252824935621
              },
              {
                "id": 3067252824886469
              },
              {
                "id": 3067211610753989
              }
            ],
            "pages": 9,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TENANT_GOODS",
            "table": "billiards_ods.tenant_goods_master",
            "endpoint": "/TenantGoods/QueryTenantGoods",
            "pk_columns": [
              "id"
            ],
            "records": 171,
            "records_with_pk": 171,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_TICKET",
            "table": "billiards_ods.settlement_ticket_details",
            "endpoint": "/Order/GetOrderSettleTicketNew",
            "pk_columns": [
              "ordersettleid"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 8,
        "total_errors": 0,
        "generated_at": "2026-01-26T05:14:18.744652+08:00"
      },
      "ods_to_dwd": {
        "tables": [
          {
            "dwd_table": "billiards_dwd.dim_site",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 1,
              "ods": 18361,
              "diff": -18360
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_site_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table_ex",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 68,
              "ods": 68,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant_ex",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_ex",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 556,
              "ods": 556,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 945,
              "ods": 945,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 413038.35,
                "ods_sum": 413038.35,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account_ex",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "deliveryfeededuct",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods_ex",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 171,
              "ods": 171,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_goods_category",
            "ods_table": "billiards_ods.stock_goods_category_tree",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 26,
              "ods": 9,
              "diff": 17
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package_ex",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 34,
              "ods": 34,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "adjust_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "coupon_promotion_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "real_table_charge_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 18361,
              "ods": 18361,
              "diff": 0
            },
            "amounts": [
              {
                "column": "fee_total",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "mgmt_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "used_card_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 328358.71,
                "ods_sum": 328901.21,
                "diff": -542.5
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "cost_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "real_goods_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale_ex",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 17563,
              "ods": 17563,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 21673.2,
                "ods_sum": 21673.2,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_member_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money_cost",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "push_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log_ex",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4998,
              "ods": 4998,
              "diff": 0
            },
            "amounts": [
              {
                "column": "manual_discount_amount",
                "dwd_sum": 414.17,
                "ods_sum": 414.17,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": [
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption_ex",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 11388,
              "ods": 11411,
              "diff": -23
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7544.8,
                "ods_sum": 7544.8,
                "diff": 0.0
              },
              {
                "column": "assistant_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "goods_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "recharge_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "reward_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "table_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption_ex",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 16953,
              "ods": 16953,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_payment",
            "ods_table": "billiards_ods.payment_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "pay_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "channel_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "pay_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund_ex",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 45,
              "ods": 45,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "card_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "round_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          }
        ],
        "total_count_diff": -18382
      },
      "generated_at": "2026-01-26T05:14:22.563756+08:00"
    },
    {
      "mode": "window",
      "window": {
        "start": "2025-07-01T00:00:00+08:00",
        "end": "2025-08-01T00:00:00+08:00",
        "label": "month_2025-07-01",
        "granularity": "month"
      },
      "api_to_ods": {
        "window_split_unit": "month",
        "window_compensation_hours": 2,
        "start": "2025-06-30T22:00:00+08:00",
        "end": "2025-08-01T02:00:00+08:00",
        "cutoff": null,
        "window_days": 31,
        "window_hours": 0,
        "page_size": 200,
        "chunk_size": 500,
        "sample_limit": 50,
        "store_id": 2790685415443269,
        "base_url": "https://pc.ficoo.vip/apiprod/admin/v1/",
        "results": [
          {
            "task_code": "ODS_ASSISTANT_ACCOUNT",
            "table": "billiards_ods.assistant_accounts_master",
            "endpoint": "/PersonnelManagement/SearchAssistantInfo",
            "pk_columns": [
              "id"
            ],
            "records": 204,
            "records_with_pk": 204,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_RECORDS",
            "table": "billiards_ods.settlement_records",
            "endpoint": "/Site/GetAllOrderSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 1798,
            "records_with_pk": 1798,
            "missing": 0,
            "missing_samples": [],
            "pages": 11,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_USE",
            "table": "billiards_ods.table_fee_transactions",
            "endpoint": "/Site/GetSiteTableOrderDetails",
            "pk_columns": [
              "id"
            ],
            "records": 10073,
            "records_with_pk": 10073,
            "missing": 3,
            "missing_samples": [
              {
                "id": 3067252823968965
              },
              {
                "id": 3067252823985349
              },
              {
                "id": 3067211608837061
              }
            ],
            "pages": 51,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_LEDGER",
            "table": "billiards_ods.assistant_service_records",
            "endpoint": "/AssistantPerformance/GetOrderAssistantDetails",
            "pk_columns": [
              "id"
            ],
            "records": 355,
            "records_with_pk": 355,
            "missing": 0,
            "missing_samples": [],
            "pages": 4,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_ABOLISH",
            "table": "billiards_ods.assistant_cancellation_records",
            "endpoint": "/AssistantPerformance/GetAbolitionAssistant",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS_SALES",
            "table": "billiards_ods.store_goods_sales_records",
            "endpoint": "/TenantGoods/GetGoodsSalesList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PAYMENT",
            "table": "billiards_ods.payment_transactions",
            "endpoint": "/PayLog/GetPayLogListPage",
            "pk_columns": [
              "id"
            ],
            "records": 11929,
            "records_with_pk": 11929,
            "missing": 3,
            "missing_samples": [
              {
                "id": 3067252820446405
              },
              {
                "id": 3067211605281733
              },
              {
                "id": 3067210806709061
              }
            ],
            "pages": 60,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_REFUND",
            "table": "billiards_ods.refund_transactions",
            "endpoint": "/Order/GetRefundPayLogList",
            "pk_columns": [
              "id"
            ],
            "records": 38,
            "records_with_pk": 38,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PLATFORM_COUPON",
            "table": "billiards_ods.platform_coupon_redemption_records",
            "endpoint": "/Promotion/GetOfflineCouponConsumePageList",
            "pk_columns": [
              "id"
            ],
            "records": 16953,
            "records_with_pk": 16953,
            "missing": 0,
            "missing_samples": [],
            "pages": 85,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER",
            "table": "billiards_ods.member_profiles",
            "endpoint": "/MemberProfile/GetTenantMemberList",
            "pk_columns": [
              "id"
            ],
            "records": 556,
            "records_with_pk": 556,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_CARD",
            "table": "billiards_ods.member_stored_value_cards",
            "endpoint": "/MemberProfile/GetTenantMemberCardList",
            "pk_columns": [
              "id"
            ],
            "records": 945,
            "records_with_pk": 945,
            "missing": 0,
            "missing_samples": [],
            "pages": 5,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_BALANCE",
            "table": "billiards_ods.member_balance_changes",
            "endpoint": "/MemberProfile/GetMemberCardBalanceChange",
            "pk_columns": [
              "id"
            ],
            "records": 2475,
            "records_with_pk": 2475,
            "missing": 2,
            "missing_samples": [
              {
                "id": 3067211605855173
              },
              {
                "id": 3067210808216389
              }
            ],
            "pages": 13,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_RECHARGE_SETTLE",
            "table": "billiards_ods.recharge_settlements",
            "endpoint": "/Site/GetRechargeSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 44,
            "records_with_pk": 44,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_PACKAGE",
            "table": "billiards_ods.group_buy_packages",
            "endpoint": "/PackageCoupon/QueryPackageCouponList",
            "pk_columns": [
              "id"
            ],
            "records": 18,
            "records_with_pk": 18,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_BUY_REDEMPTION",
            "table": "billiards_ods.group_buy_redemption_records",
            "endpoint": "/Site/GetSiteTableUseDetails",
            "pk_columns": [
              "id"
            ],
            "records": 8266,
            "records_with_pk": 8266,
            "missing": 0,
            "missing_samples": [],
            "pages": 42,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_STOCK",
            "table": "billiards_ods.goods_stock_summary",
            "endpoint": "/TenantGoods/GetGoodsStockReport",
            "pk_columns": [
              "sitegoodsid"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_CHANGE",
            "table": "billiards_ods.goods_stock_movements",
            "endpoint": "/GoodsStockManage/QueryGoodsOutboundReceipt",
            "pk_columns": [
              "sitegoodsstockid"
            ],
            "records": 2578,
            "records_with_pk": 2578,
            "missing": 0,
            "missing_samples": [],
            "pages": 15,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLES",
            "table": "billiards_ods.site_tables_master",
            "endpoint": "/Table/GetSiteTables",
            "pk_columns": [
              "id"
            ],
            "records": 74,
            "records_with_pk": 74,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GOODS_CATEGORY",
            "table": "billiards_ods.stock_goods_category_tree",
            "endpoint": "/TenantGoodsCategory/QueryPrimarySecondaryCategory",
            "pk_columns": [
              "id"
            ],
            "records": 9,
            "records_with_pk": 9,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS",
            "table": "billiards_ods.store_goods_master",
            "endpoint": "/TenantGoods/GetGoodsInventoryList",
            "pk_columns": [
              "id"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_FEE_DISCOUNT",
            "table": "billiards_ods.table_fee_discount_records",
            "endpoint": "/Site/GetTaiFeeAdjustList",
            "pk_columns": [
              "id"
            ],
            "records": 1740,
            "records_with_pk": 1740,
            "missing": 3,
            "missing_samples": [
              {
                "id": 3067252824935621
              },
              {
                "id": 3067252824886469
              },
              {
                "id": 3067211610753989
              }
            ],
            "pages": 9,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TENANT_GOODS",
            "table": "billiards_ods.tenant_goods_master",
            "endpoint": "/TenantGoods/QueryTenantGoods",
            "pk_columns": [
              "id"
            ],
            "records": 171,
            "records_with_pk": 171,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_TICKET",
            "table": "billiards_ods.settlement_ticket_details",
            "endpoint": "/Order/GetOrderSettleTicketNew",
            "pk_columns": [
              "ordersettleid"
            ],
            "records": 1867,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 12,
            "skipped_missing_pk": 1867,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 11,
        "total_errors": 0,
        "generated_at": "2026-01-26T05:20:21.047786+08:00"
      },
      "ods_to_dwd": {
        "tables": [
          {
            "dwd_table": "billiards_dwd.dim_site",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 1,
              "ods": 18361,
              "diff": -18360
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_site_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 1246,
              "diff": -1246
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table_ex",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 68,
              "ods": 68,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant_ex",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 23,
              "ods": 23,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 466,
              "ods": 466,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_ex",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 556,
              "ods": 556,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 945,
              "ods": 945,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 413038.35,
                "ods_sum": 413038.35,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account_ex",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 751,
              "ods": 751,
              "diff": 0
            },
            "amounts": [
              {
                "column": "deliveryfeededuct",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 149,
              "ods": 149,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods_ex",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 171,
              "ods": 171,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_goods_category",
            "ods_table": "billiards_ods.stock_goods_category_tree",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 26,
              "ods": 9,
              "diff": 17
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 14,
              "ods": 14,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package_ex",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 34,
              "ods": 34,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 1246,
              "ods": 1246,
              "diff": 0
            },
            "amounts": [
              {
                "column": "adjust_amount",
                "dwd_sum": 18607.65,
                "ods_sum": 18607.65,
                "diff": 0.0
              },
              {
                "column": "coupon_promotion_amount",
                "dwd_sum": 68759.8,
                "ods_sum": 68759.8,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 133842.45,
                "ods_sum": 133842.45,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 10234.83,
                "ods_sum": 10234.83,
                "diff": 0.0
              },
              {
                "column": "real_table_charge_money",
                "dwd_sum": 46883.63,
                "ods_sum": 46883.63,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 18361,
              "ods": 18361,
              "diff": 0
            },
            "amounts": [
              {
                "column": "fee_total",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "mgmt_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "used_card_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 328358.71,
                "ods_sum": 328901.21,
                "diff": -542.5
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 1575,
              "ods": 1575,
              "diff": 0
            },
            "amounts": [
              {
                "column": "cost_money",
                "dwd_sum": 14.25,
                "ods_sum": 14.25,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 31186.8,
                "ods_sum": 31186.8,
                "diff": 0.0
              },
              {
                "column": "real_goods_money",
                "dwd_sum": 29160.8,
                "ods_sum": 29160.8,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale_ex",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 17563,
              "ods": 17563,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 21673.2,
                "ods_sum": 21673.2,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_member_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money_cost",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "push_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 351,
              "ods": 351,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 1261.59,
                "ods_sum": 1261.59,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 113232.99,
                "ods_sum": 113232.99,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log_ex",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4998,
              "ods": 4998,
              "diff": 0
            },
            "amounts": [
              {
                "column": "manual_discount_amount",
                "dwd_sum": 414.17,
                "ods_sum": 414.17,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": [
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption_ex",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 11388,
              "ods": 11411,
              "diff": -23
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7544.8,
                "ods_sum": 7544.8,
                "diff": 0.0
              },
              {
                "column": "assistant_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "goods_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "recharge_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "reward_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "table_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 1007,
              "ods": 1007,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 72348.0,
                "ods_sum": 72348.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption_ex",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 16953,
              "ods": 16953,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_payment",
            "ods_table": "billiards_ods.payment_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 1833,
              "ods": 1833,
              "diff": 0
            },
            "amounts": [
              {
                "column": "pay_amount",
                "dwd_sum": 178060.0,
                "ods_sum": 178060.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "channel_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "pay_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund_ex",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 45,
              "ods": 45,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "card_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "round_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          }
        ],
        "total_count_diff": -19628
      },
      "generated_at": "2026-01-26T05:20:24.799157+08:00"
    },
    {
      "mode": "window",
      "window": {
        "start": "2025-08-01T00:00:00+08:00",
        "end": "2025-09-01T00:00:00+08:00",
        "label": "month_2025-08-01",
        "granularity": "month"
      },
      "api_to_ods": {
        "window_split_unit": "month",
        "window_compensation_hours": 2,
        "start": "2025-07-31T22:00:00+08:00",
        "end": "2025-09-01T02:00:00+08:00",
        "cutoff": null,
        "window_days": 31,
        "window_hours": 0,
        "page_size": 200,
        "chunk_size": 500,
        "sample_limit": 50,
        "store_id": 2790685415443269,
        "base_url": "https://pc.ficoo.vip/apiprod/admin/v1/",
        "results": [
          {
            "task_code": "ODS_ASSISTANT_ACCOUNT",
            "table": "billiards_ods.assistant_accounts_master",
            "endpoint": "/PersonnelManagement/SearchAssistantInfo",
            "pk_columns": [
              "id"
            ],
            "records": 204,
            "records_with_pk": 204,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_RECORDS",
            "table": "billiards_ods.settlement_records",
            "endpoint": "/Site/GetAllOrderSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 4653,
            "records_with_pk": 4653,
            "missing": 0,
            "missing_samples": [],
            "pages": 26,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_USE",
            "table": "billiards_ods.table_fee_transactions",
            "endpoint": "/Site/GetSiteTableOrderDetails",
            "pk_columns": [
              "id"
            ],
            "records": 10075,
            "records_with_pk": 10075,
            "missing": 5,
            "missing_samples": [
              {
                "id": 3067259091061957
              },
              {
                "id": 3067259091078341
              },
              {
                "id": 3067252823968965
              },
              {
                "id": 3067252823985349
              },
              {
                "id": 3067211608837061
              }
            ],
            "pages": 51,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_LEDGER",
            "table": "billiards_ods.assistant_service_records",
            "endpoint": "/AssistantPerformance/GetOrderAssistantDetails",
            "pk_columns": [
              "id"
            ],
            "records": 867,
            "records_with_pk": 867,
            "missing": 0,
            "missing_samples": [],
            "pages": 7,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_ABOLISH",
            "table": "billiards_ods.assistant_cancellation_records",
            "endpoint": "/AssistantPerformance/GetAbolitionAssistant",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS_SALES",
            "table": "billiards_ods.store_goods_sales_records",
            "endpoint": "/TenantGoods/GetGoodsSalesList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PAYMENT",
            "table": "billiards_ods.payment_transactions",
            "endpoint": "/PayLog/GetPayLogListPage",
            "pk_columns": [
              "id"
            ],
            "records": 11930,
            "records_with_pk": 11930,
            "missing": 4,
            "missing_samples": [
              {
                "id": 3067259086490821
              },
              {
                "id": 3067252820446405
              },
              {
                "id": 3067211605281733
              },
              {
                "id": 3067210806709061
              }
            ],
            "pages": 60,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_REFUND",
            "table": "billiards_ods.refund_transactions",
            "endpoint": "/Order/GetRefundPayLogList",
            "pk_columns": [
              "id"
            ],
            "records": 38,
            "records_with_pk": 38,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PLATFORM_COUPON",
            "table": "billiards_ods.platform_coupon_redemption_records",
            "endpoint": "/Promotion/GetOfflineCouponConsumePageList",
            "pk_columns": [
              "id"
            ],
            "records": 16953,
            "records_with_pk": 16953,
            "missing": 0,
            "missing_samples": [],
            "pages": 85,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER",
            "table": "billiards_ods.member_profiles",
            "endpoint": "/MemberProfile/GetTenantMemberList",
            "pk_columns": [
              "id"
            ],
            "records": 556,
            "records_with_pk": 556,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_CARD",
            "table": "billiards_ods.member_stored_value_cards",
            "endpoint": "/MemberProfile/GetTenantMemberCardList",
            "pk_columns": [
              "id"
            ],
            "records": 945,
            "records_with_pk": 945,
            "missing": 0,
            "missing_samples": [],
            "pages": 5,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_BALANCE",
            "table": "billiards_ods.member_balance_changes",
            "endpoint": "/MemberProfile/GetMemberCardBalanceChange",
            "pk_columns": [
              "id"
            ],
            "records": 2475,
            "records_with_pk": 2475,
            "missing": 3,
            "missing_samples": [
              {
                "id": 3067259087146181
              },
              {
                "id": 3067211605855173
              },
              {
                "id": 3067210808216389
              }
            ],
            "pages": 13,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_RECHARGE_SETTLE",
            "table": "billiards_ods.recharge_settlements",
            "endpoint": "/Site/GetRechargeSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 96,
            "records_with_pk": 96,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_PACKAGE",
            "table": "billiards_ods.group_buy_packages",
            "endpoint": "/PackageCoupon/QueryPackageCouponList",
            "pk_columns": [
              "id"
            ],
            "records": 18,
            "records_with_pk": 18,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_BUY_REDEMPTION",
            "table": "billiards_ods.group_buy_redemption_records",
            "endpoint": "/Site/GetSiteTableUseDetails",
            "pk_columns": [
              "id"
            ],
            "records": 8266,
            "records_with_pk": 8266,
            "missing": 0,
            "missing_samples": [],
            "pages": 42,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_STOCK",
            "table": "billiards_ods.goods_stock_summary",
            "endpoint": "/TenantGoods/GetGoodsStockReport",
            "pk_columns": [
              "sitegoodsid"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_CHANGE",
            "table": "billiards_ods.goods_stock_movements",
            "endpoint": "/GoodsStockManage/QueryGoodsOutboundReceipt",
            "pk_columns": [
              "sitegoodsstockid"
            ],
            "records": 5271,
            "records_with_pk": 5271,
            "missing": 0,
            "missing_samples": [],
            "pages": 28,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLES",
            "table": "billiards_ods.site_tables_master",
            "endpoint": "/Table/GetSiteTables",
            "pk_columns": [
              "id"
            ],
            "records": 74,
            "records_with_pk": 74,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GOODS_CATEGORY",
            "table": "billiards_ods.stock_goods_category_tree",
            "endpoint": "/TenantGoodsCategory/QueryPrimarySecondaryCategory",
            "pk_columns": [
              "id"
            ],
            "records": 9,
            "records_with_pk": 9,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS",
            "table": "billiards_ods.store_goods_master",
            "endpoint": "/TenantGoods/GetGoodsInventoryList",
            "pk_columns": [
              "id"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_FEE_DISCOUNT",
            "table": "billiards_ods.table_fee_discount_records",
            "endpoint": "/Site/GetTaiFeeAdjustList",
            "pk_columns": [
              "id"
            ],
            "records": 1740,
            "records_with_pk": 1740,
            "missing": 3,
            "missing_samples": [
              {
                "id": 3067252824935621
              },
              {
                "id": 3067252824886469
              },
              {
                "id": 3067211610753989
              }
            ],
            "pages": 9,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TENANT_GOODS",
            "table": "billiards_ods.tenant_goods_master",
            "endpoint": "/TenantGoods/QueryTenantGoods",
            "pk_columns": [
              "id"
            ],
            "records": 171,
            "records_with_pk": 171,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_TICKET",
            "table": "billiards_ods.settlement_ticket_details",
            "endpoint": "/Order/GetOrderSettleTicketNew",
            "pk_columns": [
              "ordersettleid"
            ],
            "records": 4817,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 26,
            "skipped_missing_pk": 4817,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 15,
        "total_errors": 0,
        "generated_at": "2026-01-26T05:27:26.825587+08:00"
      },
      "ods_to_dwd": {
        "tables": [
          {
            "dwd_table": "billiards_dwd.dim_site",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 1,
              "ods": 18361,
              "diff": -18360
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_site_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 3587,
              "diff": -3587
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table_ex",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 68,
              "ods": 68,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant_ex",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 7,
              "ods": 7,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 18,
              "ods": 18,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_ex",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 556,
              "ods": 556,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 945,
              "ods": 945,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 413038.35,
                "ods_sum": 413038.35,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account_ex",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 51,
              "ods": 51,
              "diff": 0
            },
            "amounts": [
              {
                "column": "deliveryfeededuct",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 6,
              "ods": 6,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods_ex",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 171,
              "ods": 171,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_goods_category",
            "ods_table": "billiards_ods.stock_goods_category_tree",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 26,
              "ods": 9,
              "diff": 17
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 1,
              "ods": 1,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package_ex",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 34,
              "ods": 34,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 3587,
              "ods": 3587,
              "diff": 0
            },
            "amounts": [
              {
                "column": "adjust_amount",
                "dwd_sum": 54919.33,
                "ods_sum": 54919.33,
                "diff": 0.0
              },
              {
                "column": "coupon_promotion_amount",
                "dwd_sum": 186359.95,
                "ods_sum": 186359.95,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 383097.96,
                "ods_sum": 383097.96,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 44840.88,
                "ods_sum": 44840.88,
                "diff": 0.0
              },
              {
                "column": "real_table_charge_money",
                "dwd_sum": 145513.13,
                "ods_sum": 145513.13,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 18361,
              "ods": 18361,
              "diff": 0
            },
            "amounts": [
              {
                "column": "fee_total",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "mgmt_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "used_card_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 328358.71,
                "ods_sum": 328901.21,
                "diff": -542.5
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 4305,
              "ods": 4305,
              "diff": 0
            },
            "amounts": [
              {
                "column": "cost_money",
                "dwd_sum": 47.45,
                "ods_sum": 47.45,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 87523.4,
                "ods_sum": 87523.4,
                "diff": 0.0
              },
              {
                "column": "real_goods_money",
                "dwd_sum": 83759.0,
                "ods_sum": 83759.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale_ex",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 17563,
              "ods": 17563,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 21673.2,
                "ods_sum": 21673.2,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_member_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money_cost",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "push_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 859,
              "ods": 859,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 1874.75,
                "ods_sum": 1874.75,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 268501.57,
                "ods_sum": 268501.57,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log_ex",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4998,
              "ods": 4998,
              "diff": 0
            },
            "amounts": [
              {
                "column": "manual_discount_amount",
                "dwd_sum": 414.17,
                "ods_sum": 414.17,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": [
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption_ex",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 11388,
              "ods": 11411,
              "diff": -23
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7544.8,
                "ods_sum": 7544.8,
                "diff": 0.0
              },
              {
                "column": "assistant_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "goods_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "recharge_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "reward_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "table_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 2850,
              "ods": 2850,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 189960.0,
                "ods_sum": 189960.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption_ex",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 16953,
              "ods": 16953,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_payment",
            "ods_table": "billiards_ods.payment_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 4763,
              "ods": 4763,
              "diff": 0
            },
            "amounts": [
              {
                "column": "pay_amount",
                "dwd_sum": 381598.0,
                "ods_sum": 381598.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "channel_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "pay_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund_ex",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 45,
              "ods": 45,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "card_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "round_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          }
        ],
        "total_count_diff": -21969
      },
      "generated_at": "2026-01-26T05:27:30.496154+08:00"
    },
    {
      "mode": "window",
      "window": {
        "start": "2025-09-01T00:00:00+08:00",
        "end": "2025-10-01T00:00:00+08:00",
        "label": "month_2025-09-01",
        "granularity": "month"
      },
      "api_to_ods": {
        "window_split_unit": "month",
        "window_compensation_hours": 2,
        "start": "2025-08-31T22:00:00+08:00",
        "end": "2025-10-01T02:00:00+08:00",
        "cutoff": null,
        "window_days": 30,
        "window_hours": 0,
        "page_size": 200,
        "chunk_size": 500,
        "sample_limit": 50,
        "store_id": 2790685415443269,
        "base_url": "https://pc.ficoo.vip/apiprod/admin/v1/",
        "results": [
          {
            "task_code": "ODS_ASSISTANT_ACCOUNT",
            "table": "billiards_ods.assistant_accounts_master",
            "endpoint": "/PersonnelManagement/SearchAssistantInfo",
            "pk_columns": [
              "id"
            ],
            "records": 204,
            "records_with_pk": 204,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_RECORDS",
            "table": "billiards_ods.settlement_records",
            "endpoint": "/Site/GetAllOrderSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 3738,
            "records_with_pk": 3738,
            "missing": 0,
            "missing_samples": [],
            "pages": 21,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_USE",
            "table": "billiards_ods.table_fee_transactions",
            "endpoint": "/Site/GetSiteTableOrderDetails",
            "pk_columns": [
              "id"
            ],
            "records": 10075,
            "records_with_pk": 10075,
            "missing": 5,
            "missing_samples": [
              {
                "id": 3067259091061957
              },
              {
                "id": 3067259091078341
              },
              {
                "id": 3067252823968965
              },
              {
                "id": 3067252823985349
              },
              {
                "id": 3067211608837061
              }
            ],
            "pages": 51,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_LEDGER",
            "table": "billiards_ods.assistant_service_records",
            "endpoint": "/AssistantPerformance/GetOrderAssistantDetails",
            "pk_columns": [
              "id"
            ],
            "records": 655,
            "records_with_pk": 655,
            "missing": 0,
            "missing_samples": [],
            "pages": 6,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_ABOLISH",
            "table": "billiards_ods.assistant_cancellation_records",
            "endpoint": "/AssistantPerformance/GetAbolitionAssistant",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS_SALES",
            "table": "billiards_ods.store_goods_sales_records",
            "endpoint": "/TenantGoods/GetGoodsSalesList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PAYMENT",
            "table": "billiards_ods.payment_transactions",
            "endpoint": "/PayLog/GetPayLogListPage",
            "pk_columns": [
              "id"
            ],
            "records": 11930,
            "records_with_pk": 11930,
            "missing": 4,
            "missing_samples": [
              {
                "id": 3067259086490821
              },
              {
                "id": 3067252820446405
              },
              {
                "id": 3067211605281733
              },
              {
                "id": 3067210806709061
              }
            ],
            "pages": 60,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_REFUND",
            "table": "billiards_ods.refund_transactions",
            "endpoint": "/Order/GetRefundPayLogList",
            "pk_columns": [
              "id"
            ],
            "records": 38,
            "records_with_pk": 38,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PLATFORM_COUPON",
            "table": "billiards_ods.platform_coupon_redemption_records",
            "endpoint": "/Promotion/GetOfflineCouponConsumePageList",
            "pk_columns": [
              "id"
            ],
            "records": 16953,
            "records_with_pk": 16953,
            "missing": 0,
            "missing_samples": [],
            "pages": 85,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER",
            "table": "billiards_ods.member_profiles",
            "endpoint": "/MemberProfile/GetTenantMemberList",
            "pk_columns": [
              "id"
            ],
            "records": 556,
            "records_with_pk": 556,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_CARD",
            "table": "billiards_ods.member_stored_value_cards",
            "endpoint": "/MemberProfile/GetTenantMemberCardList",
            "pk_columns": [
              "id"
            ],
            "records": 945,
            "records_with_pk": 945,
            "missing": 0,
            "missing_samples": [],
            "pages": 5,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_BALANCE",
            "table": "billiards_ods.member_balance_changes",
            "endpoint": "/MemberProfile/GetMemberCardBalanceChange",
            "pk_columns": [
              "id"
            ],
            "records": 2475,
            "records_with_pk": 2475,
            "missing": 3,
            "missing_samples": [
              {
                "id": 3067259087146181
              },
              {
                "id": 3067211605855173
              },
              {
                "id": 3067210808216389
              }
            ],
            "pages": 13,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_RECHARGE_SETTLE",
            "table": "billiards_ods.recharge_settlements",
            "endpoint": "/Site/GetRechargeSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 54,
            "records_with_pk": 54,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_PACKAGE",
            "table": "billiards_ods.group_buy_packages",
            "endpoint": "/PackageCoupon/QueryPackageCouponList",
            "pk_columns": [
              "id"
            ],
            "records": 18,
            "records_with_pk": 18,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_BUY_REDEMPTION",
            "table": "billiards_ods.group_buy_redemption_records",
            "endpoint": "/Site/GetSiteTableUseDetails",
            "pk_columns": [
              "id"
            ],
            "records": 8266,
            "records_with_pk": 8266,
            "missing": 0,
            "missing_samples": [],
            "pages": 42,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_STOCK",
            "table": "billiards_ods.goods_stock_summary",
            "endpoint": "/TenantGoods/GetGoodsStockReport",
            "pk_columns": [
              "sitegoodsid"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_CHANGE",
            "table": "billiards_ods.goods_stock_movements",
            "endpoint": "/GoodsStockManage/QueryGoodsOutboundReceipt",
            "pk_columns": [
              "sitegoodsstockid"
            ],
            "records": 4853,
            "records_with_pk": 4853,
            "missing": 0,
            "missing_samples": [],
            "pages": 27,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLES",
            "table": "billiards_ods.site_tables_master",
            "endpoint": "/Table/GetSiteTables",
            "pk_columns": [
              "id"
            ],
            "records": 74,
            "records_with_pk": 74,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GOODS_CATEGORY",
            "table": "billiards_ods.stock_goods_category_tree",
            "endpoint": "/TenantGoodsCategory/QueryPrimarySecondaryCategory",
            "pk_columns": [
              "id"
            ],
            "records": 9,
            "records_with_pk": 9,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS",
            "table": "billiards_ods.store_goods_master",
            "endpoint": "/TenantGoods/GetGoodsInventoryList",
            "pk_columns": [
              "id"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_FEE_DISCOUNT",
            "table": "billiards_ods.table_fee_discount_records",
            "endpoint": "/Site/GetTaiFeeAdjustList",
            "pk_columns": [
              "id"
            ],
            "records": 1740,
            "records_with_pk": 1740,
            "missing": 3,
            "missing_samples": [
              {
                "id": 3067252824935621
              },
              {
                "id": 3067252824886469
              },
              {
                "id": 3067211610753989
              }
            ],
            "pages": 9,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TENANT_GOODS",
            "table": "billiards_ods.tenant_goods_master",
            "endpoint": "/TenantGoods/QueryTenantGoods",
            "pk_columns": [
              "id"
            ],
            "records": 171,
            "records_with_pk": 171,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_TICKET",
            "table": "billiards_ods.settlement_ticket_details",
            "endpoint": "/Order/GetOrderSettleTicketNew",
            "pk_columns": [
              "ordersettleid"
            ],
            "records": 3828,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 22,
            "skipped_missing_pk": 3828,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 15,
        "total_errors": 0,
        "generated_at": "2026-01-26T05:34:03.938323+08:00"
      },
      "ods_to_dwd": {
        "tables": [
          {
            "dwd_table": "billiards_dwd.dim_site",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 1,
              "ods": 18361,
              "diff": -18360
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_site_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 1264,
              "diff": -1264
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table_ex",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 68,
              "ods": 68,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant_ex",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 11,
              "ods": 11,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 6,
              "ods": 6,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_ex",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 556,
              "ods": 556,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 945,
              "ods": 945,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 413038.35,
                "ods_sum": 413038.35,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account_ex",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 10,
              "ods": 10,
              "diff": 0
            },
            "amounts": [
              {
                "column": "deliveryfeededuct",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 2,
              "ods": 2,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods_ex",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 171,
              "ods": 171,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_goods_category",
            "ods_table": "billiards_ods.stock_goods_category_tree",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 26,
              "ods": 9,
              "diff": 17
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 1,
              "ods": 1,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package_ex",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 34,
              "ods": 34,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 1264,
              "ods": 1264,
              "diff": 0
            },
            "amounts": [
              {
                "column": "adjust_amount",
                "dwd_sum": 11020.51,
                "ods_sum": 11020.51,
                "diff": 0.0
              },
              {
                "column": "coupon_promotion_amount",
                "dwd_sum": 73893.75,
                "ods_sum": 73893.75,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 137203.92,
                "ods_sum": 137203.92,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 15685.02,
                "ods_sum": 15685.02,
                "diff": 0.0
              },
              {
                "column": "real_table_charge_money",
                "dwd_sum": 52340.33,
                "ods_sum": 52340.33,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 18361,
              "ods": 18361,
              "diff": 0
            },
            "amounts": [
              {
                "column": "fee_total",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "mgmt_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "used_card_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 328358.71,
                "ods_sum": 328901.21,
                "diff": -542.5
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 1449,
              "ods": 1449,
              "diff": 0
            },
            "amounts": [
              {
                "column": "cost_money",
                "dwd_sum": 1.41,
                "ods_sum": 1.41,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 24706.9,
                "ods_sum": 24706.9,
                "diff": 0.0
              },
              {
                "column": "real_goods_money",
                "dwd_sum": 23874.4,
                "ods_sum": 23874.4,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale_ex",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 17563,
              "ods": 17563,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 21673.2,
                "ods_sum": 21673.2,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_member_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money_cost",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "push_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 654,
              "ods": 654,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 781.44,
                "ods_sum": 781.44,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 192541.75,
                "ods_sum": 192541.75,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log_ex",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4998,
              "ods": 4998,
              "diff": 0
            },
            "amounts": [
              {
                "column": "manual_discount_amount",
                "dwd_sum": 414.17,
                "ods_sum": 414.17,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": [
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 1173,
              "ods": 1173,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 75824.0,
                "ods_sum": 75824.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 73843.08,
                "ods_sum": 73843.08,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption_ex",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 11388,
              "ods": 11411,
              "diff": -23
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7544.8,
                "ods_sum": 7544.8,
                "diff": 0.0
              },
              {
                "column": "assistant_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "goods_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "recharge_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "reward_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "table_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 2849,
              "ods": 2849,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 184722.0,
                "ods_sum": 184722.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption_ex",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 16953,
              "ods": 16953,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_payment",
            "ods_table": "billiards_ods.payment_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 1544,
              "ods": 1544,
              "diff": 0
            },
            "amounts": [
              {
                "column": "pay_amount",
                "dwd_sum": 108880.0,
                "ods_sum": 108880.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 3,
              "ods": 3,
              "diff": 0
            },
            "amounts": [
              {
                "column": "channel_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "pay_amount",
                "dwd_sum": -1011.0,
                "ods_sum": -1011.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund_ex",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 45,
              "ods": 45,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "card_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "round_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          }
        ],
        "total_count_diff": -19646
      },
      "generated_at": "2026-01-26T05:34:07.598877+08:00"
    },
    {
      "mode": "window",
      "window": {
        "start": "2025-10-01T00:00:00+08:00",
        "end": "2025-11-01T00:00:00+08:00",
        "label": "month_2025-10-01",
        "granularity": "month"
      },
      "api_to_ods": {
        "window_split_unit": "month",
        "window_compensation_hours": 2,
        "start": "2025-09-30T22:00:00+08:00",
        "end": "2025-11-01T02:00:00+08:00",
        "cutoff": null,
        "window_days": 31,
        "window_hours": 0,
        "page_size": 200,
        "chunk_size": 500,
        "sample_limit": 50,
        "store_id": 2790685415443269,
        "base_url": "https://pc.ficoo.vip/apiprod/admin/v1/",
        "results": [
          {
            "task_code": "ODS_ASSISTANT_ACCOUNT",
            "table": "billiards_ods.assistant_accounts_master",
            "endpoint": "/PersonnelManagement/SearchAssistantInfo",
            "pk_columns": [
              "id"
            ],
            "records": 204,
            "records_with_pk": 204,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_RECORDS",
            "table": "billiards_ods.settlement_records",
            "endpoint": "/Site/GetAllOrderSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 789,
            "records_with_pk": 789,
            "missing": 0,
            "missing_samples": [],
            "pages": 6,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_USE",
            "table": "billiards_ods.table_fee_transactions",
            "endpoint": "/Site/GetSiteTableOrderDetails",
            "pk_columns": [
              "id"
            ],
            "records": 10075,
            "records_with_pk": 10075,
            "missing": 5,
            "missing_samples": [
              {
                "id": 3067259091061957
              },
              {
                "id": 3067259091078341
              },
              {
                "id": 3067252823968965
              },
              {
                "id": 3067252823985349
              },
              {
                "id": 3067211608837061
              }
            ],
            "pages": 51,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_LEDGER",
            "table": "billiards_ods.assistant_service_records",
            "endpoint": "/AssistantPerformance/GetOrderAssistantDetails",
            "pk_columns": [
              "id"
            ],
            "records": 171,
            "records_with_pk": 171,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_ABOLISH",
            "table": "billiards_ods.assistant_cancellation_records",
            "endpoint": "/AssistantPerformance/GetAbolitionAssistant",
            "pk_columns": [
              "id"
            ],
            "records": 5,
            "records_with_pk": 5,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS_SALES",
            "table": "billiards_ods.store_goods_sales_records",
            "endpoint": "/TenantGoods/GetGoodsSalesList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PAYMENT",
            "table": "billiards_ods.payment_transactions",
            "endpoint": "/PayLog/GetPayLogListPage",
            "pk_columns": [
              "id"
            ],
            "records": 11930,
            "records_with_pk": 11930,
            "missing": 4,
            "missing_samples": [
              {
                "id": 3067259086490821
              },
              {
                "id": 3067252820446405
              },
              {
                "id": 3067211605281733
              },
              {
                "id": 3067210806709061
              }
            ],
            "pages": 60,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_REFUND",
            "table": "billiards_ods.refund_transactions",
            "endpoint": "/Order/GetRefundPayLogList",
            "pk_columns": [
              "id"
            ],
            "records": 38,
            "records_with_pk": 38,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PLATFORM_COUPON",
            "table": "billiards_ods.platform_coupon_redemption_records",
            "endpoint": "/Promotion/GetOfflineCouponConsumePageList",
            "pk_columns": [
              "id"
            ],
            "records": 16953,
            "records_with_pk": 16953,
            "missing": 0,
            "missing_samples": [],
            "pages": 85,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER",
            "table": "billiards_ods.member_profiles",
            "endpoint": "/MemberProfile/GetTenantMemberList",
            "pk_columns": [
              "id"
            ],
            "records": 556,
            "records_with_pk": 556,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_CARD",
            "table": "billiards_ods.member_stored_value_cards",
            "endpoint": "/MemberProfile/GetTenantMemberCardList",
            "pk_columns": [
              "id"
            ],
            "records": 945,
            "records_with_pk": 945,
            "missing": 0,
            "missing_samples": [],
            "pages": 5,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_BALANCE",
            "table": "billiards_ods.member_balance_changes",
            "endpoint": "/MemberProfile/GetMemberCardBalanceChange",
            "pk_columns": [
              "id"
            ],
            "records": 2475,
            "records_with_pk": 2475,
            "missing": 3,
            "missing_samples": [
              {
                "id": 3067259087146181
              },
              {
                "id": 3067211605855173
              },
              {
                "id": 3067210808216389
              }
            ],
            "pages": 13,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_RECHARGE_SETTLE",
            "table": "billiards_ods.recharge_settlements",
            "endpoint": "/Site/GetRechargeSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 13,
            "records_with_pk": 13,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_PACKAGE",
            "table": "billiards_ods.group_buy_packages",
            "endpoint": "/PackageCoupon/QueryPackageCouponList",
            "pk_columns": [
              "id"
            ],
            "records": 18,
            "records_with_pk": 18,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_BUY_REDEMPTION",
            "table": "billiards_ods.group_buy_redemption_records",
            "endpoint": "/Site/GetSiteTableUseDetails",
            "pk_columns": [
              "id"
            ],
            "records": 8266,
            "records_with_pk": 8266,
            "missing": 0,
            "missing_samples": [],
            "pages": 42,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_STOCK",
            "table": "billiards_ods.goods_stock_summary",
            "endpoint": "/TenantGoods/GetGoodsStockReport",
            "pk_columns": [
              "sitegoodsid"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_CHANGE",
            "table": "billiards_ods.goods_stock_movements",
            "endpoint": "/GoodsStockManage/QueryGoodsOutboundReceipt",
            "pk_columns": [
              "sitegoodsstockid"
            ],
            "records": 1167,
            "records_with_pk": 1167,
            "missing": 0,
            "missing_samples": [],
            "pages": 8,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLES",
            "table": "billiards_ods.site_tables_master",
            "endpoint": "/Table/GetSiteTables",
            "pk_columns": [
              "id"
            ],
            "records": 74,
            "records_with_pk": 74,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GOODS_CATEGORY",
            "table": "billiards_ods.stock_goods_category_tree",
            "endpoint": "/TenantGoodsCategory/QueryPrimarySecondaryCategory",
            "pk_columns": [
              "id"
            ],
            "records": 9,
            "records_with_pk": 9,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS",
            "table": "billiards_ods.store_goods_master",
            "endpoint": "/TenantGoods/GetGoodsInventoryList",
            "pk_columns": [
              "id"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_FEE_DISCOUNT",
            "table": "billiards_ods.table_fee_discount_records",
            "endpoint": "/Site/GetTaiFeeAdjustList",
            "pk_columns": [
              "id"
            ],
            "records": 1740,
            "records_with_pk": 1740,
            "missing": 3,
            "missing_samples": [
              {
                "id": 3067252824935621
              },
              {
                "id": 3067252824886469
              },
              {
                "id": 3067211610753989
              }
            ],
            "pages": 9,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TENANT_GOODS",
            "table": "billiards_ods.tenant_goods_master",
            "endpoint": "/TenantGoods/QueryTenantGoods",
            "pk_columns": [
              "id"
            ],
            "records": 171,
            "records_with_pk": 171,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_TICKET",
            "table": "billiards_ods.settlement_ticket_details",
            "endpoint": "/Order/GetOrderSettleTicketNew",
            "pk_columns": [
              "ordersettleid"
            ],
            "records": 803,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 6,
            "skipped_missing_pk": 803,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 15,
        "total_errors": 0,
        "generated_at": "2026-01-26T05:39:56.916120+08:00"
      },
      "ods_to_dwd": {
        "tables": [
          {
            "dwd_table": "billiards_dwd.dim_site",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 1,
              "ods": 18361,
              "diff": -18360
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_site_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 2824,
              "diff": -2824
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table_ex",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 68,
              "ods": 68,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant_ex",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 5,
              "ods": 5,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 10,
              "ods": 10,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_ex",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 556,
              "ods": 556,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 945,
              "ods": 945,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 413038.35,
                "ods_sum": 413038.35,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account_ex",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 21,
              "ods": 21,
              "diff": 0
            },
            "amounts": [
              {
                "column": "deliveryfeededuct",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 5,
              "ods": 5,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods_ex",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 171,
              "ods": 171,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_goods_category",
            "ods_table": "billiards_ods.stock_goods_category_tree",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 26,
              "ods": 9,
              "diff": 17
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 1,
              "ods": 1,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package_ex",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 34,
              "ods": 34,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 2824,
              "ods": 2824,
              "diff": 0
            },
            "amounts": [
              {
                "column": "adjust_amount",
                "dwd_sum": 40394.85,
                "ods_sum": 40394.85,
                "diff": 0.0
              },
              {
                "column": "coupon_promotion_amount",
                "dwd_sum": 154001.27,
                "ods_sum": 154001.27,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 310789.49,
                "ods_sum": 310789.49,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 33315.15,
                "ods_sum": 33315.15,
                "diff": 0.0
              },
              {
                "column": "real_table_charge_money",
                "dwd_sum": 116393.37,
                "ods_sum": 116393.37,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 18361,
              "ods": 18361,
              "diff": 0
            },
            "amounts": [
              {
                "column": "fee_total",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "mgmt_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "used_card_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 328358.71,
                "ods_sum": 328901.21,
                "diff": -542.5
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 3475,
              "ods": 3475,
              "diff": 0
            },
            "amounts": [
              {
                "column": "cost_money",
                "dwd_sum": 1319.49,
                "ods_sum": 1319.49,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 66216.8,
                "ods_sum": 66216.8,
                "diff": 0.0
              },
              {
                "column": "real_goods_money",
                "dwd_sum": 64234.0,
                "ods_sum": 64234.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale_ex",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 17563,
              "ods": 17563,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 21673.2,
                "ods_sum": 21673.2,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_member_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money_cost",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "push_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 573,
              "ods": 573,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 2143.56,
                "ods_sum": 2143.56,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 172536.78,
                "ods_sum": 172536.78,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log_ex",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4998,
              "ods": 4998,
              "diff": 0
            },
            "amounts": [
              {
                "column": "manual_discount_amount",
                "dwd_sum": 414.17,
                "ods_sum": 414.17,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": [
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 2490,
              "ods": 2490,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 160988.0,
                "ods_sum": 160988.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 154001.27,
                "ods_sum": 154001.27,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption_ex",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 11388,
              "ods": 11411,
              "diff": -23
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7544.8,
                "ods_sum": 7544.8,
                "diff": 0.0
              },
              {
                "column": "assistant_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "goods_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "recharge_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "reward_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "table_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 2489,
              "ods": 2489,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 160076.0,
                "ods_sum": 160076.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption_ex",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 16953,
              "ods": 16953,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_payment",
            "ods_table": "billiards_ods.payment_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 3616,
              "ods": 3616,
              "diff": 0
            },
            "amounts": [
              {
                "column": "pay_amount",
                "dwd_sum": 286088.0,
                "ods_sum": 286088.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 5,
              "ods": 5,
              "diff": 0
            },
            "amounts": [
              {
                "column": "channel_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "pay_amount",
                "dwd_sum": -47020.0,
                "ods_sum": -47020.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund_ex",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 45,
              "ods": 45,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "card_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "round_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          }
        ],
        "total_count_diff": -21206
      },
      "generated_at": "2026-01-26T05:40:00.785991+08:00"
    },
    {
      "mode": "window",
      "window": {
        "start": "2025-11-01T00:00:00+08:00",
        "end": "2025-12-01T00:00:00+08:00",
        "label": "month_2025-11-01",
        "granularity": "month"
      },
      "api_to_ods": {
        "window_split_unit": "month",
        "window_compensation_hours": 2,
        "start": "2025-10-31T22:00:00+08:00",
        "end": "2025-12-01T02:00:00+08:00",
        "cutoff": null,
        "window_days": 30,
        "window_hours": 0,
        "page_size": 200,
        "chunk_size": 500,
        "sample_limit": 50,
        "store_id": 2790685415443269,
        "base_url": "https://pc.ficoo.vip/apiprod/admin/v1/",
        "results": [
          {
            "task_code": "ODS_ASSISTANT_ACCOUNT",
            "table": "billiards_ods.assistant_accounts_master",
            "endpoint": "/PersonnelManagement/SearchAssistantInfo",
            "pk_columns": [
              "id"
            ],
            "records": 204,
            "records_with_pk": 204,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_RECORDS",
            "table": "billiards_ods.settlement_records",
            "endpoint": "/Site/GetAllOrderSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 3927,
            "records_with_pk": 3927,
            "missing": 0,
            "missing_samples": [],
            "pages": 22,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_USE",
            "table": "billiards_ods.table_fee_transactions",
            "endpoint": "/Site/GetSiteTableOrderDetails",
            "pk_columns": [
              "id"
            ],
            "records": 10075,
            "records_with_pk": 10075,
            "missing": 5,
            "missing_samples": [
              {
                "id": 3067259091061957
              },
              {
                "id": 3067259091078341
              },
              {
                "id": 3067252823968965
              },
              {
                "id": 3067252823985349
              },
              {
                "id": 3067211608837061
              }
            ],
            "pages": 51,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_LEDGER",
            "table": "billiards_ods.assistant_service_records",
            "endpoint": "/AssistantPerformance/GetOrderAssistantDetails",
            "pk_columns": [
              "id"
            ],
            "records": 890,
            "records_with_pk": 890,
            "missing": 0,
            "missing_samples": [],
            "pages": 7,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_ABOLISH",
            "table": "billiards_ods.assistant_cancellation_records",
            "endpoint": "/AssistantPerformance/GetAbolitionAssistant",
            "pk_columns": [
              "id"
            ],
            "records": 12,
            "records_with_pk": 12,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS_SALES",
            "table": "billiards_ods.store_goods_sales_records",
            "endpoint": "/TenantGoods/GetGoodsSalesList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PAYMENT",
            "table": "billiards_ods.payment_transactions",
            "endpoint": "/PayLog/GetPayLogListPage",
            "pk_columns": [
              "id"
            ],
            "records": 11930,
            "records_with_pk": 11930,
            "missing": 4,
            "missing_samples": [
              {
                "id": 3067259086490821
              },
              {
                "id": 3067252820446405
              },
              {
                "id": 3067211605281733
              },
              {
                "id": 3067210806709061
              }
            ],
            "pages": 60,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_REFUND",
            "table": "billiards_ods.refund_transactions",
            "endpoint": "/Order/GetRefundPayLogList",
            "pk_columns": [
              "id"
            ],
            "records": 38,
            "records_with_pk": 38,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PLATFORM_COUPON",
            "table": "billiards_ods.platform_coupon_redemption_records",
            "endpoint": "/Promotion/GetOfflineCouponConsumePageList",
            "pk_columns": [
              "id"
            ],
            "records": 16953,
            "records_with_pk": 16953,
            "missing": 0,
            "missing_samples": [],
            "pages": 85,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER",
            "table": "billiards_ods.member_profiles",
            "endpoint": "/MemberProfile/GetTenantMemberList",
            "pk_columns": [
              "id"
            ],
            "records": 556,
            "records_with_pk": 556,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_CARD",
            "table": "billiards_ods.member_stored_value_cards",
            "endpoint": "/MemberProfile/GetTenantMemberCardList",
            "pk_columns": [
              "id"
            ],
            "records": 945,
            "records_with_pk": 945,
            "missing": 0,
            "missing_samples": [],
            "pages": 5,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_BALANCE",
            "table": "billiards_ods.member_balance_changes",
            "endpoint": "/MemberProfile/GetMemberCardBalanceChange",
            "pk_columns": [
              "id"
            ],
            "records": 2476,
            "records_with_pk": 2476,
            "missing": 4,
            "missing_samples": [
              {
                "id": 3067278947175045
              },
              {
                "id": 3067259087146181
              },
              {
                "id": 3067211605855173
              },
              {
                "id": 3067210808216389
              }
            ],
            "pages": 13,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_RECHARGE_SETTLE",
            "table": "billiards_ods.recharge_settlements",
            "endpoint": "/Site/GetRechargeSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 80,
            "records_with_pk": 80,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_PACKAGE",
            "table": "billiards_ods.group_buy_packages",
            "endpoint": "/PackageCoupon/QueryPackageCouponList",
            "pk_columns": [
              "id"
            ],
            "records": 18,
            "records_with_pk": 18,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_BUY_REDEMPTION",
            "table": "billiards_ods.group_buy_redemption_records",
            "endpoint": "/Site/GetSiteTableUseDetails",
            "pk_columns": [
              "id"
            ],
            "records": 8266,
            "records_with_pk": 8266,
            "missing": 0,
            "missing_samples": [],
            "pages": 42,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_STOCK",
            "table": "billiards_ods.goods_stock_summary",
            "endpoint": "/TenantGoods/GetGoodsStockReport",
            "pk_columns": [
              "sitegoodsid"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_CHANGE",
            "table": "billiards_ods.goods_stock_movements",
            "endpoint": "/GoodsStockManage/QueryGoodsOutboundReceipt",
            "pk_columns": [
              "sitegoodsstockid"
            ],
            "records": 5561,
            "records_with_pk": 5561,
            "missing": 0,
            "missing_samples": [],
            "pages": 30,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLES",
            "table": "billiards_ods.site_tables_master",
            "endpoint": "/Table/GetSiteTables",
            "pk_columns": [
              "id"
            ],
            "records": 74,
            "records_with_pk": 74,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GOODS_CATEGORY",
            "table": "billiards_ods.stock_goods_category_tree",
            "endpoint": "/TenantGoodsCategory/QueryPrimarySecondaryCategory",
            "pk_columns": [
              "id"
            ],
            "records": 9,
            "records_with_pk": 9,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS",
            "table": "billiards_ods.store_goods_master",
            "endpoint": "/TenantGoods/GetGoodsInventoryList",
            "pk_columns": [
              "id"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_FEE_DISCOUNT",
            "table": "billiards_ods.table_fee_discount_records",
            "endpoint": "/Site/GetTaiFeeAdjustList",
            "pk_columns": [
              "id"
            ],
            "records": 1740,
            "records_with_pk": 1740,
            "missing": 3,
            "missing_samples": [
              {
                "id": 3067252824935621
              },
              {
                "id": 3067252824886469
              },
              {
                "id": 3067211610753989
              }
            ],
            "pages": 9,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TENANT_GOODS",
            "table": "billiards_ods.tenant_goods_master",
            "endpoint": "/TenantGoods/QueryTenantGoods",
            "pk_columns": [
              "id"
            ],
            "records": 171,
            "records_with_pk": 171,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_TICKET",
            "table": "billiards_ods.settlement_ticket_details",
            "endpoint": "/Order/GetOrderSettleTicketNew",
            "pk_columns": [
              "ordersettleid"
            ],
            "records": 4052,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 22,
            "skipped_missing_pk": 4052,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 16,
        "total_errors": 0,
        "generated_at": "2026-01-26T05:46:41.582600+08:00"
      },
      "ods_to_dwd": {
        "tables": [
          {
            "dwd_table": "billiards_dwd.dim_site",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 1,
              "ods": 18361,
              "diff": -18360
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_site_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 3336,
              "diff": -3336
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table_ex",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 68,
              "ods": 68,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant_ex",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 12,
              "ods": 12,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 40,
              "ods": 40,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_ex",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 556,
              "ods": 556,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 945,
              "ods": 945,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 413038.35,
                "ods_sum": 413038.35,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account_ex",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 80,
              "ods": 80,
              "diff": 0
            },
            "amounts": [
              {
                "column": "deliveryfeededuct",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 3,
              "ods": 3,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods_ex",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 171,
              "ods": 171,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_goods_category",
            "ods_table": "billiards_ods.stock_goods_category_tree",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 26,
              "ods": 9,
              "diff": 17
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package_ex",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 34,
              "ods": 34,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 3336,
              "ods": 3336,
              "diff": 0
            },
            "amounts": [
              {
                "column": "adjust_amount",
                "dwd_sum": 71642.8,
                "ods_sum": 71642.8,
                "diff": 0.0
              },
              {
                "column": "coupon_promotion_amount",
                "dwd_sum": 166439.03,
                "ods_sum": 166439.03,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 394705.62,
                "ods_sum": 394705.62,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 33307.25,
                "ods_sum": 33307.25,
                "diff": 0.0
              },
              {
                "column": "real_table_charge_money",
                "dwd_sum": 156623.79,
                "ods_sum": 156623.79,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 18361,
              "ods": 18361,
              "diff": 0
            },
            "amounts": [
              {
                "column": "fee_total",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "mgmt_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "used_card_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 328358.71,
                "ods_sum": 328901.21,
                "diff": -542.5
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 4134,
              "ods": 4134,
              "diff": 0
            },
            "amounts": [
              {
                "column": "cost_money",
                "dwd_sum": 1544.05,
                "ods_sum": 1544.05,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 98139.8,
                "ods_sum": 98139.8,
                "diff": 0.0
              },
              {
                "column": "real_goods_money",
                "dwd_sum": 87610.8,
                "ods_sum": 87610.8,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale_ex",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 17563,
              "ods": 17563,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 21673.2,
                "ods_sum": 21673.2,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_member_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money_cost",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "push_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 884,
              "ods": 884,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 1437.75,
                "ods_sum": 1437.75,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 281102.62,
                "ods_sum": 281102.62,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log_ex",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4998,
              "ods": 4998,
              "diff": 0
            },
            "amounts": [
              {
                "column": "manual_discount_amount",
                "dwd_sum": 414.17,
                "ods_sum": 414.17,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": [
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 2838,
              "ods": 2838,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 172860.0,
                "ods_sum": 172860.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 166439.03,
                "ods_sum": 166439.03,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption_ex",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 11388,
              "ods": 11411,
              "diff": -23
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7544.8,
                "ods_sum": 7544.8,
                "diff": 0.0
              },
              {
                "column": "assistant_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "goods_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "recharge_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "reward_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "table_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 2843,
              "ods": 2843,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 173800.0,
                "ods_sum": 173800.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption_ex",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 16953,
              "ods": 16953,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_payment",
            "ods_table": "billiards_ods.payment_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 3999,
              "ods": 3999,
              "diff": 0
            },
            "amounts": [
              {
                "column": "pay_amount",
                "dwd_sum": 457185.0,
                "ods_sum": 457185.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 17,
              "ods": 17,
              "diff": 0
            },
            "amounts": [
              {
                "column": "channel_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "pay_amount",
                "dwd_sum": -16567.0,
                "ods_sum": -16567.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund_ex",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 45,
              "ods": 45,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "card_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "round_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          }
        ],
        "total_count_diff": -21718
      },
      "generated_at": "2026-01-26T05:46:45.166466+08:00"
    },
    {
      "mode": "window",
      "window": {
        "start": "2025-12-01T00:00:00+08:00",
        "end": "2026-01-01T00:00:00+08:00",
        "label": "month_2025-12-01",
        "granularity": "month"
      },
      "api_to_ods": {
        "window_split_unit": "month",
        "window_compensation_hours": 2,
        "start": "2025-11-30T22:00:00+08:00",
        "end": "2026-01-01T02:00:00+08:00",
        "cutoff": null,
        "window_days": 31,
        "window_hours": 0,
        "page_size": 200,
        "chunk_size": 500,
        "sample_limit": 50,
        "store_id": 2790685415443269,
        "base_url": "https://pc.ficoo.vip/apiprod/admin/v1/",
        "results": [
          {
            "task_code": "ODS_ASSISTANT_ACCOUNT",
            "table": "billiards_ods.assistant_accounts_master",
            "endpoint": "/PersonnelManagement/SearchAssistantInfo",
            "pk_columns": [
              "id"
            ],
            "records": 204,
            "records_with_pk": 204,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_RECORDS",
            "table": "billiards_ods.settlement_records",
            "endpoint": "/Site/GetAllOrderSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 4044,
            "records_with_pk": 4044,
            "missing": 0,
            "missing_samples": [],
            "pages": 23,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_USE",
            "table": "billiards_ods.table_fee_transactions",
            "endpoint": "/Site/GetSiteTableOrderDetails",
            "pk_columns": [
              "id"
            ],
            "records": 10075,
            "records_with_pk": 10075,
            "missing": 5,
            "missing_samples": [
              {
                "id": 3067259091061957
              },
              {
                "id": 3067259091078341
              },
              {
                "id": 3067252823968965
              },
              {
                "id": 3067252823985349
              },
              {
                "id": 3067211608837061
              }
            ],
            "pages": 51,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_LEDGER",
            "table": "billiards_ods.assistant_service_records",
            "endpoint": "/AssistantPerformance/GetOrderAssistantDetails",
            "pk_columns": [
              "id"
            ],
            "records": 984,
            "records_with_pk": 984,
            "missing": 0,
            "missing_samples": [],
            "pages": 7,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_ABOLISH",
            "table": "billiards_ods.assistant_cancellation_records",
            "endpoint": "/AssistantPerformance/GetAbolitionAssistant",
            "pk_columns": [
              "id"
            ],
            "records": 35,
            "records_with_pk": 35,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS_SALES",
            "table": "billiards_ods.store_goods_sales_records",
            "endpoint": "/TenantGoods/GetGoodsSalesList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PAYMENT",
            "table": "billiards_ods.payment_transactions",
            "endpoint": "/PayLog/GetPayLogListPage",
            "pk_columns": [
              "id"
            ],
            "records": 11930,
            "records_with_pk": 11930,
            "missing": 4,
            "missing_samples": [
              {
                "id": 3067259086490821
              },
              {
                "id": 3067252820446405
              },
              {
                "id": 3067211605281733
              },
              {
                "id": 3067210806709061
              }
            ],
            "pages": 60,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_REFUND",
            "table": "billiards_ods.refund_transactions",
            "endpoint": "/Order/GetRefundPayLogList",
            "pk_columns": [
              "id"
            ],
            "records": 38,
            "records_with_pk": 38,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PLATFORM_COUPON",
            "table": "billiards_ods.platform_coupon_redemption_records",
            "endpoint": "/Promotion/GetOfflineCouponConsumePageList",
            "pk_columns": [
              "id"
            ],
            "records": 16953,
            "records_with_pk": 16953,
            "missing": 0,
            "missing_samples": [],
            "pages": 85,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER",
            "table": "billiards_ods.member_profiles",
            "endpoint": "/MemberProfile/GetTenantMemberList",
            "pk_columns": [
              "id"
            ],
            "records": 556,
            "records_with_pk": 556,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_CARD",
            "table": "billiards_ods.member_stored_value_cards",
            "endpoint": "/MemberProfile/GetTenantMemberCardList",
            "pk_columns": [
              "id"
            ],
            "records": 945,
            "records_with_pk": 945,
            "missing": 0,
            "missing_samples": [],
            "pages": 5,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_BALANCE",
            "table": "billiards_ods.member_balance_changes",
            "endpoint": "/MemberProfile/GetMemberCardBalanceChange",
            "pk_columns": [
              "id"
            ],
            "records": 2476,
            "records_with_pk": 2476,
            "missing": 4,
            "missing_samples": [
              {
                "id": 3067278947175045
              },
              {
                "id": 3067259087146181
              },
              {
                "id": 3067211605855173
              },
              {
                "id": 3067210808216389
              }
            ],
            "pages": 13,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_RECHARGE_SETTLE",
            "table": "billiards_ods.recharge_settlements",
            "endpoint": "/Site/GetRechargeSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 70,
            "records_with_pk": 70,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_PACKAGE",
            "table": "billiards_ods.group_buy_packages",
            "endpoint": "/PackageCoupon/QueryPackageCouponList",
            "pk_columns": [
              "id"
            ],
            "records": 18,
            "records_with_pk": 18,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_BUY_REDEMPTION",
            "table": "billiards_ods.group_buy_redemption_records",
            "endpoint": "/Site/GetSiteTableUseDetails",
            "pk_columns": [
              "id"
            ],
            "records": 8266,
            "records_with_pk": 8266,
            "missing": 0,
            "missing_samples": [],
            "pages": 42,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_STOCK",
            "table": "billiards_ods.goods_stock_summary",
            "endpoint": "/TenantGoods/GetGoodsStockReport",
            "pk_columns": [
              "sitegoodsid"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_CHANGE",
            "table": "billiards_ods.goods_stock_movements",
            "endpoint": "/GoodsStockManage/QueryGoodsOutboundReceipt",
            "pk_columns": [
              "sitegoodsstockid"
            ],
            "records": 5490,
            "records_with_pk": 5490,
            "missing": 0,
            "missing_samples": [],
            "pages": 30,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLES",
            "table": "billiards_ods.site_tables_master",
            "endpoint": "/Table/GetSiteTables",
            "pk_columns": [
              "id"
            ],
            "records": 74,
            "records_with_pk": 74,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GOODS_CATEGORY",
            "table": "billiards_ods.stock_goods_category_tree",
            "endpoint": "/TenantGoodsCategory/QueryPrimarySecondaryCategory",
            "pk_columns": [
              "id"
            ],
            "records": 9,
            "records_with_pk": 9,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS",
            "table": "billiards_ods.store_goods_master",
            "endpoint": "/TenantGoods/GetGoodsInventoryList",
            "pk_columns": [
              "id"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_FEE_DISCOUNT",
            "table": "billiards_ods.table_fee_discount_records",
            "endpoint": "/Site/GetTaiFeeAdjustList",
            "pk_columns": [
              "id"
            ],
            "records": 1740,
            "records_with_pk": 1740,
            "missing": 3,
            "missing_samples": [
              {
                "id": 3067252824935621
              },
              {
                "id": 3067252824886469
              },
              {
                "id": 3067211610753989
              }
            ],
            "pages": 9,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TENANT_GOODS",
            "table": "billiards_ods.tenant_goods_master",
            "endpoint": "/TenantGoods/QueryTenantGoods",
            "pk_columns": [
              "id"
            ],
            "records": 171,
            "records_with_pk": 171,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_TICKET",
            "table": "billiards_ods.settlement_ticket_details",
            "endpoint": "/Order/GetOrderSettleTicketNew",
            "pk_columns": [
              "ordersettleid"
            ],
            "records": 4151,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 23,
            "skipped_missing_pk": 4151,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 16,
        "total_errors": 0,
        "generated_at": "2026-01-26T05:53:37.253537+08:00"
      },
      "ods_to_dwd": {
        "tables": [
          {
            "dwd_table": "billiards_dwd.dim_site",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 1,
              "ods": 18361,
              "diff": -18360
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_site_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 3479,
              "diff": -3479
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table_ex",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 68,
              "ods": 68,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant_ex",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 5,
              "ods": 5,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 6,
              "ods": 6,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_ex",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 556,
              "ods": 556,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 945,
              "ods": 945,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 413038.35,
                "ods_sum": 413038.35,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account_ex",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 12,
              "ods": 12,
              "diff": 0
            },
            "amounts": [
              {
                "column": "deliveryfeededuct",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 4,
              "ods": 4,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods_ex",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 171,
              "ods": 171,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_goods_category",
            "ods_table": "billiards_ods.stock_goods_category_tree",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 26,
              "ods": 9,
              "diff": 17
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 13,
              "ods": 13,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package_ex",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 34,
              "ods": 34,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 3479,
              "ods": 3479,
              "diff": 0
            },
            "amounts": [
              {
                "column": "adjust_amount",
                "dwd_sum": 71445.57,
                "ods_sum": 71445.57,
                "diff": 0.0
              },
              {
                "column": "coupon_promotion_amount",
                "dwd_sum": 170800.75,
                "ods_sum": 170800.75,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 432220.76,
                "ods_sum": 432220.76,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 34544.63,
                "ods_sum": 34544.63,
                "diff": 0.0
              },
              {
                "column": "real_table_charge_money",
                "dwd_sum": 189974.44,
                "ods_sum": 189974.44,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 18361,
              "ods": 18361,
              "diff": 0
            },
            "amounts": [
              {
                "column": "fee_total",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "mgmt_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "used_card_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 328358.71,
                "ods_sum": 328901.21,
                "diff": -542.5
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 2625,
              "ods": 2625,
              "diff": 0
            },
            "amounts": [
              {
                "column": "cost_money",
                "dwd_sum": 190.1,
                "ods_sum": 190.1,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 65814.4,
                "ods_sum": 65814.4,
                "diff": 0.0
              },
              {
                "column": "real_goods_money",
                "dwd_sum": 63275.9,
                "ods_sum": 63275.9,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale_ex",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 17563,
              "ods": 17563,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 21673.2,
                "ods_sum": 21673.2,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_member_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money_cost",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "push_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 975,
              "ods": 975,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 3190.05,
                "ods_sum": 3190.05,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 322183.69,
                "ods_sum": 322183.69,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log_ex",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4998,
              "ods": 4998,
              "diff": 0
            },
            "amounts": [
              {
                "column": "manual_discount_amount",
                "dwd_sum": 414.17,
                "ods_sum": 414.17,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": [
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 2816,
              "ods": 2816,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 179652.0,
                "ods_sum": 179652.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 170800.75,
                "ods_sum": 170800.75,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption_ex",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 11388,
              "ods": 11411,
              "diff": -23
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7544.8,
                "ods_sum": 7544.8,
                "diff": 0.0
              },
              {
                "column": "assistant_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "goods_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "recharge_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "reward_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "table_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 2827,
              "ods": 2827,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 180232.0,
                "ods_sum": 180232.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption_ex",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 16953,
              "ods": 16953,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_payment",
            "ods_table": "billiards_ods.payment_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 4118,
              "ods": 4118,
              "diff": 0
            },
            "amounts": [
              {
                "column": "pay_amount",
                "dwd_sum": 472999.0,
                "ods_sum": 472999.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 13,
              "ods": 13,
              "diff": 0
            },
            "amounts": [
              {
                "column": "channel_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "pay_amount",
                "dwd_sum": -4314.0,
                "ods_sum": -4314.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund_ex",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 45,
              "ods": 45,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "card_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "round_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          }
        ],
        "total_count_diff": -21861
      },
      "generated_at": "2026-01-26T05:53:40.872515+08:00"
    },
    {
      "mode": "window",
      "window": {
        "start": "2026-01-01T00:00:00+08:00",
        "end": "2026-01-08T00:00:00+08:00",
        "label": "week_2026-01-01",
        "granularity": "week"
      },
      "api_to_ods": {
        "window_split_unit": "month",
        "window_compensation_hours": 2,
        "start": "2025-12-31T22:00:00+08:00",
        "end": "2026-01-08T02:00:00+08:00",
        "cutoff": null,
        "window_days": 7,
        "window_hours": 0,
        "page_size": 200,
        "chunk_size": 500,
        "sample_limit": 50,
        "store_id": 2790685415443269,
        "base_url": "https://pc.ficoo.vip/apiprod/admin/v1/",
        "results": [
          {
            "task_code": "ODS_ASSISTANT_ACCOUNT",
            "table": "billiards_ods.assistant_accounts_master",
            "endpoint": "/PersonnelManagement/SearchAssistantInfo",
            "pk_columns": [
              "id"
            ],
            "records": 136,
            "records_with_pk": 136,
            "missing": 0,
            "missing_samples": [],
            "pages": 2,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_RECORDS",
            "table": "billiards_ods.settlement_records",
            "endpoint": "/Site/GetAllOrderSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 827,
            "records_with_pk": 827,
            "missing": 0,
            "missing_samples": [],
            "pages": 6,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_USE",
            "table": "billiards_ods.table_fee_transactions",
            "endpoint": "/Site/GetSiteTableOrderDetails",
            "pk_columns": [
              "id"
            ],
            "records": 10075,
            "records_with_pk": 10075,
            "missing": 5,
            "missing_samples": [
              {
                "id": 3067259091061957
              },
              {
                "id": 3067259091078341
              },
              {
                "id": 3067252823968965
              },
              {
                "id": 3067252823985349
              },
              {
                "id": 3067211608837061
              }
            ],
            "pages": 51,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_LEDGER",
            "table": "billiards_ods.assistant_service_records",
            "endpoint": "/AssistantPerformance/GetOrderAssistantDetails",
            "pk_columns": [
              "id"
            ],
            "records": 167,
            "records_with_pk": 167,
            "missing": 0,
            "missing_samples": [],
            "pages": 2,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_ABOLISH",
            "table": "billiards_ods.assistant_cancellation_records",
            "endpoint": "/AssistantPerformance/GetAbolitionAssistant",
            "pk_columns": [
              "id"
            ],
            "records": 10,
            "records_with_pk": 10,
            "missing": 0,
            "missing_samples": [],
            "pages": 2,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS_SALES",
            "table": "billiards_ods.store_goods_sales_records",
            "endpoint": "/TenantGoods/GetGoodsSalesList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PAYMENT",
            "table": "billiards_ods.payment_transactions",
            "endpoint": "/PayLog/GetPayLogListPage",
            "pk_columns": [
              "id"
            ],
            "records": 11930,
            "records_with_pk": 11930,
            "missing": 4,
            "missing_samples": [
              {
                "id": 3067259086490821
              },
              {
                "id": 3067252820446405
              },
              {
                "id": 3067211605281733
              },
              {
                "id": 3067210806709061
              }
            ],
            "pages": 60,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_REFUND",
            "table": "billiards_ods.refund_transactions",
            "endpoint": "/Order/GetRefundPayLogList",
            "pk_columns": [
              "id"
            ],
            "records": 38,
            "records_with_pk": 38,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PLATFORM_COUPON",
            "table": "billiards_ods.platform_coupon_redemption_records",
            "endpoint": "/Promotion/GetOfflineCouponConsumePageList",
            "pk_columns": [
              "id"
            ],
            "records": 16953,
            "records_with_pk": 16953,
            "missing": 0,
            "missing_samples": [],
            "pages": 85,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER",
            "table": "billiards_ods.member_profiles",
            "endpoint": "/MemberProfile/GetTenantMemberList",
            "pk_columns": [
              "id"
            ],
            "records": 556,
            "records_with_pk": 556,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_CARD",
            "table": "billiards_ods.member_stored_value_cards",
            "endpoint": "/MemberProfile/GetTenantMemberCardList",
            "pk_columns": [
              "id"
            ],
            "records": 945,
            "records_with_pk": 945,
            "missing": 0,
            "missing_samples": [],
            "pages": 5,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_BALANCE",
            "table": "billiards_ods.member_balance_changes",
            "endpoint": "/MemberProfile/GetMemberCardBalanceChange",
            "pk_columns": [
              "id"
            ],
            "records": 2476,
            "records_with_pk": 2476,
            "missing": 4,
            "missing_samples": [
              {
                "id": 3067278947175045
              },
              {
                "id": 3067259087146181
              },
              {
                "id": 3067211605855173
              },
              {
                "id": 3067210808216389
              }
            ],
            "pages": 13,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_RECHARGE_SETTLE",
            "table": "billiards_ods.recharge_settlements",
            "endpoint": "/Site/GetRechargeSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 18,
            "records_with_pk": 18,
            "missing": 0,
            "missing_samples": [],
            "pages": 2,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_PACKAGE",
            "table": "billiards_ods.group_buy_packages",
            "endpoint": "/PackageCoupon/QueryPackageCouponList",
            "pk_columns": [
              "id"
            ],
            "records": 18,
            "records_with_pk": 18,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_BUY_REDEMPTION",
            "table": "billiards_ods.group_buy_redemption_records",
            "endpoint": "/Site/GetSiteTableUseDetails",
            "pk_columns": [
              "id"
            ],
            "records": 8266,
            "records_with_pk": 8266,
            "missing": 0,
            "missing_samples": [],
            "pages": 42,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_STOCK",
            "table": "billiards_ods.goods_stock_summary",
            "endpoint": "/TenantGoods/GetGoodsStockReport",
            "pk_columns": [
              "sitegoodsid"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_CHANGE",
            "table": "billiards_ods.goods_stock_movements",
            "endpoint": "/GoodsStockManage/QueryGoodsOutboundReceipt",
            "pk_columns": [
              "sitegoodsstockid"
            ],
            "records": 880,
            "records_with_pk": 880,
            "missing": 0,
            "missing_samples": [],
            "pages": 6,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLES",
            "table": "billiards_ods.site_tables_master",
            "endpoint": "/Table/GetSiteTables",
            "pk_columns": [
              "id"
            ],
            "records": 74,
            "records_with_pk": 74,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GOODS_CATEGORY",
            "table": "billiards_ods.stock_goods_category_tree",
            "endpoint": "/TenantGoodsCategory/QueryPrimarySecondaryCategory",
            "pk_columns": [
              "id"
            ],
            "records": 9,
            "records_with_pk": 9,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS",
            "table": "billiards_ods.store_goods_master",
            "endpoint": "/TenantGoods/GetGoodsInventoryList",
            "pk_columns": [
              "id"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_FEE_DISCOUNT",
            "table": "billiards_ods.table_fee_discount_records",
            "endpoint": "/Site/GetTaiFeeAdjustList",
            "pk_columns": [
              "id"
            ],
            "records": 1740,
            "records_with_pk": 1740,
            "missing": 3,
            "missing_samples": [
              {
                "id": 3067252824935621
              },
              {
                "id": 3067252824886469
              },
              {
                "id": 3067211610753989
              }
            ],
            "pages": 9,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TENANT_GOODS",
            "table": "billiards_ods.tenant_goods_master",
            "endpoint": "/TenantGoods/QueryTenantGoods",
            "pk_columns": [
              "id"
            ],
            "records": 171,
            "records_with_pk": 171,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_TICKET",
            "table": "billiards_ods.settlement_ticket_details",
            "endpoint": "/Order/GetOrderSettleTicketNew",
            "pk_columns": [
              "ordersettleid"
            ],
            "records": 851,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 6,
            "skipped_missing_pk": 851,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 16,
        "total_errors": 0,
        "generated_at": "2026-01-26T05:59:29.545308+08:00"
      },
      "ods_to_dwd": {
        "tables": [
          {
            "dwd_table": "billiards_dwd.dim_site",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 1,
              "ods": 18361,
              "diff": -18360
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_site_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 699,
              "diff": -699
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table_ex",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 68,
              "ods": 68,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant_ex",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 3,
              "ods": 3,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_ex",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 556,
              "ods": 556,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 945,
              "ods": 945,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 413038.35,
                "ods_sum": 413038.35,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account_ex",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 7,
              "ods": 7,
              "diff": 0
            },
            "amounts": [
              {
                "column": "deliveryfeededuct",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods_ex",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 171,
              "ods": 171,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_goods_category",
            "ods_table": "billiards_ods.stock_goods_category_tree",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 26,
              "ods": 9,
              "diff": 17
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 3,
              "ods": 3,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package_ex",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 34,
              "ods": 34,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 699,
              "ods": 699,
              "diff": 0
            },
            "amounts": [
              {
                "column": "adjust_amount",
                "dwd_sum": 8896.03,
                "ods_sum": 8896.03,
                "diff": 0.0
              },
              {
                "column": "coupon_promotion_amount",
                "dwd_sum": 35659.11,
                "ods_sum": 35659.11,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 74693.62,
                "ods_sum": 74693.62,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 6587.39,
                "ods_sum": 6587.39,
                "diff": 0.0
              },
              {
                "column": "real_table_charge_money",
                "dwd_sum": 30138.48,
                "ods_sum": 30138.48,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 18361,
              "ods": 18361,
              "diff": 0
            },
            "amounts": [
              {
                "column": "fee_total",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "mgmt_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "used_card_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 328358.71,
                "ods_sum": 328901.21,
                "diff": -542.5
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "cost_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "real_goods_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale_ex",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 17563,
              "ods": 17563,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 21673.2,
                "ods_sum": 21673.2,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_member_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money_cost",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "push_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 157,
              "ods": 157,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 46522.68,
                "ods_sum": 46522.68,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log_ex",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4998,
              "ods": 4998,
              "diff": 0
            },
            "amounts": [
              {
                "column": "manual_discount_amount",
                "dwd_sum": 414.17,
                "ods_sum": 414.17,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": [
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 569,
              "ods": 569,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 37392.0,
                "ods_sum": 37392.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 35659.11,
                "ods_sum": 35659.11,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption_ex",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 11388,
              "ods": 11411,
              "diff": -23
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7544.8,
                "ods_sum": 7544.8,
                "diff": 0.0
              },
              {
                "column": "assistant_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "goods_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "recharge_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "reward_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "table_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 566,
              "ods": 566,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 37228.0,
                "ods_sum": 37228.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption_ex",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 16953,
              "ods": 16953,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_payment",
            "ods_table": "billiards_ods.payment_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 823,
              "ods": 823,
              "diff": 0
            },
            "amounts": [
              {
                "column": "pay_amount",
                "dwd_sum": 78730.0,
                "ods_sum": 78730.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 1,
              "ods": 1,
              "diff": 0
            },
            "amounts": [
              {
                "column": "channel_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "pay_amount",
                "dwd_sum": -7.0,
                "ods_sum": -7.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund_ex",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 45,
              "ods": 45,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "card_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "round_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          }
        ],
        "total_count_diff": -19081
      },
      "generated_at": "2026-01-26T05:59:33.346021+08:00"
    },
    {
      "mode": "window",
      "window": {
        "start": "2026-01-08T00:00:00+08:00",
        "end": "2026-01-15T00:00:00+08:00",
        "label": "week_2026-01-08",
        "granularity": "week"
      },
      "api_to_ods": {
        "window_split_unit": "month",
        "window_compensation_hours": 2,
        "start": "2026-01-07T22:00:00+08:00",
        "end": "2026-01-15T02:00:00+08:00",
        "cutoff": null,
        "window_days": 7,
        "window_hours": 0,
        "page_size": 200,
        "chunk_size": 500,
        "sample_limit": 50,
        "store_id": 2790685415443269,
        "base_url": "https://pc.ficoo.vip/apiprod/admin/v1/",
        "results": [
          {
            "task_code": "ODS_ASSISTANT_ACCOUNT",
            "table": "billiards_ods.assistant_accounts_master",
            "endpoint": "/PersonnelManagement/SearchAssistantInfo",
            "pk_columns": [
              "id"
            ],
            "records": 68,
            "records_with_pk": 68,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_RECORDS",
            "table": "billiards_ods.settlement_records",
            "endpoint": "/Site/GetAllOrderSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 790,
            "records_with_pk": 790,
            "missing": 0,
            "missing_samples": [],
            "pages": 4,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_USE",
            "table": "billiards_ods.table_fee_transactions",
            "endpoint": "/Site/GetSiteTableOrderDetails",
            "pk_columns": [
              "id"
            ],
            "records": 10075,
            "records_with_pk": 10075,
            "missing": 5,
            "missing_samples": [
              {
                "id": 3067259091061957
              },
              {
                "id": 3067259091078341
              },
              {
                "id": 3067252823968965
              },
              {
                "id": 3067252823985349
              },
              {
                "id": 3067211608837061
              }
            ],
            "pages": 51,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_LEDGER",
            "table": "billiards_ods.assistant_service_records",
            "endpoint": "/AssistantPerformance/GetOrderAssistantDetails",
            "pk_columns": [
              "id"
            ],
            "records": 195,
            "records_with_pk": 195,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_ABOLISH",
            "table": "billiards_ods.assistant_cancellation_records",
            "endpoint": "/AssistantPerformance/GetAbolitionAssistant",
            "pk_columns": [
              "id"
            ],
            "records": 22,
            "records_with_pk": 22,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS_SALES",
            "table": "billiards_ods.store_goods_sales_records",
            "endpoint": "/TenantGoods/GetGoodsSalesList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PAYMENT",
            "table": "billiards_ods.payment_transactions",
            "endpoint": "/PayLog/GetPayLogListPage",
            "pk_columns": [
              "id"
            ],
            "records": 11930,
            "records_with_pk": 11930,
            "missing": 4,
            "missing_samples": [
              {
                "id": 3067259086490821
              },
              {
                "id": 3067252820446405
              },
              {
                "id": 3067211605281733
              },
              {
                "id": 3067210806709061
              }
            ],
            "pages": 60,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_REFUND",
            "table": "billiards_ods.refund_transactions",
            "endpoint": "/Order/GetRefundPayLogList",
            "pk_columns": [
              "id"
            ],
            "records": 38,
            "records_with_pk": 38,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PLATFORM_COUPON",
            "table": "billiards_ods.platform_coupon_redemption_records",
            "endpoint": "/Promotion/GetOfflineCouponConsumePageList",
            "pk_columns": [
              "id"
            ],
            "records": 16953,
            "records_with_pk": 16953,
            "missing": 0,
            "missing_samples": [],
            "pages": 85,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER",
            "table": "billiards_ods.member_profiles",
            "endpoint": "/MemberProfile/GetTenantMemberList",
            "pk_columns": [
              "id"
            ],
            "records": 556,
            "records_with_pk": 556,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_CARD",
            "table": "billiards_ods.member_stored_value_cards",
            "endpoint": "/MemberProfile/GetTenantMemberCardList",
            "pk_columns": [
              "id"
            ],
            "records": 945,
            "records_with_pk": 945,
            "missing": 0,
            "missing_samples": [],
            "pages": 5,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_BALANCE",
            "table": "billiards_ods.member_balance_changes",
            "endpoint": "/MemberProfile/GetMemberCardBalanceChange",
            "pk_columns": [
              "id"
            ],
            "records": 2476,
            "records_with_pk": 2476,
            "missing": 4,
            "missing_samples": [
              {
                "id": 3067278947175045
              },
              {
                "id": 3067259087146181
              },
              {
                "id": 3067211605855173
              },
              {
                "id": 3067210808216389
              }
            ],
            "pages": 13,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_RECHARGE_SETTLE",
            "table": "billiards_ods.recharge_settlements",
            "endpoint": "/Site/GetRechargeSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 15,
            "records_with_pk": 15,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_PACKAGE",
            "table": "billiards_ods.group_buy_packages",
            "endpoint": "/PackageCoupon/QueryPackageCouponList",
            "pk_columns": [
              "id"
            ],
            "records": 18,
            "records_with_pk": 18,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_BUY_REDEMPTION",
            "table": "billiards_ods.group_buy_redemption_records",
            "endpoint": "/Site/GetSiteTableUseDetails",
            "pk_columns": [
              "id"
            ],
            "records": 8266,
            "records_with_pk": 8266,
            "missing": 0,
            "missing_samples": [],
            "pages": 42,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_STOCK",
            "table": "billiards_ods.goods_stock_summary",
            "endpoint": "/TenantGoods/GetGoodsStockReport",
            "pk_columns": [
              "sitegoodsid"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_CHANGE",
            "table": "billiards_ods.goods_stock_movements",
            "endpoint": "/GoodsStockManage/QueryGoodsOutboundReceipt",
            "pk_columns": [
              "sitegoodsstockid"
            ],
            "records": 1241,
            "records_with_pk": 1241,
            "missing": 0,
            "missing_samples": [],
            "pages": 7,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLES",
            "table": "billiards_ods.site_tables_master",
            "endpoint": "/Table/GetSiteTables",
            "pk_columns": [
              "id"
            ],
            "records": 74,
            "records_with_pk": 74,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GOODS_CATEGORY",
            "table": "billiards_ods.stock_goods_category_tree",
            "endpoint": "/TenantGoodsCategory/QueryPrimarySecondaryCategory",
            "pk_columns": [
              "id"
            ],
            "records": 9,
            "records_with_pk": 9,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS",
            "table": "billiards_ods.store_goods_master",
            "endpoint": "/TenantGoods/GetGoodsInventoryList",
            "pk_columns": [
              "id"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_FEE_DISCOUNT",
            "table": "billiards_ods.table_fee_discount_records",
            "endpoint": "/Site/GetTaiFeeAdjustList",
            "pk_columns": [
              "id"
            ],
            "records": 1740,
            "records_with_pk": 1740,
            "missing": 3,
            "missing_samples": [
              {
                "id": 3067252824935621
              },
              {
                "id": 3067252824886469
              },
              {
                "id": 3067211610753989
              }
            ],
            "pages": 9,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TENANT_GOODS",
            "table": "billiards_ods.tenant_goods_master",
            "endpoint": "/TenantGoods/QueryTenantGoods",
            "pk_columns": [
              "id"
            ],
            "records": 171,
            "records_with_pk": 171,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_TICKET",
            "table": "billiards_ods.settlement_ticket_details",
            "endpoint": "/Order/GetOrderSettleTicketNew",
            "pk_columns": [
              "ordersettleid"
            ],
            "records": 814,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 5,
            "skipped_missing_pk": 814,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 16,
        "total_errors": 0,
        "generated_at": "2026-01-26T06:05:13.373633+08:00"
      },
      "ods_to_dwd": {
        "tables": [
          {
            "dwd_table": "billiards_dwd.dim_site",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 1,
              "ods": 18361,
              "diff": -18360
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_site_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 672,
              "diff": -672
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table_ex",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 68,
              "ods": 68,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant_ex",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 1,
              "ods": 1,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 2,
              "ods": 2,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_ex",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 556,
              "ods": 556,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 945,
              "ods": 945,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 413038.35,
                "ods_sum": 413038.35,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account_ex",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 4,
              "ods": 4,
              "diff": 0
            },
            "amounts": [
              {
                "column": "deliveryfeededuct",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 1,
              "ods": 1,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods_ex",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 171,
              "ods": 171,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_goods_category",
            "ods_table": "billiards_ods.stock_goods_category_tree",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 26,
              "ods": 9,
              "diff": 17
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 1,
              "ods": 1,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package_ex",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 34,
              "ods": 34,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 672,
              "ods": 672,
              "diff": 0
            },
            "amounts": [
              {
                "column": "adjust_amount",
                "dwd_sum": 16159.12,
                "ods_sum": 16159.12,
                "diff": 0.0
              },
              {
                "column": "coupon_promotion_amount",
                "dwd_sum": 35525.09,
                "ods_sum": 35525.09,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 82416.19,
                "ods_sum": 82416.19,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 6098.02,
                "ods_sum": 6098.02,
                "diff": 0.0
              },
              {
                "column": "real_table_charge_money",
                "dwd_sum": 30731.98,
                "ods_sum": 30731.98,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 18361,
              "ods": 18361,
              "diff": 0
            },
            "amounts": [
              {
                "column": "fee_total",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "mgmt_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "used_card_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 328358.71,
                "ods_sum": 328901.21,
                "diff": -542.5
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "cost_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "real_goods_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale_ex",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 17563,
              "ods": 17563,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 21673.2,
                "ods_sum": 21673.2,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_member_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money_cost",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "push_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 188,
              "ods": 188,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 190.72,
                "ods_sum": 190.72,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 54584.19,
                "ods_sum": 54584.19,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log_ex",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4998,
              "ods": 4998,
              "diff": 0
            },
            "amounts": [
              {
                "column": "manual_discount_amount",
                "dwd_sum": 414.17,
                "ods_sum": 414.17,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": [
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 572,
              "ods": 572,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 37214.0,
                "ods_sum": 37214.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 35525.09,
                "ods_sum": 35525.09,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption_ex",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 11388,
              "ods": 11411,
              "diff": -23
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7544.8,
                "ods_sum": 7544.8,
                "diff": 0.0
              },
              {
                "column": "assistant_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "goods_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "recharge_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "reward_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "table_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 575,
              "ods": 575,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 37262.0,
                "ods_sum": 37262.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption_ex",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 16953,
              "ods": 16953,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_payment",
            "ods_table": "billiards_ods.payment_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 790,
              "ods": 790,
              "diff": 0
            },
            "amounts": [
              {
                "column": "pay_amount",
                "dwd_sum": 86381.0,
                "ods_sum": 86381.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 3,
              "ods": 3,
              "diff": 0
            },
            "amounts": [
              {
                "column": "channel_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "pay_amount",
                "dwd_sum": -39.0,
                "ods_sum": -39.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund_ex",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 45,
              "ods": 45,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "card_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "round_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          }
        ],
        "total_count_diff": -19054
      },
      "generated_at": "2026-01-26T06:05:17.001366+08:00"
    },
    {
      "mode": "window",
      "window": {
        "start": "2026-01-15T00:00:00+08:00",
        "end": "2026-01-22T00:00:00+08:00",
        "label": "week_2026-01-15",
        "granularity": "week"
      },
      "api_to_ods": {
        "window_split_unit": "month",
        "window_compensation_hours": 2,
        "start": "2026-01-14T22:00:00+08:00",
        "end": "2026-01-22T02:00:00+08:00",
        "cutoff": null,
        "window_days": 7,
        "window_hours": 0,
        "page_size": 200,
        "chunk_size": 500,
        "sample_limit": 50,
        "store_id": 2790685415443269,
        "base_url": "https://pc.ficoo.vip/apiprod/admin/v1/",
        "results": [
          {
            "task_code": "ODS_ASSISTANT_ACCOUNT",
            "table": "billiards_ods.assistant_accounts_master",
            "endpoint": "/PersonnelManagement/SearchAssistantInfo",
            "pk_columns": [
              "id"
            ],
            "records": 68,
            "records_with_pk": 68,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_RECORDS",
            "table": "billiards_ods.settlement_records",
            "endpoint": "/Site/GetAllOrderSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 899,
            "records_with_pk": 899,
            "missing": 0,
            "missing_samples": [],
            "pages": 5,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_USE",
            "table": "billiards_ods.table_fee_transactions",
            "endpoint": "/Site/GetSiteTableOrderDetails",
            "pk_columns": [
              "id"
            ],
            "records": 10075,
            "records_with_pk": 10075,
            "missing": 5,
            "missing_samples": [
              {
                "id": 3067259091061957
              },
              {
                "id": 3067259091078341
              },
              {
                "id": 3067252823968965
              },
              {
                "id": 3067252823985349
              },
              {
                "id": 3067211608837061
              }
            ],
            "pages": 51,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_LEDGER",
            "table": "billiards_ods.assistant_service_records",
            "endpoint": "/AssistantPerformance/GetOrderAssistantDetails",
            "pk_columns": [
              "id"
            ],
            "records": 216,
            "records_with_pk": 216,
            "missing": 0,
            "missing_samples": [],
            "pages": 2,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_ABOLISH",
            "table": "billiards_ods.assistant_cancellation_records",
            "endpoint": "/AssistantPerformance/GetAbolitionAssistant",
            "pk_columns": [
              "id"
            ],
            "records": 6,
            "records_with_pk": 6,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS_SALES",
            "table": "billiards_ods.store_goods_sales_records",
            "endpoint": "/TenantGoods/GetGoodsSalesList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PAYMENT",
            "table": "billiards_ods.payment_transactions",
            "endpoint": "/PayLog/GetPayLogListPage",
            "pk_columns": [
              "id"
            ],
            "records": 11930,
            "records_with_pk": 11930,
            "missing": 4,
            "missing_samples": [
              {
                "id": 3067259086490821
              },
              {
                "id": 3067252820446405
              },
              {
                "id": 3067211605281733
              },
              {
                "id": 3067210806709061
              }
            ],
            "pages": 60,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_REFUND",
            "table": "billiards_ods.refund_transactions",
            "endpoint": "/Order/GetRefundPayLogList",
            "pk_columns": [
              "id"
            ],
            "records": 38,
            "records_with_pk": 38,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PLATFORM_COUPON",
            "table": "billiards_ods.platform_coupon_redemption_records",
            "endpoint": "/Promotion/GetOfflineCouponConsumePageList",
            "pk_columns": [
              "id"
            ],
            "records": 16953,
            "records_with_pk": 16953,
            "missing": 0,
            "missing_samples": [],
            "pages": 85,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER",
            "table": "billiards_ods.member_profiles",
            "endpoint": "/MemberProfile/GetTenantMemberList",
            "pk_columns": [
              "id"
            ],
            "records": 556,
            "records_with_pk": 556,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_CARD",
            "table": "billiards_ods.member_stored_value_cards",
            "endpoint": "/MemberProfile/GetTenantMemberCardList",
            "pk_columns": [
              "id"
            ],
            "records": 945,
            "records_with_pk": 945,
            "missing": 0,
            "missing_samples": [],
            "pages": 5,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_BALANCE",
            "table": "billiards_ods.member_balance_changes",
            "endpoint": "/MemberProfile/GetMemberCardBalanceChange",
            "pk_columns": [
              "id"
            ],
            "records": 2476,
            "records_with_pk": 2476,
            "missing": 4,
            "missing_samples": [
              {
                "id": 3067278947175045
              },
              {
                "id": 3067259087146181
              },
              {
                "id": 3067211605855173
              },
              {
                "id": 3067210808216389
              }
            ],
            "pages": 13,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_RECHARGE_SETTLE",
            "table": "billiards_ods.recharge_settlements",
            "endpoint": "/Site/GetRechargeSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 21,
            "records_with_pk": 21,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_PACKAGE",
            "table": "billiards_ods.group_buy_packages",
            "endpoint": "/PackageCoupon/QueryPackageCouponList",
            "pk_columns": [
              "id"
            ],
            "records": 18,
            "records_with_pk": 18,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_BUY_REDEMPTION",
            "table": "billiards_ods.group_buy_redemption_records",
            "endpoint": "/Site/GetSiteTableUseDetails",
            "pk_columns": [
              "id"
            ],
            "records": 8266,
            "records_with_pk": 8266,
            "missing": 0,
            "missing_samples": [],
            "pages": 42,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_STOCK",
            "table": "billiards_ods.goods_stock_summary",
            "endpoint": "/TenantGoods/GetGoodsStockReport",
            "pk_columns": [
              "sitegoodsid"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_CHANGE",
            "table": "billiards_ods.goods_stock_movements",
            "endpoint": "/GoodsStockManage/QueryGoodsOutboundReceipt",
            "pk_columns": [
              "sitegoodsstockid"
            ],
            "records": 1181,
            "records_with_pk": 1181,
            "missing": 0,
            "missing_samples": [],
            "pages": 6,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLES",
            "table": "billiards_ods.site_tables_master",
            "endpoint": "/Table/GetSiteTables",
            "pk_columns": [
              "id"
            ],
            "records": 74,
            "records_with_pk": 74,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GOODS_CATEGORY",
            "table": "billiards_ods.stock_goods_category_tree",
            "endpoint": "/TenantGoodsCategory/QueryPrimarySecondaryCategory",
            "pk_columns": [
              "id"
            ],
            "records": 9,
            "records_with_pk": 9,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS",
            "table": "billiards_ods.store_goods_master",
            "endpoint": "/TenantGoods/GetGoodsInventoryList",
            "pk_columns": [
              "id"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_FEE_DISCOUNT",
            "table": "billiards_ods.table_fee_discount_records",
            "endpoint": "/Site/GetTaiFeeAdjustList",
            "pk_columns": [
              "id"
            ],
            "records": 1740,
            "records_with_pk": 1740,
            "missing": 3,
            "missing_samples": [
              {
                "id": 3067252824935621
              },
              {
                "id": 3067252824886469
              },
              {
                "id": 3067211610753989
              }
            ],
            "pages": 9,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TENANT_GOODS",
            "table": "billiards_ods.tenant_goods_master",
            "endpoint": "/TenantGoods/QueryTenantGoods",
            "pk_columns": [
              "id"
            ],
            "records": 171,
            "records_with_pk": 171,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_TICKET",
            "table": "billiards_ods.settlement_ticket_details",
            "endpoint": "/Order/GetOrderSettleTicketNew",
            "pk_columns": [
              "ordersettleid"
            ],
            "records": 932,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 5,
            "skipped_missing_pk": 932,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 16,
        "total_errors": 0,
        "generated_at": "2026-01-26T06:10:57.961411+08:00"
      },
      "ods_to_dwd": {
        "tables": [
          {
            "dwd_table": "billiards_dwd.dim_site",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 1,
              "ods": 18361,
              "diff": -18360
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_site_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 776,
              "diff": -776
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table_ex",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 68,
              "ods": 68,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant_ex",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 4,
              "ods": 4,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 3,
              "ods": 3,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_ex",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 556,
              "ods": 556,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 945,
              "ods": 945,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 413038.35,
                "ods_sum": 413038.35,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account_ex",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 7,
              "ods": 7,
              "diff": 0
            },
            "amounts": [
              {
                "column": "deliveryfeededuct",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 1,
              "ods": 1,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods_ex",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 171,
              "ods": 171,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_goods_category",
            "ods_table": "billiards_ods.stock_goods_category_tree",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 26,
              "ods": 9,
              "diff": 17
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package_ex",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 34,
              "ods": 34,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 776,
              "ods": 776,
              "diff": 0
            },
            "amounts": [
              {
                "column": "adjust_amount",
                "dwd_sum": 16959.34,
                "ods_sum": 16959.34,
                "diff": 0.0
              },
              {
                "column": "coupon_promotion_amount",
                "dwd_sum": 38520.64,
                "ods_sum": 38520.64,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 93110.51,
                "ods_sum": 93110.51,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 5009.13,
                "ods_sum": 5009.13,
                "diff": 0.0
              },
              {
                "column": "real_table_charge_money",
                "dwd_sum": 40591.34,
                "ods_sum": 40591.34,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 18361,
              "ods": 18361,
              "diff": 0
            },
            "amounts": [
              {
                "column": "fee_total",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "mgmt_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "used_card_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 328358.71,
                "ods_sum": 328901.21,
                "diff": -542.5
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "cost_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "real_goods_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale_ex",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 17563,
              "ods": 17563,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 21673.2,
                "ods_sum": 21673.2,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_member_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money_cost",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "push_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 212,
              "ods": 212,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 191.21,
                "ods_sum": 191.21,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 70610.77,
                "ods_sum": 70610.77,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log_ex",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4998,
              "ods": 4998,
              "diff": 0
            },
            "amounts": [
              {
                "column": "manual_discount_amount",
                "dwd_sum": 414.17,
                "ods_sum": 414.17,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": [
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 613,
              "ods": 613,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 40100.0,
                "ods_sum": 40100.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 38520.64,
                "ods_sum": 38520.64,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption_ex",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 11388,
              "ods": 11411,
              "diff": -23
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7544.8,
                "ods_sum": 7544.8,
                "diff": 0.0
              },
              {
                "column": "assistant_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "goods_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "recharge_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "reward_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "table_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 616,
              "ods": 616,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 40456.0,
                "ods_sum": 40456.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption_ex",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 16953,
              "ods": 16953,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_payment",
            "ods_table": "billiards_ods.payment_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 896,
              "ods": 896,
              "diff": 0
            },
            "amounts": [
              {
                "column": "pay_amount",
                "dwd_sum": 123718.0,
                "ods_sum": 123718.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 1,
              "ods": 1,
              "diff": 0
            },
            "amounts": [
              {
                "column": "channel_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "pay_amount",
                "dwd_sum": -34.0,
                "ods_sum": -34.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund_ex",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 45,
              "ods": 45,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "card_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "round_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          }
        ],
        "total_count_diff": -19158
      },
      "generated_at": "2026-01-26T06:11:01.735310+08:00"
    },
    {
      "mode": "window",
      "window": {
        "start": "2026-01-22T00:00:00+08:00",
        "end": "2026-01-26T00:00:00+08:00",
        "label": "week_2026-01-22",
        "granularity": "week"
      },
      "api_to_ods": {
        "window_split_unit": "month",
        "window_compensation_hours": 2,
        "start": "2026-01-21T22:00:00+08:00",
        "end": "2026-01-26T02:00:00+08:00",
        "cutoff": null,
        "window_days": 4,
        "window_hours": 0,
        "page_size": 200,
        "chunk_size": 500,
        "sample_limit": 50,
        "store_id": 2790685415443269,
        "base_url": "https://pc.ficoo.vip/apiprod/admin/v1/",
        "results": [
          {
            "task_code": "ODS_ASSISTANT_ACCOUNT",
            "table": "billiards_ods.assistant_accounts_master",
            "endpoint": "/PersonnelManagement/SearchAssistantInfo",
            "pk_columns": [
              "id"
            ],
            "records": 68,
            "records_with_pk": 68,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_RECORDS",
            "table": "billiards_ods.settlement_records",
            "endpoint": "/Site/GetAllOrderSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 540,
            "records_with_pk": 540,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_USE",
            "table": "billiards_ods.table_fee_transactions",
            "endpoint": "/Site/GetSiteTableOrderDetails",
            "pk_columns": [
              "id"
            ],
            "records": 10075,
            "records_with_pk": 10075,
            "missing": 5,
            "missing_samples": [
              {
                "id": 3067259091061957
              },
              {
                "id": 3067259091078341
              },
              {
                "id": 3067252823968965
              },
              {
                "id": 3067252823985349
              },
              {
                "id": 3067211608837061
              }
            ],
            "pages": 51,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_LEDGER",
            "table": "billiards_ods.assistant_service_records",
            "endpoint": "/AssistantPerformance/GetOrderAssistantDetails",
            "pk_columns": [
              "id"
            ],
            "records": 147,
            "records_with_pk": 147,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_ASSISTANT_ABOLISH",
            "table": "billiards_ods.assistant_cancellation_records",
            "endpoint": "/AssistantPerformance/GetAbolitionAssistant",
            "pk_columns": [
              "id"
            ],
            "records": 5,
            "records_with_pk": 5,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS_SALES",
            "table": "billiards_ods.store_goods_sales_records",
            "endpoint": "/TenantGoods/GetGoodsSalesList",
            "pk_columns": [
              "id"
            ],
            "records": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PAYMENT",
            "table": "billiards_ods.payment_transactions",
            "endpoint": "/PayLog/GetPayLogListPage",
            "pk_columns": [
              "id"
            ],
            "records": 11930,
            "records_with_pk": 11930,
            "missing": 4,
            "missing_samples": [
              {
                "id": 3067259086490821
              },
              {
                "id": 3067252820446405
              },
              {
                "id": 3067211605281733
              },
              {
                "id": 3067210806709061
              }
            ],
            "pages": 60,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_REFUND",
            "table": "billiards_ods.refund_transactions",
            "endpoint": "/Order/GetRefundPayLogList",
            "pk_columns": [
              "id"
            ],
            "records": 38,
            "records_with_pk": 38,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_PLATFORM_COUPON",
            "table": "billiards_ods.platform_coupon_redemption_records",
            "endpoint": "/Promotion/GetOfflineCouponConsumePageList",
            "pk_columns": [
              "id"
            ],
            "records": 16953,
            "records_with_pk": 16953,
            "missing": 0,
            "missing_samples": [],
            "pages": 85,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER",
            "table": "billiards_ods.member_profiles",
            "endpoint": "/MemberProfile/GetTenantMemberList",
            "pk_columns": [
              "id"
            ],
            "records": 556,
            "records_with_pk": 556,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_CARD",
            "table": "billiards_ods.member_stored_value_cards",
            "endpoint": "/MemberProfile/GetTenantMemberCardList",
            "pk_columns": [
              "id"
            ],
            "records": 945,
            "records_with_pk": 945,
            "missing": 0,
            "missing_samples": [],
            "pages": 5,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_MEMBER_BALANCE",
            "table": "billiards_ods.member_balance_changes",
            "endpoint": "/MemberProfile/GetMemberCardBalanceChange",
            "pk_columns": [
              "id"
            ],
            "records": 2476,
            "records_with_pk": 2476,
            "missing": 4,
            "missing_samples": [
              {
                "id": 3067278947175045
              },
              {
                "id": 3067259087146181
              },
              {
                "id": 3067211605855173
              },
              {
                "id": 3067210808216389
              }
            ],
            "pages": 13,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_RECHARGE_SETTLE",
            "table": "billiards_ods.recharge_settlements",
            "endpoint": "/Site/GetRechargeSettleList",
            "pk_columns": [
              "id"
            ],
            "records": 6,
            "records_with_pk": 6,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_PACKAGE",
            "table": "billiards_ods.group_buy_packages",
            "endpoint": "/PackageCoupon/QueryPackageCouponList",
            "pk_columns": [
              "id"
            ],
            "records": 18,
            "records_with_pk": 18,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GROUP_BUY_REDEMPTION",
            "table": "billiards_ods.group_buy_redemption_records",
            "endpoint": "/Site/GetSiteTableUseDetails",
            "pk_columns": [
              "id"
            ],
            "records": 8266,
            "records_with_pk": 8266,
            "missing": 0,
            "missing_samples": [],
            "pages": 42,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_STOCK",
            "table": "billiards_ods.goods_stock_summary",
            "endpoint": "/TenantGoods/GetGoodsStockReport",
            "pk_columns": [
              "sitegoodsid"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_INVENTORY_CHANGE",
            "table": "billiards_ods.goods_stock_movements",
            "endpoint": "/GoodsStockManage/QueryGoodsOutboundReceipt",
            "pk_columns": [
              "sitegoodsstockid"
            ],
            "records": 953,
            "records_with_pk": 953,
            "missing": 0,
            "missing_samples": [],
            "pages": 5,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLES",
            "table": "billiards_ods.site_tables_master",
            "endpoint": "/Table/GetSiteTables",
            "pk_columns": [
              "id"
            ],
            "records": 74,
            "records_with_pk": 74,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_GOODS_CATEGORY",
            "table": "billiards_ods.stock_goods_category_tree",
            "endpoint": "/TenantGoodsCategory/QueryPrimarySecondaryCategory",
            "pk_columns": [
              "id"
            ],
            "records": 9,
            "records_with_pk": 9,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_STORE_GOODS",
            "table": "billiards_ods.store_goods_master",
            "endpoint": "/TenantGoods/GetGoodsInventoryList",
            "pk_columns": [
              "id"
            ],
            "records": 170,
            "records_with_pk": 170,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TABLE_FEE_DISCOUNT",
            "table": "billiards_ods.table_fee_discount_records",
            "endpoint": "/Site/GetTaiFeeAdjustList",
            "pk_columns": [
              "id"
            ],
            "records": 1740,
            "records_with_pk": 1740,
            "missing": 3,
            "missing_samples": [
              {
                "id": 3067252824935621
              },
              {
                "id": 3067252824886469
              },
              {
                "id": 3067211610753989
              }
            ],
            "pages": 9,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_TENANT_GOODS",
            "table": "billiards_ods.tenant_goods_master",
            "endpoint": "/TenantGoods/QueryTenantGoods",
            "pk_columns": [
              "id"
            ],
            "records": 171,
            "records_with_pk": 171,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null
          },
          {
            "task_code": "ODS_SETTLEMENT_TICKET",
            "table": "billiards_ods.settlement_ticket_details",
            "endpoint": "/Order/GetOrderSettleTicketNew",
            "pk_columns": [
              "ordersettleid"
            ],
            "records": 551,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 551,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 16,
        "total_errors": 0,
        "generated_at": "2026-01-26T06:16:45.330506+08:00"
      },
      "ods_to_dwd": {
        "tables": [
          {
            "dwd_table": "billiards_dwd.dim_site",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 1,
              "ods": 18361,
              "diff": -18360
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_site_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 465,
              "diff": -465
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_table_ex",
            "ods_table": "billiards_ods.site_tables_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 74,
              "ods": 74,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 68,
              "ods": 68,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_assistant_ex",
            "ods_table": "billiards_ods.assistant_accounts_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 2,
              "ods": 2,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_ex",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 556,
              "ods": 556,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 945,
              "ods": 945,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 413038.35,
                "ods_sum": 413038.35,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account_ex",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 2,
              "ods": 2,
              "diff": 0
            },
            "amounts": [
              {
                "column": "deliveryfeededuct",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods_ex",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 171,
              "ods": 171,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 170,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_goods_category",
            "ods_table": "billiards_ods.stock_goods_category_tree",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 26,
              "ods": 9,
              "diff": 17
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_groupbuy_package_ex",
            "ods_table": "billiards_ods.group_buy_packages",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 34,
              "ods": 34,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 23339,
              "ods": 23339,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 465,
              "ods": 465,
              "diff": 0
            },
            "amounts": [
              {
                "column": "adjust_amount",
                "dwd_sum": 9264.7,
                "ods_sum": 9264.7,
                "diff": 0.0
              },
              {
                "column": "coupon_promotion_amount",
                "dwd_sum": 21930.18,
                "ods_sum": 21930.18,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 61454.19,
                "ods_sum": 61454.19,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 1649.19,
                "ods_sum": 1649.19,
                "diff": 0.0
              },
              {
                "column": "real_table_charge_money",
                "dwd_sum": 28610.12,
                "ods_sum": 28610.12,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 18361,
              "ods": 18361,
              "diff": 0
            },
            "amounts": [
              {
                "column": "fee_total",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "mgmt_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "used_card_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 328358.71,
                "ods_sum": 328901.21,
                "diff": -542.5
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2837,
              "ods": 2845,
              "diff": -8
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 0,
              "ods": 0,
              "diff": 0
            },
            "amounts": [
              {
                "column": "cost_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "real_goods_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_store_goods_sale_ex",
            "ods_table": "billiards_ods.store_goods_sales_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 17563,
              "ods": 17563,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 21673.2,
                "ods_sum": 21673.2,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "option_member_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "point_discount_money_cost",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "push_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 138,
              "ods": 138,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 40013.33,
                "ods_sum": 40013.33,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log_ex",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4998,
              "ods": 4998,
              "diff": 0
            },
            "amounts": [
              {
                "column": "manual_discount_amount",
                "dwd_sum": 414.17,
                "ods_sum": 414.17,
                "diff": 0.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "service_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 98,
              "ods": 98,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4735,
              "ods": 4735,
              "diff": 0
            },
            "amounts": [
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 317,
              "ods": 331,
              "diff": -14
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 21728.0,
                "ods_sum": 22654.0,
                "diff": -926.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 21004.18,
                "ods_sum": 21930.18,
                "diff": -926.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption_ex",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 11388,
              "ods": 11411,
              "diff": -23
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7544.8,
                "ods_sum": 7544.8,
                "diff": 0.0
              },
              {
                "column": "assistant_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "goods_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "recharge_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "reward_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "table_service_promotion_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 330,
              "ods": 330,
              "diff": 0
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 22452.0,
                "ods_sum": 22452.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_platform_coupon_redemption_ex",
            "ods_table": "billiards_ods.platform_coupon_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 16953,
              "ods": 16953,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 454,
              "ods": 454,
              "diff": 0
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_payment",
            "ods_table": "billiards_ods.payment_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 524,
              "ods": 524,
              "diff": 0
            },
            "amounts": [
              {
                "column": "pay_amount",
                "dwd_sum": 59984.0,
                "ods_sum": 59984.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 2,
              "ods": 2,
              "diff": 0
            },
            "amounts": [
              {
                "column": "channel_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "pay_amount",
                "dwd_sum": -7.0,
                "ods_sum": -7.0,
                "diff": 0.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund_ex",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 45,
              "ods": 45,
              "diff": 0
            },
            "amounts": [
              {
                "column": "balance_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "card_frozen_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "refund_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "round_amount",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              }
            ]
          }
        ],
        "total_count_diff": -18861
      },
      "generated_at": "2026-01-26T06:16:48.949911+08:00"
    }
  ],
  "total_missing": 190,
  "total_errors": 0,
  "generated_at": "2026-01-26T06:16:48.949931+08:00"
}
