SuperAPI AI Directory

openydt-data

Data & analytics

View repository

Updated 10-16 06:47

About this skill

openydt-data — Data analysis domain (data)

CRITICAL: Before starting, MUST first use the Read tool to read ../openydt-shared/SKILL.md(authentication / profile / signature / status codes / rate limiting / security rules). Do not execute any commands without reading the shared foundation.

When to use this skill

Use this skill when the user needs to performread-only data analysis and report statisticson a parking lot, for example: query a parking lot's payment bills / bill summaries, view traffic flow and license plate top distribution, read a parking lot's real-time on-site data, count the day's departure count and transaction count, view traffic flow curves by minute, analyze parking space usage (including echart heatmaps), and perform parking duration distribution analysis.

Intent routing:

  • Forbills/payment details → get-bill-summary; forbill summary metrics → get-park-bill。
  • fortraffic flow curve/trend → use for the entire segment per minute get-traffic-flow; for license plate top distribution use get-car-traffic-flow-analysis。
  • Forreal-time/same-daydata → for real-time on-site use get-real-time-park-info; for the day's departures and transaction counts use get-realtime-leave-and-charge-num。
  • Forparking space usage → for list data use parking-place-used; for drawing echart heatmaps use parking-place-used-for-echart。
  • Forparking duration distribution → parking-time-analyse。
  • To initiate payments or query parking lot configuration, please use [[openydt-billing]] (trade payment) or [[openydt-park]] (parking lot information) instead.
  • For single-vehicle details/on-site vehicles/entry and exit records, please use [[openydt-record]] (parking records/on-site) instead.
  • For monthly passes/coupons/devices/blacklists and whitelists/visitors, etc., please use [[openydt-monthticket]] / [[openydt-coupon]] / [[openydt-device]] / [[openydt-list]] instead.

Available commands

Chinese name Command Read/Write Key parameters
Get payment bill information for a parking lot openydt data get-bill-summary Read parkCode, dimension(0 day/1 month/2 year/3 custom), startTime, endTime, pageNum, pageSize
Get traffic flow license plate top distribution openydt data get-car-traffic-flow-analysis Read parkCodeList (parking lot code list JSONArray)
Query bill summary information for a parking lot openydt data get-park-bill Read parkCode, dimension(0 day/1 month/2 year), startTime, endTime, pageNum, pageSize
Get real-time parking lot data openydt data get-real-time-park-info Read parkCode
Get the parking lot's departure count and transaction count for the day openydt data get-realtime-leave-and-charge-num Read parkCode
Get the per-minute traffic flow for a single parking lot openydt data get-traffic-flow Read parkCode, startTime, endTime (interval ≤ 1 day, format yyyy-MM-dd HH:mm)
Get parking space usage data openydt data parking-place-used Write (requires --yes) parkCode, startDate, endDate (yyyyMMddHHmmss), minuteInterval (10 or 240)
Get parking space usage data (ECharts heatmap) openydt data parking-place-used-for-echart write (requires --yes) parkCode, startDate, endDate(yyyyMMddHHmmss), minuteInterval(10 or 240)
Get parking lot parking duration analysis data openydt data parking-time-analyse write (requires --yes) parkCode, startDate, endDate(yyyyMMddHHmmss), vipType(1 temporary vehicle/2 monthly rental vehicle), hourArea

Note:parking-place-used、parking-place-used-for-echart、parking-time-analyse Marked as write in the platform contract; when calling,must include --yes confirmation, otherwise it will be intercepted by write operation confirmation. All other commands are read-only and do not require --yes。

Business process

The data analysis domain consists entirely ofread-only/statistical queries at the parking lot dimension, and the core input parameter is parkCode(parking lot number/code). A typical analysis chain is as follows, emphasizingusing fields from the responses of preceding commands as the input parameters of subsequent commands:

  1. Determine the target parking lot parkCode:parkCode from the response fields of parking lot domain commands (such as openydt park/openydt parking list/query interfaces), or from the user/upstream system.First obtain parkCode, then fill it into the --park-code。
  2. Quick health check (real-time view): use get-real-time-park-info(real-time presence/parking spaces) + get-realtime-leave-and-charge-num(number of departures and transactions for the day) to get an overview of the day and confirm that the parking lot has data and the number is correct.
  3. Traffic flow analysis:
    • Single-lot minute-level curve:get-traffic-flow, note that the startTime/endTime interval must not exceed one day (format yyyy-MM-dd HH:mm)。
    • Multi-lot license plate top distribution:get-car-traffic-flow-analysis. Combine the parkCode of multiple parking lots into a parkCodeList array and pass it in.
  4. Bill analysis: first use get-park-bill to view bill summary metrics (select day/month/year by dimension); when itemized details are needed, then use get-bill-summary(dimension supports 3 custom time periods). Both are paginated (pageNum/pageSize, pageSize up to 1000 records).
  5. Parking space and duration analysis (write confirmation, requires --yes):
    • Parking space usage:parking-place-used(list) / parking-place-used-for-echart(heatmap coordinate data),minuteInterval only supports 10 or 240.
    • Parking duration distribution:parking-time-analyse, split by vipType(1 temporary vehicle / 2 monthly rental vehicle) and hourArea duration interval (of the form 0-1,1-4,4-7,7-10,10-12,12-0).
    • The time parameters of the above commands use the yyyyMMddHHmmss compact format, which is different from the yyyy-MM-dd format in steps 3/4; be careful to distinguish them.

Key points for field passing: parkCode in the upstream parking lot domain response → --park-codefor all commands in this domain; when paginated queries require the full dataset, use --all-pages --out <file>.ndjson; for multi-lot analysis, collect the parkCode of each parking lot into the --body of parkCodeList array.

📖 Result interpretation:get-park-bill/get-bill-summary The amount field returned by is in yuan;Most statistical interfaces in the test environment returning nodata is normal and does not mean the parking lot has no data(switch to prod or confirm that the time window has business activity). For three-layer interpretation/empty results, see references/result-reading-sop.md in [[openydt-shared]].

Hard rules for data analysis

  • When paginated details such as bills are needed, use --all-pages --out <file>.ndjson One-time export; details for the same parking lot, interface, and time window are fetched only once, and subsequent metrics reuse the local file.
  • For calculations involving duration, quantiles, median, distribution, cross-table joins, deduplication, monetary scenario simulation, etc., code must be written and actually run; mental arithmetic in natural language must not be relied upon.
  • At minimum, retain the computation artifacts: script, input file or file hash, input row count, filtered/exception row count, valid row count, and key metric validation results, to facilitate reruns and audits.

Error Self-Healing Quick Reference (Statistics)

Symptom Meaning Recovery Action
get-traffic-flow Error/empty startTime/endTime interval >1 day or format is not yyyy-MM-dd HH:mm Narrow to ≤1 day, correct the format
parking-place-used* Error minuteInterval Not 10/240 Change to 10 or 240
Returns nodata Normal in test environment / no business in the time window Change the time window or verify in prod; this is not an interface failure

For common codes/exit codes/retries see [[openydt-shared]]; amount unit = yuan, 0 rows ≠ none, see its references/result-reading-sop.md.

Example

The example parkCode/time are documented test values (test only); copying the catalog's historical sampleBody will hit an invalid parking lot/expired time window.

# 1) 查询某车场账单汇总(按年维度,只读,无需 --yes)
openydt data get-park-bill \
  --park-code 1ZS7H5PQH9 --dimension 2 \
  --start-time "2026-06-01 00:00:00" --end-time "2026-06-01 23:59:59" \
  --page-num 1 --page-size 10

# 2) 获取车流量车牌 top 分布(多场,用 --body 传 parkCodeList 数组,只读)
openydt data get-car-traffic-flow-analysis \
  --body '{"parkCodeList":["1ZS7H5PQH9","PTD2YBBZ"]}'

# 3) 获取车场停车时长分析数据(write 操作,先 --dry-run 预览再 --yes)
openydt data parking-time-analyse \
  --park-code PTD2YBBZ \
  --start-date 20260601000000 --end-date 20260601235959 \
  --vip-type 1 --hour-area "0-1,1-4,4-7,7-10,10-12,12-0" \
  --dry-run
# 确认无误后去掉 --dry-run 加 --yes 实发