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 useget-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 useget-realtime-leave-and-charge-num。 - Forparking space usage → for list data use
parking-place-used; for drawing echart heatmaps useparking-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-analyseMarked as write in the platform contract; when calling,must include--yesconfirmation, 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:
- Determine the target parking lot parkCode:
parkCodefrom the response fields of parking lot domain commands (such asopenydt park/openydt parkinglist/query interfaces), or from the user/upstream system.First obtain parkCode, then fill it into the--park-code。 - 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. - Traffic flow analysis:
- Single-lot minute-level curve:
get-traffic-flow, note that thestartTime/endTimeinterval must not exceed one day (formatyyyy-MM-dd HH:mm)。 - Multi-lot license plate top distribution:
get-car-traffic-flow-analysis. Combine theparkCodeof multiple parking lots into aparkCodeListarray and pass it in.
- Single-lot minute-level curve:
- Bill analysis: first use
get-park-billto view bill summary metrics (select day/month/year by dimension); when itemized details are needed, then useget-bill-summary(dimension supports 3 custom time periods). Both are paginated (pageNum/pageSize, pageSize up to 1000 records). - Parking space and duration analysis (write confirmation, requires
--yes):- Parking space usage:
parking-place-used(list) /parking-place-used-for-echart(heatmap coordinate data),minuteIntervalonly supports 10 or 240. - Parking duration distribution:
parking-time-analyse, split byvipType(1 temporary vehicle / 2 monthly rental vehicle) andhourAreaduration interval (of the form0-1,1-4,4-7,7-10,10-12,12-0). - The time parameters of the above commands use the
yyyyMMddHHmmsscompact format, which is different from theyyyy-MM-ddformat in steps 3/4; be careful to distinguish them.
- Parking space usage:
Key points for field passing:
parkCodein 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 theparkCodeof each parking lot into the--bodyofparkCodeListarray.
📖 Result interpretation:
get-park-bill/get-bill-summaryThe 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>.ndjsonOne-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 实发