Employee Retention

Employee retention teams can use Lightcast data to analyze workforce trends related to compensation, benefits, aging workforce, and employee movement. This helps organizations understand retention risks and make informed decisions to improve employee retention strategies. Below are some common use cases.

Use Cases

Benefits and Bonus Research Over Time

Identify job postings for a specific industry over a defined time period, and then analyze the benefits and bonuses offered in those postings over time.

APIs Used

Python Example

Role Supply and Attrition by Age

Analyze workforce supply for a specific role by age group, and identify the percentage of workers expected to retire in the near future.

APIs Used

Python Example

Market Salary for a Role

Classify a raw job title to the Lightcast Occupational Taxonomy (LOT), and then use that LOT to retrieve market salary data for the role.

APIs Used

Python Example

Compensation by Standard Occupational Classification (SOC) Level

Normalize a raw job title to the Standard Occupational Classification (SOC), and then use that SOC to retrieve national compensation data.

APIs Used

Python Example

Employee Gain and Drain for a Specific Company

Analyze employee movement for a specific company by identifying increases and decreases in employee profiles over time using profile job history data.

Data Share Used

  • Snowflake

SQL Example

SET target = 'Microsoft';

WITH TargetProfiles AS (
    SELECT
        ID
    FROM
        LIGHTCAST.US_PROFILES_PSEUDONYMIZED.PROFILES_JOBS
    WHERE
        COMPANY_NAME = $target
),
TargetedProfiles AS (
    SELECT MAIN.*
    FROM LIGHTCAST.US_PROFILES_PSEUDONYMIZED.PROFILES_JOBS MAIN
    INNER JOIN TargetProfiles ON MAIN.ID = TargetProfiles.ID
    WHERE 
        start_date is not null
        AND company_name != ''
),
gain as (
    SELECT  source, destination, count(ID) as num_occurrences
    FROM 
        (SELECT
            LAG(COMPANY_NAME, 1) OVER (PARTITION BY ID
                ORDER BY
                    start_date)
             AS source,
             COMPANY_NAME as destination,
             ID
        FROM TargetedProfiles
        )
     WHERE destination = $target
     AND source != ''
     AND source is not null
     GROUP BY SOURCE, DESTINATION
     ORDER BY NUM_OCCURRENCES DESC
),
drain as (
    SELECT  source, destination, count(ID) as num_occurrences
    FROM (SELECT
            COMPANY_NAME as source,
            LEAD(COMPANY_NAME, 1) OVER (PARTITION BY ID
                ORDER BY
                    start_date)
             AS destination,
             ID
             FROM TargetedProfiles
        )
     WHERE source = $target
     AND destination != ''
     AND destination is not null
     GROUP BY SOURCE, DESTINATION
     ORDER BY NUM_OCCURRENCES DESC
)
,
gain_drain_union as (
SELECT * 
FROM gain

UNION ALL

SELECT *
FROM drain
)

select 
    distinct 
    source, 
    destination, 
    num_occurrences
from gain_drain_union
ORDER BY num_occurrences DESC;