How ITJTT collects data
ITJTT data collection methodology and metric definitions
Latest verified dataset: 2026-08-18, Asia/Bangkok timezone
Where the data comes from
ITJTT collects publicly discoverable IT job listings from JobsDB and creates daily snapshots. Data on public pages comes from a read-only analytics API and snapshot indexes rather than being counted directly from the model cache.
Update schedule and timezone
The pipeline runs daily, by default at 00:10 in the Asia/Bangkok timezone. The data date (data_date) is the date of the daily snapshot, while last_updated is the time processing was completed. Web pages use time-limited caching and check for new data approximately once per hour, but always display the actual snapshot date and do not describe the data as “real-time.”
Job count definitions
jobs_analyzed- The total number of listing rows the system could analyze, using the greater of the recorded row count and the listing count reported by the data source. It should not be interpreted as the number of unique business jobs.
unique_job_id- The number of unique job IDs from source websites after merging listing rows that reference the same job ID.
unique_business_job- The number of unique business jobs after deduplicating listings that may refer to the same position. This is the default metric on public pages for roles, companies, skills, and trends.
Normalization and deduplication
The system maps role names, requirements, programming languages, and company names to canonical names so aggregated results can be compared. It then distinguishes listing rows, source job IDs, and unique business jobs. A single job may have multiple roles and skills, so category totals may exceed the number of jobs.
Shares and 30-day rolling averages
- Job share by role
- The number of unique business jobs classified under a canonical role divided by the total number of unique business jobs in the same daily snapshot. A job may have multiple roles, so total shares may exceed 100%.
- Share of jobs mentioning the skill
- The number of unique business jobs mentioning the programming language or technology divided by the total number of unique business jobs in the same snapshot. A job may have multiple skills.
- 30-day weighted rolling average share
- The sum of an item's job counts across daily snapshots in a 30-day period divided by the sum of unique business job counts for those same days. This metric is shown when at least 21 valid snapshots are available.
- Change in percentage points (pp)
- The difference between the weighted average shares of the latest 30-day period and the preceding non-overlapping 30-day period, not a relative percentage change.
Dates without a snapshot are treated as missing data, not zero. An item absent from a valid snapshot may therefore be counted as zero. Calculations use dataset dates in the Asia/Bangkok timezone and values are rounded only for display.
Limitations and data quality
- The data consists of observations from listings collected by ITJTT, not a complete census of Thailand's job market.
- Coverage varies with source websites, URL discovery, page accessibility, and crawler run times.
- Standardizing role, skill, and company names may introduce errors.
- 30-day values describe short-term changes within ITJTT data and are not conclusions about long-term trends.
- Company pages do not confirm that listings are still open and do not imply employer endorsement.
Concise English summary
ITJTT aggregates daily observations from publicly discoverable IT job postings in Thailand. Public pages default to deduplicated unique business jobs. Counts are observations within ITJTT coverage, not a complete census of Thailand's job market. Dates use the Asia/Bangkok timezone.