{
  "mode": "history",
  "start": "2024-07-19T00:00:00+08:00",
  "end": "2026-01-19T00:00:00+08:00",
  "windows": [
    {
      "mode": "window",
      "window": {
        "start": "2024-07-19T00:00:00+08:00",
        "end": "2024-08-01T00:00:00+08:00",
        "label": "month_2024-07-01",
        "granularity": "month"
      },
      "api_to_ods": {
        "start": "2024-07-19T00:00:00+08:00",
        "end": "2024-08-01T00:00:00+08:00",
        "cutoff": null,
        "window_days": 13,
        "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": 67,
            "records_with_pk": 67,
            "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": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "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": 9969,
            "records_with_pk": 9969,
            "missing": 0,
            "missing_samples": [],
            "pages": 50,
            "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": 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": 0,
            "records_with_pk": 0,
            "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": 11946,
            "records_with_pk": 11946,
            "missing": 0,
            "missing_samples": [],
            "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": 37,
            "records_with_pk": 37,
            "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": 16403,
            "records_with_pk": 16403,
            "missing": 0,
            "missing_samples": [],
            "pages": 83,
            "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": 554,
            "records_with_pk": 554,
            "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": 943,
            "records_with_pk": 943,
            "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": 2468,
            "records_with_pk": 2468,
            "missing": 0,
            "missing_samples": [],
            "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": 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": 8332,
            "records_with_pk": 8332,
            "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": 1,
            "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": 1674,
            "records_with_pk": 1674,
            "missing": 0,
            "missing_samples": [],
            "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": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 0,
        "total_errors": 0,
        "generated_at": "2026-01-19T07:36:45.707440+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": 17601,
              "diff": -17600
            },
            "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": 64,
              "ods": 67,
              "diff": -3
            },
            "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": 552,
              "ods": 554,
              "diff": -2
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 938,
              "ods": 943,
              "diff": -5
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 406040.3,
                "ods_sum": 411958.35,
                "diff": -5918.049999999988
              }
            ]
          },
          {
            "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": 170,
              "ods": 171,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "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": 22075,
              "ods": 22478,
              "diff": -403
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 22075,
              "ods": 22478,
              "diff": -403
            },
            "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": 17227,
              "ods": 17601,
              "diff": -374
            },
            "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": 2654,
              "ods": 2710,
              "diff": -56
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 305990.47,
                "ods_sum": 311771.56,
                "diff": -5781.090000000026
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2654,
              "ods": 2710,
              "diff": -56
            },
            "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": 501714,
              "ods": 17563,
              "diff": 484151
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 615278.9,
                "ods_sum": 21673.2,
                "diff": 593605.7000000001
              },
              {
                "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": 4681,
              "ods": 4755,
              "diff": -74
            },
            "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": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "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": 10545,
              "ods": 10861,
              "diff": -316
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7353.59,
                "ods_sum": 7353.59,
                "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": 16086,
              "ods": 16403,
              "diff": -317
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "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": 42,
              "ods": 43,
              "diff": -1
            },
            "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": 464365
      },
      "generated_at": "2026-01-19T07:36:56.167144+08:00"
    },
    {
      "mode": "window",
      "window": {
        "start": "2024-08-01T00:00:00+08:00",
        "end": "2024-09-01T00:00:00+08:00",
        "label": "month_2024-08-01",
        "granularity": "month"
      },
      "api_to_ods": {
        "start": "2024-08-01T00:00:00+08:00",
        "end": "2024-09-01T00: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": 67,
            "records_with_pk": 67,
            "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": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "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": 9969,
            "records_with_pk": 9969,
            "missing": 0,
            "missing_samples": [],
            "pages": 50,
            "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": 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": 0,
            "records_with_pk": 0,
            "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": 11946,
            "records_with_pk": 11946,
            "missing": 0,
            "missing_samples": [],
            "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": 37,
            "records_with_pk": 37,
            "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": 16403,
            "records_with_pk": 16403,
            "missing": 0,
            "missing_samples": [],
            "pages": 83,
            "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": 554,
            "records_with_pk": 554,
            "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": 943,
            "records_with_pk": 943,
            "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": 2468,
            "records_with_pk": 2468,
            "missing": 0,
            "missing_samples": [],
            "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": 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": 8332,
            "records_with_pk": 8332,
            "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": 1,
            "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": 1674,
            "records_with_pk": 1674,
            "missing": 0,
            "missing_samples": [],
            "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": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 0,
        "total_errors": 0,
        "generated_at": "2026-01-19T07:39:11.088512+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": 17601,
              "diff": -17600
            },
            "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": 64,
              "ods": 67,
              "diff": -3
            },
            "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": 552,
              "ods": 554,
              "diff": -2
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 938,
              "ods": 943,
              "diff": -5
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 406040.3,
                "ods_sum": 411958.35,
                "diff": -5918.049999999988
              }
            ]
          },
          {
            "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": 170,
              "ods": 171,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "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": 22075,
              "ods": 22478,
              "diff": -403
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 22075,
              "ods": 22478,
              "diff": -403
            },
            "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": 17227,
              "ods": 17601,
              "diff": -374
            },
            "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": 2654,
              "ods": 2710,
              "diff": -56
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 305990.47,
                "ods_sum": 311771.56,
                "diff": -5781.090000000026
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2654,
              "ods": 2710,
              "diff": -56
            },
            "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": 501714,
              "ods": 17563,
              "diff": 484151
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 615278.9,
                "ods_sum": 21673.2,
                "diff": 593605.7000000001
              },
              {
                "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": 4681,
              "ods": 4755,
              "diff": -74
            },
            "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": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "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": 10545,
              "ods": 10861,
              "diff": -316
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7353.59,
                "ods_sum": 7353.59,
                "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": 16086,
              "ods": 16403,
              "diff": -317
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "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": 42,
              "ods": 43,
              "diff": -1
            },
            "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": 464365
      },
      "generated_at": "2026-01-19T07:39:21.514836+08:00"
    },
    {
      "mode": "window",
      "window": {
        "start": "2024-09-01T00:00:00+08:00",
        "end": "2024-10-01T00:00:00+08:00",
        "label": "month_2024-09-01",
        "granularity": "month"
      },
      "api_to_ods": {
        "start": "2024-09-01T00:00:00+08:00",
        "end": "2024-10-01T00: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": 67,
            "records_with_pk": 67,
            "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": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "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": 9969,
            "records_with_pk": 9969,
            "missing": 0,
            "missing_samples": [],
            "pages": 50,
            "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": 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": 0,
            "records_with_pk": 0,
            "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": 11946,
            "records_with_pk": 11946,
            "missing": 0,
            "missing_samples": [],
            "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": 37,
            "records_with_pk": 37,
            "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": 16403,
            "records_with_pk": 16403,
            "missing": 0,
            "missing_samples": [],
            "pages": 83,
            "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": 554,
            "records_with_pk": 554,
            "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": 943,
            "records_with_pk": 943,
            "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": 2468,
            "records_with_pk": 2468,
            "missing": 0,
            "missing_samples": [],
            "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": 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": 8332,
            "records_with_pk": 8332,
            "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": 1,
            "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": 1674,
            "records_with_pk": 1674,
            "missing": 0,
            "missing_samples": [],
            "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": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 0,
        "total_errors": 0,
        "generated_at": "2026-01-19T07:41:37.162810+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": 17601,
              "diff": -17600
            },
            "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": 64,
              "ods": 67,
              "diff": -3
            },
            "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": 552,
              "ods": 554,
              "diff": -2
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 938,
              "ods": 943,
              "diff": -5
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 406040.3,
                "ods_sum": 411958.35,
                "diff": -5918.049999999988
              }
            ]
          },
          {
            "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": 170,
              "ods": 171,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "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": 22075,
              "ods": 22478,
              "diff": -403
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 22075,
              "ods": 22478,
              "diff": -403
            },
            "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": 17227,
              "ods": 17601,
              "diff": -374
            },
            "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": 2654,
              "ods": 2710,
              "diff": -56
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 305990.47,
                "ods_sum": 311771.56,
                "diff": -5781.090000000026
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2654,
              "ods": 2710,
              "diff": -56
            },
            "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": 501714,
              "ods": 17563,
              "diff": 484151
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 615278.9,
                "ods_sum": 21673.2,
                "diff": 593605.7000000001
              },
              {
                "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": 4681,
              "ods": 4755,
              "diff": -74
            },
            "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": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "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": 10545,
              "ods": 10861,
              "diff": -316
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7353.59,
                "ods_sum": 7353.59,
                "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": 16086,
              "ods": 16403,
              "diff": -317
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "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": 42,
              "ods": 43,
              "diff": -1
            },
            "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": 464365
      },
      "generated_at": "2026-01-19T07:41:47.077781+08:00"
    },
    {
      "mode": "window",
      "window": {
        "start": "2024-10-01T00:00:00+08:00",
        "end": "2024-11-01T00:00:00+08:00",
        "label": "month_2024-10-01",
        "granularity": "month"
      },
      "api_to_ods": {
        "start": "2024-10-01T00:00:00+08:00",
        "end": "2024-11-01T00: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": 67,
            "records_with_pk": 67,
            "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": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "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": 9969,
            "records_with_pk": 9969,
            "missing": 0,
            "missing_samples": [],
            "pages": 50,
            "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": 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": 0,
            "records_with_pk": 0,
            "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": 11946,
            "records_with_pk": 11946,
            "missing": 0,
            "missing_samples": [],
            "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": 37,
            "records_with_pk": 37,
            "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": 16403,
            "records_with_pk": 16403,
            "missing": 0,
            "missing_samples": [],
            "pages": 83,
            "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": 554,
            "records_with_pk": 554,
            "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": 943,
            "records_with_pk": 943,
            "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": 2468,
            "records_with_pk": 2468,
            "missing": 0,
            "missing_samples": [],
            "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": 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": 8332,
            "records_with_pk": 8332,
            "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": 1,
            "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": 1674,
            "records_with_pk": 1674,
            "missing": 0,
            "missing_samples": [],
            "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": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 0,
        "total_errors": 0,
        "generated_at": "2026-01-19T07:44:02.517955+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": 17601,
              "diff": -17600
            },
            "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": 64,
              "ods": 67,
              "diff": -3
            },
            "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": 552,
              "ods": 554,
              "diff": -2
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 938,
              "ods": 943,
              "diff": -5
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 406040.3,
                "ods_sum": 411958.35,
                "diff": -5918.049999999988
              }
            ]
          },
          {
            "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": 170,
              "ods": 171,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "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": 22075,
              "ods": 22478,
              "diff": -403
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 22075,
              "ods": 22478,
              "diff": -403
            },
            "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": 17227,
              "ods": 17601,
              "diff": -374
            },
            "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": 2654,
              "ods": 2710,
              "diff": -56
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 305990.47,
                "ods_sum": 311771.56,
                "diff": -5781.090000000026
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2654,
              "ods": 2710,
              "diff": -56
            },
            "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": 501714,
              "ods": 17563,
              "diff": 484151
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 615278.9,
                "ods_sum": 21673.2,
                "diff": 593605.7000000001
              },
              {
                "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": 4681,
              "ods": 4755,
              "diff": -74
            },
            "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": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "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": 10545,
              "ods": 10861,
              "diff": -316
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7353.59,
                "ods_sum": 7353.59,
                "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": 16086,
              "ods": 16403,
              "diff": -317
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "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": 42,
              "ods": 43,
              "diff": -1
            },
            "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": 464365
      },
      "generated_at": "2026-01-19T07:44:13.078380+08:00"
    },
    {
      "mode": "window",
      "window": {
        "start": "2024-11-01T00:00:00+08:00",
        "end": "2024-12-01T00:00:00+08:00",
        "label": "month_2024-11-01",
        "granularity": "month"
      },
      "api_to_ods": {
        "start": "2024-11-01T00:00:00+08:00",
        "end": "2024-12-01T00: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": 67,
            "records_with_pk": 67,
            "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": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "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": 9969,
            "records_with_pk": 9969,
            "missing": 0,
            "missing_samples": [],
            "pages": 50,
            "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": 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": 0,
            "records_with_pk": 0,
            "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": 11946,
            "records_with_pk": 11946,
            "missing": 0,
            "missing_samples": [],
            "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": 37,
            "records_with_pk": 37,
            "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": 16403,
            "records_with_pk": 16403,
            "missing": 0,
            "missing_samples": [],
            "pages": 83,
            "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": 554,
            "records_with_pk": 554,
            "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": 943,
            "records_with_pk": 943,
            "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": 2468,
            "records_with_pk": 2468,
            "missing": 0,
            "missing_samples": [],
            "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": 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": 8332,
            "records_with_pk": 8332,
            "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": 1,
            "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": 1674,
            "records_with_pk": 1674,
            "missing": 0,
            "missing_samples": [],
            "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": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 0,
        "total_errors": 0,
        "generated_at": "2026-01-19T07:46:29.655689+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": 17601,
              "diff": -17600
            },
            "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": 64,
              "ods": 67,
              "diff": -3
            },
            "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": 552,
              "ods": 554,
              "diff": -2
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 938,
              "ods": 943,
              "diff": -5
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 406040.3,
                "ods_sum": 411958.35,
                "diff": -5918.049999999988
              }
            ]
          },
          {
            "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": 170,
              "ods": 171,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "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": 22075,
              "ods": 22478,
              "diff": -403
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 22075,
              "ods": 22478,
              "diff": -403
            },
            "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": 17227,
              "ods": 17601,
              "diff": -374
            },
            "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": 2654,
              "ods": 2710,
              "diff": -56
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 305990.47,
                "ods_sum": 311771.56,
                "diff": -5781.090000000026
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2654,
              "ods": 2710,
              "diff": -56
            },
            "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": 501714,
              "ods": 17563,
              "diff": 484151
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 615278.9,
                "ods_sum": 21673.2,
                "diff": 593605.7000000001
              },
              {
                "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": 4681,
              "ods": 4755,
              "diff": -74
            },
            "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": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "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": 10545,
              "ods": 10861,
              "diff": -316
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7353.59,
                "ods_sum": 7353.59,
                "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": 16086,
              "ods": 16403,
              "diff": -317
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "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": 42,
              "ods": 43,
              "diff": -1
            },
            "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": 464365
      },
      "generated_at": "2026-01-19T07:46:40.111494+08:00"
    },
    {
      "mode": "window",
      "window": {
        "start": "2024-12-01T00:00:00+08:00",
        "end": "2025-01-01T00:00:00+08:00",
        "label": "month_2024-12-01",
        "granularity": "month"
      },
      "api_to_ods": {
        "start": "2024-12-01T00:00:00+08:00",
        "end": "2025-01-01T00: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": 67,
            "records_with_pk": 67,
            "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": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "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": 9969,
            "records_with_pk": 9969,
            "missing": 0,
            "missing_samples": [],
            "pages": 50,
            "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": 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": 0,
            "records_with_pk": 0,
            "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": 11946,
            "records_with_pk": 11946,
            "missing": 0,
            "missing_samples": [],
            "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": 37,
            "records_with_pk": 37,
            "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": 16403,
            "records_with_pk": 16403,
            "missing": 0,
            "missing_samples": [],
            "pages": 83,
            "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": 554,
            "records_with_pk": 554,
            "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": 943,
            "records_with_pk": 943,
            "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": 2468,
            "records_with_pk": 2468,
            "missing": 0,
            "missing_samples": [],
            "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": 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": 8332,
            "records_with_pk": 8332,
            "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": 1,
            "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": 1674,
            "records_with_pk": 1674,
            "missing": 0,
            "missing_samples": [],
            "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": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 0,
        "total_errors": 0,
        "generated_at": "2026-01-19T07:48:52.417950+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": 17601,
              "diff": -17600
            },
            "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": 64,
              "ods": 67,
              "diff": -3
            },
            "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": 552,
              "ods": 554,
              "diff": -2
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 938,
              "ods": 943,
              "diff": -5
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 406040.3,
                "ods_sum": 411958.35,
                "diff": -5918.049999999988
              }
            ]
          },
          {
            "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": 170,
              "ods": 171,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "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": 22075,
              "ods": 22478,
              "diff": -403
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 22075,
              "ods": 22478,
              "diff": -403
            },
            "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": 17227,
              "ods": 17601,
              "diff": -374
            },
            "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": 2654,
              "ods": 2710,
              "diff": -56
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 305990.47,
                "ods_sum": 311771.56,
                "diff": -5781.090000000026
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2654,
              "ods": 2710,
              "diff": -56
            },
            "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": 501714,
              "ods": 17563,
              "diff": 484151
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 615278.9,
                "ods_sum": 21673.2,
                "diff": 593605.7000000001
              },
              {
                "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": 4681,
              "ods": 4755,
              "diff": -74
            },
            "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": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "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": 10545,
              "ods": 10861,
              "diff": -316
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7353.59,
                "ods_sum": 7353.59,
                "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": 16086,
              "ods": 16403,
              "diff": -317
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "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": 42,
              "ods": 43,
              "diff": -1
            },
            "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": 464365
      },
      "generated_at": "2026-01-19T07:49:02.521291+08:00"
    },
    {
      "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": {
        "start": "2025-01-01T00:00:00+08:00",
        "end": "2025-02-01T00: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": 67,
            "records_with_pk": 67,
            "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": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "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": 9969,
            "records_with_pk": 9969,
            "missing": 0,
            "missing_samples": [],
            "pages": 50,
            "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": 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": 0,
            "records_with_pk": 0,
            "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": 11946,
            "records_with_pk": 11946,
            "missing": 0,
            "missing_samples": [],
            "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": 37,
            "records_with_pk": 37,
            "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": 16403,
            "records_with_pk": 16403,
            "missing": 0,
            "missing_samples": [],
            "pages": 83,
            "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": 554,
            "records_with_pk": 554,
            "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": 943,
            "records_with_pk": 943,
            "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": 2468,
            "records_with_pk": 2468,
            "missing": 0,
            "missing_samples": [],
            "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": 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": 8332,
            "records_with_pk": 8332,
            "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": 1,
            "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": 1674,
            "records_with_pk": 1674,
            "missing": 0,
            "missing_samples": [],
            "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": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 0,
        "total_errors": 0,
        "generated_at": "2026-01-19T07:51:15.362870+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": 17601,
              "diff": -17600
            },
            "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": 64,
              "ods": 67,
              "diff": -3
            },
            "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": 552,
              "ods": 554,
              "diff": -2
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 938,
              "ods": 943,
              "diff": -5
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 406040.3,
                "ods_sum": 411958.35,
                "diff": -5918.049999999988
              }
            ]
          },
          {
            "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": 170,
              "ods": 171,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "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": 22075,
              "ods": 22478,
              "diff": -403
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 22075,
              "ods": 22478,
              "diff": -403
            },
            "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": 17227,
              "ods": 17601,
              "diff": -374
            },
            "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": 2654,
              "ods": 2710,
              "diff": -56
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 305990.47,
                "ods_sum": 311771.56,
                "diff": -5781.090000000026
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2654,
              "ods": 2710,
              "diff": -56
            },
            "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": 501714,
              "ods": 17563,
              "diff": 484151
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 615278.9,
                "ods_sum": 21673.2,
                "diff": 593605.7000000001
              },
              {
                "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": 4681,
              "ods": 4755,
              "diff": -74
            },
            "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": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "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": 10545,
              "ods": 10861,
              "diff": -316
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7353.59,
                "ods_sum": 7353.59,
                "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": 16086,
              "ods": 16403,
              "diff": -317
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "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": 42,
              "ods": 43,
              "diff": -1
            },
            "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": 464365
      },
      "generated_at": "2026-01-19T07:51:26.056095+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": {
        "start": "2025-02-01T00:00:00+08:00",
        "end": "2025-03-01T00: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": 67,
            "records_with_pk": 67,
            "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": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "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": 9969,
            "records_with_pk": 9969,
            "missing": 0,
            "missing_samples": [],
            "pages": 50,
            "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": 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": 0,
            "records_with_pk": 0,
            "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": 11946,
            "records_with_pk": 11946,
            "missing": 0,
            "missing_samples": [],
            "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": 37,
            "records_with_pk": 37,
            "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": 16403,
            "records_with_pk": 16403,
            "missing": 0,
            "missing_samples": [],
            "pages": 83,
            "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": 554,
            "records_with_pk": 554,
            "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": 943,
            "records_with_pk": 943,
            "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": 2468,
            "records_with_pk": 2468,
            "missing": 0,
            "missing_samples": [],
            "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": 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": 8332,
            "records_with_pk": 8332,
            "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": 1,
            "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": 1674,
            "records_with_pk": 1674,
            "missing": 0,
            "missing_samples": [],
            "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": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 0,
        "total_errors": 0,
        "generated_at": "2026-01-19T07:53:40.905795+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": 17601,
              "diff": -17600
            },
            "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": 64,
              "ods": 67,
              "diff": -3
            },
            "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": 552,
              "ods": 554,
              "diff": -2
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 938,
              "ods": 943,
              "diff": -5
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 406040.3,
                "ods_sum": 411958.35,
                "diff": -5918.049999999988
              }
            ]
          },
          {
            "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": 170,
              "ods": 171,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "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": 22075,
              "ods": 22478,
              "diff": -403
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 22075,
              "ods": 22478,
              "diff": -403
            },
            "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": 17227,
              "ods": 17601,
              "diff": -374
            },
            "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": 2654,
              "ods": 2710,
              "diff": -56
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 305990.47,
                "ods_sum": 311771.56,
                "diff": -5781.090000000026
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2654,
              "ods": 2710,
              "diff": -56
            },
            "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": 501714,
              "ods": 17563,
              "diff": 484151
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 615278.9,
                "ods_sum": 21673.2,
                "diff": 593605.7000000001
              },
              {
                "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": 4681,
              "ods": 4755,
              "diff": -74
            },
            "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": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "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": 10545,
              "ods": 10861,
              "diff": -316
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7353.59,
                "ods_sum": 7353.59,
                "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": 16086,
              "ods": 16403,
              "diff": -317
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "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": 42,
              "ods": 43,
              "diff": -1
            },
            "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": 464365
      },
      "generated_at": "2026-01-19T07:53:51.454575+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": {
        "start": "2025-03-01T00:00:00+08:00",
        "end": "2025-04-01T00: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": 67,
            "records_with_pk": 67,
            "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": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "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": 9969,
            "records_with_pk": 9969,
            "missing": 0,
            "missing_samples": [],
            "pages": 50,
            "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": 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": 0,
            "records_with_pk": 0,
            "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": 11946,
            "records_with_pk": 11946,
            "missing": 0,
            "missing_samples": [],
            "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": 37,
            "records_with_pk": 37,
            "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": 16403,
            "records_with_pk": 16403,
            "missing": 0,
            "missing_samples": [],
            "pages": 83,
            "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": 554,
            "records_with_pk": 554,
            "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": 943,
            "records_with_pk": 943,
            "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": 2468,
            "records_with_pk": 2468,
            "missing": 0,
            "missing_samples": [],
            "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": 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": 8332,
            "records_with_pk": 8332,
            "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": 1,
            "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": 1674,
            "records_with_pk": 1674,
            "missing": 0,
            "missing_samples": [],
            "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": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 0,
        "total_errors": 0,
        "generated_at": "2026-01-19T07:56:05.319847+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": 17601,
              "diff": -17600
            },
            "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": 64,
              "ods": 67,
              "diff": -3
            },
            "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": 552,
              "ods": 554,
              "diff": -2
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 938,
              "ods": 943,
              "diff": -5
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 406040.3,
                "ods_sum": 411958.35,
                "diff": -5918.049999999988
              }
            ]
          },
          {
            "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": 170,
              "ods": 171,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "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": 22075,
              "ods": 22478,
              "diff": -403
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 22075,
              "ods": 22478,
              "diff": -403
            },
            "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": 17227,
              "ods": 17601,
              "diff": -374
            },
            "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": 2654,
              "ods": 2710,
              "diff": -56
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 305990.47,
                "ods_sum": 311771.56,
                "diff": -5781.090000000026
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2654,
              "ods": 2710,
              "diff": -56
            },
            "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": 501714,
              "ods": 17563,
              "diff": 484151
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 615278.9,
                "ods_sum": 21673.2,
                "diff": 593605.7000000001
              },
              {
                "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": 4681,
              "ods": 4755,
              "diff": -74
            },
            "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": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "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": 10545,
              "ods": 10861,
              "diff": -316
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7353.59,
                "ods_sum": 7353.59,
                "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": 16086,
              "ods": 16403,
              "diff": -317
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "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": 42,
              "ods": 43,
              "diff": -1
            },
            "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": 464365
      },
      "generated_at": "2026-01-19T07:56:15.821734+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": {
        "start": "2025-04-01T00:00:00+08:00",
        "end": "2025-05-01T00: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": 67,
            "records_with_pk": 67,
            "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": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "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": 9969,
            "records_with_pk": 9969,
            "missing": 0,
            "missing_samples": [],
            "pages": 50,
            "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": 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": 0,
            "records_with_pk": 0,
            "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": 11946,
            "records_with_pk": 11946,
            "missing": 0,
            "missing_samples": [],
            "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": 37,
            "records_with_pk": 37,
            "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": 16403,
            "records_with_pk": 16403,
            "missing": 0,
            "missing_samples": [],
            "pages": 83,
            "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": 554,
            "records_with_pk": 554,
            "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": 943,
            "records_with_pk": 943,
            "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": 2468,
            "records_with_pk": 2468,
            "missing": 0,
            "missing_samples": [],
            "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": 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": 8332,
            "records_with_pk": 8332,
            "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": 1,
            "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": 1674,
            "records_with_pk": 1674,
            "missing": 0,
            "missing_samples": [],
            "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": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 0,
        "total_errors": 0,
        "generated_at": "2026-01-19T07:58:29.552232+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": 17601,
              "diff": -17600
            },
            "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": 64,
              "ods": 67,
              "diff": -3
            },
            "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": 552,
              "ods": 554,
              "diff": -2
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 938,
              "ods": 943,
              "diff": -5
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 406040.3,
                "ods_sum": 411958.35,
                "diff": -5918.049999999988
              }
            ]
          },
          {
            "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": 170,
              "ods": 171,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "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": 22075,
              "ods": 22478,
              "diff": -403
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 22075,
              "ods": 22478,
              "diff": -403
            },
            "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": 17227,
              "ods": 17601,
              "diff": -374
            },
            "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": 2654,
              "ods": 2710,
              "diff": -56
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 305990.47,
                "ods_sum": 311771.56,
                "diff": -5781.090000000026
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2654,
              "ods": 2710,
              "diff": -56
            },
            "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": 501714,
              "ods": 17563,
              "diff": 484151
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 615278.9,
                "ods_sum": 21673.2,
                "diff": 593605.7000000001
              },
              {
                "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": 4681,
              "ods": 4755,
              "diff": -74
            },
            "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": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "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": 10545,
              "ods": 10861,
              "diff": -316
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7353.59,
                "ods_sum": 7353.59,
                "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": 16086,
              "ods": 16403,
              "diff": -317
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "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": 42,
              "ods": 43,
              "diff": -1
            },
            "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": 464365
      },
      "generated_at": "2026-01-19T07:58:39.602961+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": {
        "start": "2025-05-01T00:00:00+08:00",
        "end": "2025-06-01T00: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": 67,
            "records_with_pk": 67,
            "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": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "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": 9969,
            "records_with_pk": 9969,
            "missing": 0,
            "missing_samples": [],
            "pages": 50,
            "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": 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": 0,
            "records_with_pk": 0,
            "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": 11946,
            "records_with_pk": 11946,
            "missing": 0,
            "missing_samples": [],
            "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": 37,
            "records_with_pk": 37,
            "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": 16403,
            "records_with_pk": 16403,
            "missing": 0,
            "missing_samples": [],
            "pages": 83,
            "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": 554,
            "records_with_pk": 554,
            "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": 943,
            "records_with_pk": 943,
            "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": 2468,
            "records_with_pk": 2468,
            "missing": 0,
            "missing_samples": [],
            "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": 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": 8332,
            "records_with_pk": 8332,
            "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": 1,
            "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": 1674,
            "records_with_pk": 1674,
            "missing": 0,
            "missing_samples": [],
            "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": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 0,
        "total_errors": 0,
        "generated_at": "2026-01-19T08:00:54.482073+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": 17601,
              "diff": -17600
            },
            "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": 64,
              "ods": 67,
              "diff": -3
            },
            "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": 552,
              "ods": 554,
              "diff": -2
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 938,
              "ods": 943,
              "diff": -5
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 406040.3,
                "ods_sum": 411958.35,
                "diff": -5918.049999999988
              }
            ]
          },
          {
            "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": 170,
              "ods": 171,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "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": 22075,
              "ods": 22478,
              "diff": -403
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 22075,
              "ods": 22478,
              "diff": -403
            },
            "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": 17227,
              "ods": 17601,
              "diff": -374
            },
            "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": 2654,
              "ods": 2710,
              "diff": -56
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 305990.47,
                "ods_sum": 311771.56,
                "diff": -5781.090000000026
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2654,
              "ods": 2710,
              "diff": -56
            },
            "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": 501714,
              "ods": 17563,
              "diff": 484151
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 615278.9,
                "ods_sum": 21673.2,
                "diff": 593605.7000000001
              },
              {
                "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": 4681,
              "ods": 4755,
              "diff": -74
            },
            "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": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "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": 10545,
              "ods": 10861,
              "diff": -316
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7353.59,
                "ods_sum": 7353.59,
                "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": 16086,
              "ods": 16403,
              "diff": -317
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "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": 42,
              "ods": 43,
              "diff": -1
            },
            "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": 464365
      },
      "generated_at": "2026-01-19T08:01:04.790663+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": {
        "start": "2025-06-01T00:00:00+08:00",
        "end": "2025-07-01T00: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": 67,
            "records_with_pk": 67,
            "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": 0,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 1,
            "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": 9969,
            "records_with_pk": 9969,
            "missing": 0,
            "missing_samples": [],
            "pages": 50,
            "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": 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": 0,
            "records_with_pk": 0,
            "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": 11946,
            "records_with_pk": 11946,
            "missing": 0,
            "missing_samples": [],
            "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": 37,
            "records_with_pk": 37,
            "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": 16403,
            "records_with_pk": 16403,
            "missing": 0,
            "missing_samples": [],
            "pages": 83,
            "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": 554,
            "records_with_pk": 554,
            "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": 943,
            "records_with_pk": 943,
            "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": 2468,
            "records_with_pk": 2468,
            "missing": 0,
            "missing_samples": [],
            "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": 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": 8332,
            "records_with_pk": 8332,
            "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": 1,
            "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": 1674,
            "records_with_pk": 1674,
            "missing": 0,
            "missing_samples": [],
            "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": 1,
            "skipped_missing_pk": 0,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 0,
        "total_errors": 0,
        "generated_at": "2026-01-19T08:03:17.107093+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": 17601,
              "diff": -17600
            },
            "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": 64,
              "ods": 67,
              "diff": -3
            },
            "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": 552,
              "ods": 554,
              "diff": -2
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 938,
              "ods": 943,
              "diff": -5
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 406040.3,
                "ods_sum": 411958.35,
                "diff": -5918.049999999988
              }
            ]
          },
          {
            "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": 170,
              "ods": 171,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "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": 22075,
              "ods": 22478,
              "diff": -403
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 22075,
              "ods": 22478,
              "diff": -403
            },
            "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": 17227,
              "ods": 17601,
              "diff": -374
            },
            "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": 2654,
              "ods": 2710,
              "diff": -56
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 305990.47,
                "ods_sum": 311771.56,
                "diff": -5781.090000000026
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2654,
              "ods": 2710,
              "diff": -56
            },
            "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": 501714,
              "ods": 17563,
              "diff": 484151
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 615278.9,
                "ods_sum": 21673.2,
                "diff": 593605.7000000001
              },
              {
                "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": 4681,
              "ods": 4755,
              "diff": -74
            },
            "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": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "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": 10545,
              "ods": 10861,
              "diff": -316
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7353.59,
                "ods_sum": 7353.59,
                "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": 16086,
              "ods": 16403,
              "diff": -317
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "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": 42,
              "ods": 43,
              "diff": -1
            },
            "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": 464365
      },
      "generated_at": "2026-01-19T08:03:27.049723+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": {
        "start": "2025-07-01T00:00:00+08:00",
        "end": "2025-08-01T00: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": 67,
            "records_with_pk": 67,
            "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": 1776,
            "records_with_pk": 1776,
            "missing": 0,
            "missing_samples": [],
            "pages": 9,
            "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": 9969,
            "records_with_pk": 9969,
            "missing": 0,
            "missing_samples": [],
            "pages": 50,
            "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": 351,
            "records_with_pk": 351,
            "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": 0,
            "records_with_pk": 0,
            "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": 11946,
            "records_with_pk": 11946,
            "missing": 0,
            "missing_samples": [],
            "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": 37,
            "records_with_pk": 37,
            "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": 16403,
            "records_with_pk": 16403,
            "missing": 0,
            "missing_samples": [],
            "pages": 83,
            "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": 554,
            "records_with_pk": 554,
            "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": 943,
            "records_with_pk": 943,
            "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": 2468,
            "records_with_pk": 2468,
            "missing": 0,
            "missing_samples": [],
            "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": 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": 8205,
            "records_with_pk": 8205,
            "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": 2551,
            "records_with_pk": 2551,
            "missing": 0,
            "missing_samples": [],
            "pages": 13,
            "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": 1664,
            "records_with_pk": 1664,
            "missing": 0,
            "missing_samples": [],
            "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": 1845,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 10,
            "skipped_missing_pk": 1845,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 0,
        "total_errors": 0,
        "generated_at": "2026-01-19T08:06:53.838853+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": 17601,
              "diff": -17600
            },
            "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": 64,
              "ods": 67,
              "diff": -3
            },
            "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": 552,
              "ods": 554,
              "diff": -2
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 938,
              "ods": 943,
              "diff": -5
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 406040.3,
                "ods_sum": 411958.35,
                "diff": -5918.049999999988
              }
            ]
          },
          {
            "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": 170,
              "ods": 171,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "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": 22075,
              "ods": 22478,
              "diff": -403
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 22075,
              "ods": 22478,
              "diff": -403
            },
            "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": 17227,
              "ods": 17601,
              "diff": -374
            },
            "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": 2654,
              "ods": 2710,
              "diff": -56
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 305990.47,
                "ods_sum": 311771.56,
                "diff": -5781.090000000026
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2654,
              "ods": 2710,
              "diff": -56
            },
            "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": 501714,
              "ods": 17563,
              "diff": 484151
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 615278.9,
                "ods_sum": 21673.2,
                "diff": 593605.7000000001
              },
              {
                "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": 4681,
              "ods": 4755,
              "diff": -74
            },
            "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": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "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": 10545,
              "ods": 10861,
              "diff": -316
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7353.59,
                "ods_sum": 7353.59,
                "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": 16086,
              "ods": 16403,
              "diff": -317
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "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": 42,
              "ods": 43,
              "diff": -1
            },
            "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": 463119
      },
      "generated_at": "2026-01-19T08:07:03.991335+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": {
        "start": "2025-08-01T00:00:00+08:00",
        "end": "2025-09-01T00: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": 67,
            "records_with_pk": 67,
            "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": 4602,
            "records_with_pk": 4602,
            "missing": 0,
            "missing_samples": [],
            "pages": 24,
            "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": 9833,
            "records_with_pk": 9833,
            "missing": 0,
            "missing_samples": [],
            "pages": 50,
            "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": 859,
            "records_with_pk": 859,
            "missing": 0,
            "missing_samples": [],
            "pages": 5,
            "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": 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": 11770,
            "records_with_pk": 11770,
            "missing": 0,
            "missing_samples": [],
            "pages": 59,
            "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": 37,
            "records_with_pk": 37,
            "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": 16403,
            "records_with_pk": 16403,
            "missing": 0,
            "missing_samples": [],
            "pages": 83,
            "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": 554,
            "records_with_pk": 554,
            "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": 943,
            "records_with_pk": 943,
            "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": 2445,
            "records_with_pk": 2445,
            "missing": 0,
            "missing_samples": [],
            "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": 94,
            "records_with_pk": 94,
            "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": 8205,
            "records_with_pk": 8205,
            "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": 5196,
            "records_with_pk": 5196,
            "missing": 0,
            "missing_samples": [],
            "pages": 26,
            "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": 1664,
            "records_with_pk": 1664,
            "missing": 0,
            "missing_samples": [],
            "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": 4763,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 24,
            "skipped_missing_pk": 4763,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 0,
        "total_errors": 0,
        "generated_at": "2026-01-19T08:09:53.937608+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": 17601,
              "diff": -17600
            },
            "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": 64,
              "ods": 67,
              "diff": -3
            },
            "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": 552,
              "ods": 554,
              "diff": -2
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 938,
              "ods": 943,
              "diff": -5
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 406040.3,
                "ods_sum": 411958.35,
                "diff": -5918.049999999988
              }
            ]
          },
          {
            "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": 170,
              "ods": 171,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "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": 22075,
              "ods": 22478,
              "diff": -403
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 22075,
              "ods": 22478,
              "diff": -403
            },
            "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": 17227,
              "ods": 17601,
              "diff": -374
            },
            "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": 2654,
              "ods": 2710,
              "diff": -56
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 305990.47,
                "ods_sum": 311771.56,
                "diff": -5781.090000000026
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2654,
              "ods": 2710,
              "diff": -56
            },
            "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": 501714,
              "ods": 17563,
              "diff": 484151
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 615278.9,
                "ods_sum": 21673.2,
                "diff": 593605.7000000001
              },
              {
                "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": 4681,
              "ods": 4755,
              "diff": -74
            },
            "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": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "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": 10545,
              "ods": 10861,
              "diff": -316
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7353.59,
                "ods_sum": 7353.59,
                "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": 16086,
              "ods": 16403,
              "diff": -317
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "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": 42,
              "ods": 43,
              "diff": -1
            },
            "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": 460778
      },
      "generated_at": "2026-01-19T08:10:04.668039+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": {
        "start": "2025-09-01T00:00:00+08:00",
        "end": "2025-10-01T00: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": 67,
            "records_with_pk": 67,
            "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": 3720,
            "records_with_pk": 3720,
            "missing": 0,
            "missing_samples": [],
            "pages": 19,
            "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": 9833,
            "records_with_pk": 9833,
            "missing": 0,
            "missing_samples": [],
            "pages": 50,
            "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": 654,
            "records_with_pk": 654,
            "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": 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": 11770,
            "records_with_pk": 11770,
            "missing": 0,
            "missing_samples": [],
            "pages": 59,
            "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": 37,
            "records_with_pk": 37,
            "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": 16403,
            "records_with_pk": 16403,
            "missing": 0,
            "missing_samples": [],
            "pages": 83,
            "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": 554,
            "records_with_pk": 554,
            "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": 943,
            "records_with_pk": 943,
            "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": 2445,
            "records_with_pk": 2445,
            "missing": 0,
            "missing_samples": [],
            "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": 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": 8205,
            "records_with_pk": 8205,
            "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": 4816,
            "records_with_pk": 4816,
            "missing": 0,
            "missing_samples": [],
            "pages": 25,
            "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": 1664,
            "records_with_pk": 1664,
            "missing": 0,
            "missing_samples": [],
            "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": 3810,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 20,
            "skipped_missing_pk": 3810,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 0,
        "total_errors": 0,
        "generated_at": "2026-01-19T08:13:03.304940+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": 17601,
              "diff": -17600
            },
            "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": 64,
              "ods": 67,
              "diff": -3
            },
            "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": 552,
              "ods": 554,
              "diff": -2
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 938,
              "ods": 943,
              "diff": -5
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 406040.3,
                "ods_sum": 411958.35,
                "diff": -5918.049999999988
              }
            ]
          },
          {
            "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": 170,
              "ods": 171,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "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": 22075,
              "ods": 22478,
              "diff": -403
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 22075,
              "ods": 22478,
              "diff": -403
            },
            "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": 17227,
              "ods": 17601,
              "diff": -374
            },
            "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": 2654,
              "ods": 2710,
              "diff": -56
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 305990.47,
                "ods_sum": 311771.56,
                "diff": -5781.090000000026
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2654,
              "ods": 2710,
              "diff": -56
            },
            "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": 501714,
              "ods": 17563,
              "diff": 484151
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 615278.9,
                "ods_sum": 21673.2,
                "diff": 593605.7000000001
              },
              {
                "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": 240,
              "ods": 654,
              "diff": -414
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 391.51,
                "ods_sum": 781.44,
                "diff": -389.93000000000006
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 69566.69,
                "ods_sum": 192541.75,
                "diff": -122975.06
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log_ex",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4681,
              "ods": 4755,
              "diff": -74
            },
            "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": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "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": 10545,
              "ods": 10861,
              "diff": -316
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7353.59,
                "ods_sum": 7353.59,
                "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": 16086,
              "ods": 16403,
              "diff": -317
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "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": 42,
              "ods": 43,
              "diff": -1
            },
            "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": 462687
      },
      "generated_at": "2026-01-19T08:13:13.481155+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": {
        "start": "2025-10-01T00:00:00+08:00",
        "end": "2025-11-01T00: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": 67,
            "records_with_pk": 67,
            "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": 1435,
            "records_with_pk": 1435,
            "missing": 0,
            "missing_samples": [],
            "pages": 8,
            "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": 9833,
            "records_with_pk": 9833,
            "missing": 0,
            "missing_samples": [],
            "pages": 50,
            "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": 259,
            "records_with_pk": 259,
            "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": 11770,
            "records_with_pk": 11770,
            "missing": 0,
            "missing_samples": [],
            "pages": 59,
            "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": 37,
            "records_with_pk": 37,
            "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": 16403,
            "records_with_pk": 16403,
            "missing": 0,
            "missing_samples": [],
            "pages": 83,
            "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": 554,
            "records_with_pk": 554,
            "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": 943,
            "records_with_pk": 943,
            "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": 2445,
            "records_with_pk": 2445,
            "missing": 0,
            "missing_samples": [],
            "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": 8205,
            "records_with_pk": 8205,
            "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": 2019,
            "records_with_pk": 2019,
            "missing": 0,
            "missing_samples": [],
            "pages": 11,
            "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": 1664,
            "records_with_pk": 1664,
            "missing": 0,
            "missing_samples": [],
            "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": 1462,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 8,
            "skipped_missing_pk": 1462,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 0,
        "total_errors": 0,
        "generated_at": "2026-01-19T08:15:46.480592+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": 17601,
              "diff": -17600
            },
            "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": 64,
              "ods": 67,
              "diff": -3
            },
            "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": 552,
              "ods": 554,
              "diff": -2
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 938,
              "ods": 943,
              "diff": -5
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 406040.3,
                "ods_sum": 411958.35,
                "diff": -5918.049999999988
              }
            ]
          },
          {
            "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": 170,
              "ods": 171,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "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": 22075,
              "ods": 22478,
              "diff": -403
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 22075,
              "ods": 22478,
              "diff": -403
            },
            "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": 17227,
              "ods": 17601,
              "diff": -374
            },
            "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": 2654,
              "ods": 2710,
              "diff": -56
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 305990.47,
                "ods_sum": 311771.56,
                "diff": -5781.090000000026
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2654,
              "ods": 2710,
              "diff": -56
            },
            "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": 501714,
              "ods": 17563,
              "diff": 484151
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 615278.9,
                "ods_sum": 21673.2,
                "diff": 593605.7000000001
              },
              {
                "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": 4681,
              "ods": 4755,
              "diff": -74
            },
            "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": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "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": 10545,
              "ods": 10861,
              "diff": -316
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7353.59,
                "ods_sum": 7353.59,
                "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": 16086,
              "ods": 16403,
              "diff": -317
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "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": 42,
              "ods": 43,
              "diff": -1
            },
            "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": 461541
      },
      "generated_at": "2026-01-19T08:15:56.711886+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": {
        "start": "2025-11-01T00:00:00+08:00",
        "end": "2025-12-01T00: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": 67,
            "records_with_pk": 67,
            "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": 3874,
            "records_with_pk": 3874,
            "missing": 0,
            "missing_samples": [],
            "pages": 20,
            "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": 9833,
            "records_with_pk": 9833,
            "missing": 0,
            "missing_samples": [],
            "pages": 50,
            "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": 884,
            "records_with_pk": 884,
            "missing": 0,
            "missing_samples": [],
            "pages": 5,
            "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": 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": 11770,
            "records_with_pk": 11770,
            "missing": 0,
            "missing_samples": [],
            "pages": 59,
            "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": 37,
            "records_with_pk": 37,
            "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": 16403,
            "records_with_pk": 16403,
            "missing": 0,
            "missing_samples": [],
            "pages": 83,
            "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": 554,
            "records_with_pk": 554,
            "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": 943,
            "records_with_pk": 943,
            "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": 2445,
            "records_with_pk": 2445,
            "missing": 0,
            "missing_samples": [],
            "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": 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": 8205,
            "records_with_pk": 8205,
            "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": 5516,
            "records_with_pk": 5516,
            "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": 1664,
            "records_with_pk": 1664,
            "missing": 0,
            "missing_samples": [],
            "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": 3999,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 20,
            "skipped_missing_pk": 3999,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 0,
        "total_errors": 0,
        "generated_at": "2026-01-19T08:18:42.768538+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": 17601,
              "diff": -17600
            },
            "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": 64,
              "ods": 67,
              "diff": -3
            },
            "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": 552,
              "ods": 554,
              "diff": -2
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 938,
              "ods": 943,
              "diff": -5
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 406040.3,
                "ods_sum": 411958.35,
                "diff": -5918.049999999988
              }
            ]
          },
          {
            "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": 170,
              "ods": 171,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "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": 22075,
              "ods": 22478,
              "diff": -403
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 22075,
              "ods": 22478,
              "diff": -403
            },
            "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": 17227,
              "ods": 17601,
              "diff": -374
            },
            "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": 2654,
              "ods": 2710,
              "diff": -56
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 305990.47,
                "ods_sum": 311771.56,
                "diff": -5781.090000000026
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2654,
              "ods": 2710,
              "diff": -56
            },
            "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": 501714,
              "ods": 17563,
              "diff": 484151
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 615278.9,
                "ods_sum": 21673.2,
                "diff": 593605.7000000001
              },
              {
                "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": 4681,
              "ods": 4755,
              "diff": -74
            },
            "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": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "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": 10545,
              "ods": 10861,
              "diff": -316
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7353.59,
                "ods_sum": 7353.59,
                "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": 16086,
              "ods": 16403,
              "diff": -317
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "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": 42,
              "ods": 43,
              "diff": -1
            },
            "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": 461029
      },
      "generated_at": "2026-01-19T08:18:53.200611+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": {
        "start": "2025-12-01T00:00:00+08:00",
        "end": "2026-01-01T00: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": 67,
            "records_with_pk": 67,
            "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": 4011,
            "records_with_pk": 4011,
            "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": 9833,
            "records_with_pk": 9833,
            "missing": 0,
            "missing_samples": [],
            "pages": 50,
            "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": 975,
            "records_with_pk": 975,
            "missing": 0,
            "missing_samples": [],
            "pages": 5,
            "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": 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": 11770,
            "records_with_pk": 11770,
            "missing": 0,
            "missing_samples": [],
            "pages": 59,
            "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": 37,
            "records_with_pk": 37,
            "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": 16403,
            "records_with_pk": 16403,
            "missing": 0,
            "missing_samples": [],
            "pages": 83,
            "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": 554,
            "records_with_pk": 554,
            "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": 943,
            "records_with_pk": 943,
            "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": 2445,
            "records_with_pk": 2445,
            "missing": 0,
            "missing_samples": [],
            "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": 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": 8205,
            "records_with_pk": 8205,
            "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": 5464,
            "records_with_pk": 5464,
            "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": 1664,
            "records_with_pk": 1664,
            "missing": 0,
            "missing_samples": [],
            "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": 4118,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 21,
            "skipped_missing_pk": 4118,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 0,
        "total_errors": 0,
        "generated_at": "2026-01-19T08:21:41.547645+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": 17601,
              "diff": -17600
            },
            "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": 64,
              "ods": 67,
              "diff": -3
            },
            "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": 552,
              "ods": 554,
              "diff": -2
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 938,
              "ods": 943,
              "diff": -5
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 406040.3,
                "ods_sum": 411958.35,
                "diff": -5918.049999999988
              }
            ]
          },
          {
            "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": 170,
              "ods": 171,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "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": 22075,
              "ods": 22478,
              "diff": -403
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 22075,
              "ods": 22478,
              "diff": -403
            },
            "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": 17227,
              "ods": 17601,
              "diff": -374
            },
            "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": 2654,
              "ods": 2710,
              "diff": -56
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 305990.47,
                "ods_sum": 311771.56,
                "diff": -5781.090000000026
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2654,
              "ods": 2710,
              "diff": -56
            },
            "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": 501714,
              "ods": 17563,
              "diff": 484151
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 615278.9,
                "ods_sum": 21673.2,
                "diff": 593605.7000000001
              },
              {
                "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": 4681,
              "ods": 4755,
              "diff": -74
            },
            "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": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "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": 10545,
              "ods": 10861,
              "diff": -316
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7353.59,
                "ods_sum": 7353.59,
                "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": 16086,
              "ods": 16403,
              "diff": -317
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "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": 42,
              "ods": 43,
              "diff": -1
            },
            "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": 460886
      },
      "generated_at": "2026-01-19T08:21:51.631109+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": {
        "start": "2026-01-01T00:00:00+08:00",
        "end": "2026-01-08T00: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": 67,
            "records_with_pk": 67,
            "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": 800,
            "records_with_pk": 800,
            "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": 9833,
            "records_with_pk": 9833,
            "missing": 0,
            "missing_samples": [],
            "pages": 50,
            "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": 157,
            "records_with_pk": 157,
            "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": 2,
            "records_with_pk": 2,
            "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": 11770,
            "records_with_pk": 11770,
            "missing": 0,
            "missing_samples": [],
            "pages": 59,
            "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": 37,
            "records_with_pk": 37,
            "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": 16403,
            "records_with_pk": 16403,
            "missing": 0,
            "missing_samples": [],
            "pages": 83,
            "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": 554,
            "records_with_pk": 554,
            "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": 943,
            "records_with_pk": 943,
            "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": 2445,
            "records_with_pk": 2445,
            "missing": 0,
            "missing_samples": [],
            "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": 17,
            "records_with_pk": 17,
            "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": 8205,
            "records_with_pk": 8205,
            "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": 867,
            "records_with_pk": 867,
            "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": 1664,
            "records_with_pk": 1664,
            "missing": 0,
            "missing_samples": [],
            "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": 823,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 5,
            "skipped_missing_pk": 823,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 0,
        "total_errors": 0,
        "generated_at": "2026-01-19T08:24:10.237193+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": 17601,
              "diff": -17600
            },
            "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": 64,
              "ods": 67,
              "diff": -3
            },
            "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": 552,
              "ods": 554,
              "diff": -2
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 938,
              "ods": 943,
              "diff": -5
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 406040.3,
                "ods_sum": 411958.35,
                "diff": -5918.049999999988
              }
            ]
          },
          {
            "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": 170,
              "ods": 171,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "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": 22075,
              "ods": 22478,
              "diff": -403
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 22075,
              "ods": 22478,
              "diff": -403
            },
            "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": 17227,
              "ods": 17601,
              "diff": -374
            },
            "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": 2654,
              "ods": 2710,
              "diff": -56
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 305990.47,
                "ods_sum": 311771.56,
                "diff": -5781.090000000026
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2654,
              "ods": 2710,
              "diff": -56
            },
            "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": 501714,
              "ods": 17563,
              "diff": 484151
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 615278.9,
                "ods_sum": 21673.2,
                "diff": 593605.7000000001
              },
              {
                "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": 4681,
              "ods": 4755,
              "diff": -74
            },
            "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": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "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": 10545,
              "ods": 10861,
              "diff": -316
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7353.59,
                "ods_sum": 7353.59,
                "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": 16086,
              "ods": 16403,
              "diff": -317
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "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": 42,
              "ods": 43,
              "diff": -1
            },
            "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": 463666
      },
      "generated_at": "2026-01-19T08:24:20.536791+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": {
        "start": "2026-01-08T00:00:00+08:00",
        "end": "2026-01-15T00: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": 67,
            "records_with_pk": 67,
            "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": 767,
            "records_with_pk": 767,
            "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": 9833,
            "records_with_pk": 9833,
            "missing": 0,
            "missing_samples": [],
            "pages": 50,
            "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": 188,
            "records_with_pk": 188,
            "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": 11770,
            "records_with_pk": 11770,
            "missing": 0,
            "missing_samples": [],
            "pages": 59,
            "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": 37,
            "records_with_pk": 37,
            "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": 16403,
            "records_with_pk": 16403,
            "missing": 0,
            "missing_samples": [],
            "pages": 83,
            "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": 554,
            "records_with_pk": 554,
            "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": 943,
            "records_with_pk": 943,
            "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": 2445,
            "records_with_pk": 2445,
            "missing": 0,
            "missing_samples": [],
            "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": 8205,
            "records_with_pk": 8205,
            "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": 1198,
            "records_with_pk": 1198,
            "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": 1664,
            "records_with_pk": 1664,
            "missing": 0,
            "missing_samples": [],
            "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": 790,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 4,
            "skipped_missing_pk": 790,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 0,
        "total_errors": 0,
        "generated_at": "2026-01-19T08:26:37.733093+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": 17601,
              "diff": -17600
            },
            "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": 64,
              "ods": 67,
              "diff": -3
            },
            "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": 552,
              "ods": 554,
              "diff": -2
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 938,
              "ods": 943,
              "diff": -5
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 406040.3,
                "ods_sum": 411958.35,
                "diff": -5918.049999999988
              }
            ]
          },
          {
            "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": 170,
              "ods": 171,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "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": 22075,
              "ods": 22478,
              "diff": -403
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 22075,
              "ods": 22478,
              "diff": -403
            },
            "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": 17227,
              "ods": 17601,
              "diff": -374
            },
            "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": 2654,
              "ods": 2710,
              "diff": -56
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 305990.47,
                "ods_sum": 311771.56,
                "diff": -5781.090000000026
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2654,
              "ods": 2710,
              "diff": -56
            },
            "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": 501714,
              "ods": 17563,
              "diff": 484151
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 615278.9,
                "ods_sum": 21673.2,
                "diff": 593605.7000000001
              },
              {
                "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": 4681,
              "ods": 4755,
              "diff": -74
            },
            "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": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "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": 10545,
              "ods": 10861,
              "diff": -316
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7353.59,
                "ods_sum": 7353.59,
                "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": 16086,
              "ods": 16403,
              "diff": -317
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "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": 42,
              "ods": 43,
              "diff": -1
            },
            "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": 463693
      },
      "generated_at": "2026-01-19T08:26:47.627441+08:00"
    },
    {
      "mode": "window",
      "window": {
        "start": "2026-01-15T00:00:00+08:00",
        "end": "2026-01-19T00:00:00+08:00",
        "label": "week_2026-01-15",
        "granularity": "week"
      },
      "api_to_ods": {
        "start": "2026-01-15T00:00:00+08:00",
        "end": "2026-01-19T00: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": 67,
            "records_with_pk": 67,
            "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": 531,
            "records_with_pk": 531,
            "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": 9833,
            "records_with_pk": 9833,
            "missing": 0,
            "missing_samples": [],
            "pages": 50,
            "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": 114,
            "records_with_pk": 114,
            "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": 11770,
            "records_with_pk": 11770,
            "missing": 0,
            "missing_samples": [],
            "pages": 59,
            "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": 37,
            "records_with_pk": 37,
            "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": 16403,
            "records_with_pk": 16403,
            "missing": 0,
            "missing_samples": [],
            "pages": 83,
            "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": 554,
            "records_with_pk": 554,
            "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": 943,
            "records_with_pk": 943,
            "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": 2445,
            "records_with_pk": 2445,
            "missing": 0,
            "missing_samples": [],
            "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": 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": 8205,
            "records_with_pk": 8205,
            "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": 688,
            "records_with_pk": 688,
            "missing": 0,
            "missing_samples": [],
            "pages": 4,
            "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": 1664,
            "records_with_pk": 1664,
            "missing": 0,
            "missing_samples": [],
            "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": 554,
            "records_with_pk": 0,
            "missing": 0,
            "missing_samples": [],
            "pages": 3,
            "skipped_missing_pk": 554,
            "errors": 0,
            "error_detail": null,
            "source_endpoint": "/PayLog/GetPayLogListPage"
          }
        ],
        "total_missing": 0,
        "total_errors": 0,
        "generated_at": "2026-01-19T08:29:05.648926+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": 17601,
              "diff": -17600
            },
            "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": 472,
              "diff": -472
            },
            "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": 64,
              "ods": 67,
              "diff": -3
            },
            "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": 3,
              "diff": -3
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 1,
              "ods": 3,
              "diff": -2
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_ex",
            "ods_table": "billiards_ods.member_profiles",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 552,
              "ods": 554,
              "diff": -2
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_member_card_account",
            "ods_table": "billiards_ods.member_stored_value_cards",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 938,
              "ods": 943,
              "diff": -5
            },
            "amounts": [
              {
                "column": "balance",
                "dwd_sum": 406040.3,
                "ods_sum": 411958.35,
                "diff": -5918.049999999988
              }
            ]
          },
          {
            "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": 7,
              "diff": -5
            },
            "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": 1,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_tenant_goods_ex",
            "ods_table": "billiards_ods.tenant_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 170,
              "ods": 171,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dim_store_goods_ex",
            "ods_table": "billiards_ods.store_goods_master",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 169,
              "ods": 170,
              "diff": -1
            },
            "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": 22075,
              "ods": 22478,
              "diff": -403
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_settlement_head_ex",
            "ods_table": "billiards_ods.settlement_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 22075,
              "ods": 22478,
              "diff": -403
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": true,
            "window_col": "create_time",
            "count": {
              "dwd": 120,
              "ods": 472,
              "diff": -352
            },
            "amounts": [
              {
                "column": "adjust_amount",
                "dwd_sum": 3910.16,
                "ods_sum": 8371.97,
                "diff": -4461.8099999999995
              },
              {
                "column": "coupon_promotion_amount",
                "dwd_sum": 4855.76,
                "ods_sum": 24549.66,
                "diff": -19693.9
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 17482.25,
                "ods_sum": 53245.25,
                "diff": -35763.0
              },
              {
                "column": "member_discount_amount",
                "dwd_sum": 1857.77,
                "ods_sum": 4127.64,
                "diff": -2269.8700000000003
              },
              {
                "column": "real_table_charge_money",
                "dwd_sum": 9785.64,
                "ods_sum": 23662.8,
                "diff": -13877.16
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_log_ex",
            "ods_table": "billiards_ods.table_fee_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 17227,
              "ods": 17601,
              "diff": -374
            },
            "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": 2654,
              "ods": 2710,
              "diff": -56
            },
            "amounts": [
              {
                "column": "ledger_amount",
                "dwd_sum": 305990.47,
                "ods_sum": 311771.56,
                "diff": -5781.090000000026
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
            "ods_table": "billiards_ods.table_fee_discount_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 2654,
              "ods": 2710,
              "diff": -56
            },
            "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": 501714,
              "ods": 17563,
              "diff": 484151
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "discount_money",
                "dwd_sum": 615278.9,
                "ods_sum": 21673.2,
                "diff": 593605.7000000001
              },
              {
                "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": 40,
              "ods": 114,
              "diff": -74
            },
            "amounts": [
              {
                "column": "coupon_deduct_money",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 14270.54,
                "ods_sum": 35457.3,
                "diff": -21186.760000000002
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_service_log_ex",
            "ods_table": "billiards_ods.assistant_service_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4681,
              "ods": 4755,
              "diff": -74
            },
            "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": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
            "ods_table": "billiards_ods.assistant_cancellation_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 88,
              "ods": 92,
              "diff": -4
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
            "ods_table": "billiards_ods.member_balance_changes",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 4502,
              "ods": 4586,
              "diff": -84
            },
            "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": 87,
              "ods": 393,
              "diff": -306
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 4940.0,
                "ods_sum": 25170.0,
                "diff": -20230.0
              },
              {
                "column": "ledger_amount",
                "dwd_sum": 4855.76,
                "ods_sum": 24549.66,
                "diff": -19693.9
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_groupbuy_redemption_ex",
            "ods_table": "billiards_ods.group_buy_redemption_records",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 10545,
              "ods": 10861,
              "diff": -316
            },
            "amounts": [
              {
                "column": "assistant_promotion_money",
                "dwd_sum": 7353.59,
                "ods_sum": 7353.59,
                "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": 80,
              "ods": 395,
              "diff": -315
            },
            "amounts": [
              {
                "column": "coupon_money",
                "dwd_sum": 4584.0,
                "ods_sum": 25438.0,
                "diff": -20854.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": 16086,
              "ods": 16403,
              "diff": -317
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_recharge_order_ex",
            "ods_table": "billiards_ods.recharge_settlements",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 433,
              "ods": 440,
              "diff": -7
            },
            "amounts": []
          },
          {
            "dwd_table": "billiards_dwd.dwd_payment",
            "ods_table": "billiards_ods.payment_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 136,
              "ods": 554,
              "diff": -418
            },
            "amounts": [
              {
                "column": "pay_amount",
                "dwd_sum": 32589.0,
                "ods_sum": 62078.0,
                "diff": -29489.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": true,
            "window_col": "pay_time",
            "count": {
              "dwd": 0,
              "ods": 1,
              "diff": -1
            },
            "amounts": [
              {
                "column": "channel_fee",
                "dwd_sum": 0.0,
                "ods_sum": 0.0,
                "diff": 0.0
              },
              {
                "column": "pay_amount",
                "dwd_sum": 0.0,
                "ods_sum": -34.0,
                "diff": 34.0
              }
            ]
          },
          {
            "dwd_table": "billiards_dwd.dwd_refund_ex",
            "ods_table": "billiards_ods.refund_transactions",
            "windowed": false,
            "window_col": null,
            "count": {
              "dwd": 42,
              "ods": 43,
              "diff": -1
            },
            "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": 462416
      },
      "generated_at": "2026-01-19T08:29:15.504991+08:00"
    }
  ],
  "total_missing": 0,
  "total_errors": 0,
  "generated_at": "2026-01-19T08:29:15.505020+08:00"
}
