Content last updated 2026-04-01

ピープルデータ分析のためのデータガイド

このページの目的

このハンドブックページでは、People Analytics チームが使用するデータの定義およびデータモデルの概要を示します。用語、計算式、ピープルデータを利用したモデルについて明確にしたいときに、このページを参照してください。質問がある場合は、遠慮なくチームメンバーに連絡してサポートを受けてください。

出発点として役立つ場所

  • DBT Docs - このリソースには利用可能なすべての dbt モデルに関する包括的なドキュメントが含まれています。私たちのモデルを理解する良い出発点です。People 固有のモデルについては、以下の よく使われるデータモデル セクションを起点として参照してください。
  • Data チームが管理するデータ主題領域の決定版ガイド
  • 技術的に好奇心旺盛なアナリスト向けのデータパイプラインのドキュメント。このページでは各データソースと抽出の詳細について説明しています。
  • People Group Tech Stack Guide - 私たちの HR システムへの/からのすべての統合と、私たちが使用するすべてのツールの概要。

People Group データディクショナリ

雇用データ

採用後の GitLab における労働者および雇用に関するデータ

クリックして展開
名称説明計算式機密性
Team Member過去のいずれかの時点で GitLab に勤務した人物で、当社の人事管理システム(HRMS)のいずれかに従業員 ID を持ち、かつ一時雇用(contingent)労働者やインターンではない者
Employee IDチームメンバーの GitLab での雇用を追跡するために、採用時に HRMS で割り当てられる固有 IDはい
Hire Dateチームメンバーとしての GitLab での雇用初日
Termination Dateチームメンバーとして GitLab に雇用されなくなった初日HRMS の termination effective date + 1 日はい(未来日付の場合)
Employee Typeチームメンバーの主たるポジションの雇用形態。レポーティングでは通常「Consultants」と「Interns」を除外します
Company / Entityチームメンバーを雇用または契約するために使用される、ロケーション固有の会社。これらは法人(Entity)または Professional Employer Organization(PEO)の形を取ることがあります
Termination Type退職ビジネスプロセスに関連付けられたビジネスプロセス理由カテゴリ。Voluntary(自発的)または Involuntary(非自発的)のいずれかですはい
Exit Impact退職トランザクションで regrettable termination として指定されている場合、その労働者は “regrettable” termination とみなされます。それ以外の場合は “non-regrettable” termination とみなされますはい
Headcount特定の日に GitLab で雇用されているチームメンバー数
Available Headcount特定の日に GitLab で雇用されているチームメンバーのうち、その日に欠勤の記録がない人数
Begin Headcount平均ヘッドカウントの計算に使用。日付範囲内の各期間の開始時点でアクティブなチームメンバー数。通常は月初の日です。
End Headcount平均ヘッドカウントの計算に使用。日付範囲内の各期間の終了時点でアクティブなチームメンバー数。通常は月末の日です。
Average Headcount指定された日付範囲におけるチームメンバーの平均数。これはビジネス領域横断で比率を標準化するために使用します。(期間内の Begin Counts の合計 / 観察された期間数 + 期間内の End Counts の合計 / 観察された期間数)/ 2
Net Growth選択された期間内の採用数と退職数の差のみに基づく成長を示すメトリック期間内の採用数 - 期間内の退職数
Turnover / Attrition特定の期間に組織を離れたチームメンバーの割合。通常は直近 12 か月のローリングベースで計測退職数 / 平均ヘッドカウントはい、社内限定
Retention一定期間に組織にとどまったチームメンバーの割合。1 - Turnoverはい、社内限定
Voluntary TurnoverVoluntary 退職タイプに該当する離職率の部分Voluntary 退職数 / 平均ヘッドカウントはい、社内限定
Involuntary TurnoverInvoluntary 退職タイプに該当する離職率の部分Involuntary 退職数 / 平均ヘッドカウントはい、社内限定
Regrettable Turnoverregrettable termination に該当する離職率の部分Regrettable Terminations 数 / 平均ヘッドカウントはい、社内限定
Non-Regrettable Turnovernon-regrettable termination に該当する離職率の部分Non-Regrettable Terminations 数 / 平均ヘッドカウントはい、社内限定

Diversity, Inclusion, and Belonging(DIB)

労働者の属性(demographics)と、彼ら自身がどう識別するかに関するデータ

クリックして展開
名称説明計算式機密性
Underrepresented Group (URG)過小代表グループ(URG)には多くの種類がありますが、レポーティングでは URG は民族性に基づき、White、Asian、または Did Not Identify ではない民族性を URG とみなします。このメトリックは現在、国別ではなくグローバルで測定されています。はい
Non-URGレポーティングでは、Non-URG は White または Asian の民族性とみなされますはい
Genderレポーティングで使用される労働者の性別。現在は Male、Female、または unidentified のいずれかとしてマークできますはい
Gender Identity個人の性自認。例: transgender、cisgender、genderfluid、genderqueer、non-binaryはい

ポジション

チームメンバーが GitLab で就いているポジションに関する情報

クリックして展開
名称説明計算式機密性
Management Levelジョブプロファイルのマネジメントレベル。
Leadershipdirector 以上のマネジメントレベルのグループ化(Director、Vice President、Leader、Chief Executive Officer)
Managementmanager 以上のマネジメントレベルのグループ化(Manager、Director、Vice President、Leader、Chief Executive Officer)
Job Levelジョブプロファイルのジョブレベル。はい
People ManagersWorkday で direct reports(直属の部下)が割り当てられているチームメンバー
Layersチームメンバーと CEO の間のレイヤー数。レイヤー 1 が CEO
Direct Reportsピープルマネージャーに報告するチームメンバーのグループ
Span of Controlピープルマネージャーに割り当てられている direct reports の数
Average Span of Controlピープルマネージャーに平均で割り当てられている direct reports の数Direct Reports の数 / People Managers の数
Manager Ratioチームメンバーのうち people managers である割合People Managers の数 / 総チームメンバー数
Range of Span特定の日付時点での span of control の最小値と最大値
Compa-RatioCompa-ratio は、チームメンバーの給与を社内または対象市場の類似ポジションの中央値報酬と比較する指標です。チームメンバーの給与を市場レートの報酬中央値で割るはい
Discretionary Bonus会社のマネジメントの裁量で授与される追加のボーナス額。標準のボーナスプランとは別で、特定のパフォーマンスメトリクスには基づきません。Discretionary Bonus は会社が突出したチームメンバーを報酬する柔軟性を提供します。
Discretionary Bonus Rate母集団のうち discretionary bonus を受け取ったチームメンバーの割合。KPI ではローリング 3 か月平均として報告されます。Discretionary Bonuses の数 / 平均ヘッドカウント
PromotionHRMS で送信されたビジネスプロセスタイプが “Promote Employee Inbound” の場合、昇進としてカウントされます
Lateral TransferHRMS で送信されたビジネスプロセスカテゴリが “Lateral Move” で、職務名(job title)に変更があった場合、lateral move としてカウントされます
Internal Mobility RateInternal Mobility Rate は、組織内でチームメンバーがポジションを変更する頻度を示し、社員が利用可能な内部の異動とキャリア進展の機会、また成長のパスを提供することで人材を維持する会社の能力を示します。Lateral Transfers と Promotions の数 / 平均ヘッドカウント

有給休暇および欠勤

有給休暇(PTO)および欠勤に関する情報

クリックして展開
名称説明計算式機密性
Paid Time Off (PTO)Absence Management System で申請・承認された休暇のうち、週末ではなく、1 回の申請で 25 日を超えず、Extended Leave、CEO Shadow Program、Conference などの PTO タイプを除いたもの。
Average PTO Days期間中の PTO 日数の平均。この計算は、レポート期間中の全日を勤務していないチームメンバーを考慮し、全チームメンバーの PTO 利用を正規化します。(使用された PTO 日数 / 勤務日数)* 期間内の日数
Full-Cycle Tenure Groupレポート期間中の全日を勤務したチームメンバーで、正規化された PTO が実際に使用された PTO と一致するもの
In/Out Tenure Groupレポート期間中の全日を勤務していないチームメンバーで、正規化された PTO は当該期間の実際の使用に基づき期間全体に対して使用された日数を反映するもの

採用とオンボーディング

Talent Acquisition が使用するオンボーディングプロセスおよび採用メトリクスに関するデータ

クリックして展開
名称説明計算式機密性
Onboarding Satisfaction (OSAT) ScoreCulture Amp の Week One オンボーディングアンケートのすべての設問について 1-5 スケールで採った平均評価。通常はローリング 3 か月平均として算出。(Month 1 オンボーディング応答の平均 + Month 2 オンボーディング応答の平均 + Month 3 オンボーディング応答の平均)/ 3
StartsGitLab からのオファーを承諾し、HRMS で開始日がスケジュールされている外部応募者
External Applicantsソースが “Internal Applicant” ではない応募者。応募提出時点で GitLab を通じて雇用されていない
Internal Applicantsソースが “Internal Applicant” の応募者。応募提出時点で GitLab を通じて雇用されている
Time to Hire / Candidate Throughput応募提出日と、受諾されたオファーがある場合に応募が “Hire” ステージに移動した日の間の日数。
Verbal Accepted Offer %Offer ステージに移動し承諾された応募 / Offer ステージに移動し決着した応募数Offer Stage に移動して Offers を受諾した応募数 / Offer Stage に移動して受諾または拒否された応募数
Written Offer Accept %日付範囲内に決着したオファー。受諾されたオファー数 / 決着したオファー数。オファーを受諾した応募数 / オファーを受諾または拒否した応募数
Internal Mobility Rate %日付範囲内に決着したオファー。内部応募者からの受諾オファー数 / 受諾オファー数オファーを受諾した内部応募数 / オファーを受諾した応募数
Source Rate日付範囲内に提出された応募のうち、sourced(Sourcing Strategy が “Prospecting” で Source が “SocialReferral” ではない)であり、候補者が(候補者タグに基づき)多様なソースから来たものの割合。sourced 応募全体に対する割合。多様な候補者タグ付きで提出された Sourced Applications 数 / Sourced Applications 数
Source Mix日付範囲内に決着日を持つ外部ソーシング戦略(内部応募者または買収を除く)による受諾オファーの割合特定の Sourcing Strategy で Accepted Offers を持つ外部応募数 / Accepted Offers を持つ外部応募数
Conversion Rate日付範囲内に提出された応募数と、それらが進んだ採用プロセスの各ステージ。前ステップから次ステップへ進んだ応募の割合を示す(例:Initial Interview に 10 件あり Team Interview フェーズに 2 件進んだ場合、Initial Interview のコンバージョン率は 20%)。第二ステージの応募数 / 第一ステージの応募数
Pending Offers送信済みだが受諾も拒否もされていないオファー
Time to Fill指定された日付範囲内にクローズし、採用された応募を持つ Openings の、open 日とクローズ日の間の日数
Time to Start採用された応募について、Opening の open 日と予定開始日の間の日数
Requisition Aging日付範囲内のいずれかの時点で open だった Openings の平均日数。この計算ではレポート期間中の全日について open 日数を平均します。

システム

People Group が使用するシステム

クリックして展開
名称説明計算式機密性
R (Language)統計分析、グラフィカル表現、レポート作成に使用されるプログラミング言語およびソフトウェア環境。データ分析や科学研究で人気。
TableauGitLab における主要なデータ可視化ツール
Workday現在の人事管理システム(HRMS)。2022-06-16 以降のすべてのチームメンバー関連データの SSoT、および 2024-09-01 以降のすべての Absence データの SSoT。
GreenhouseGitLab における現在の応募者追跡システム(ATS)であり、すべての採用メトリクスの SSOT
Time Off by DeelWorkday と統合された GitLab における現在の欠勤管理サポートツール。Absence の SSoT は Workday です。
Sisense (旧 Periscope)GitLab における旧データ可視化ツール
FiveTranFivetran は、Workday からデータを取り出し Snowflake に移動する自動データ移動プラットフォーム
SnowFlakeSnowflake は私たちのエンタープライズデータウェアハウス(EDW)であり、エンタープライズデータプラットフォームのコア技術です。
Level Up / GitLab University継続教育とキャリア開発のために Thought Industries が作成したトレーニングプラットフォーム

データモデル

Data チームは People Analytics チームと協力して、さまざまなピープルデータソースを探索できるデータマートを構築しています。

  • “mart” モデルは、簡単に分析できるように結合された dimensions と facts の組み合わせです。
  • “rpt”(“report”)モデルは特定のユースケースのための特定のビジネスロジックで構築されます。

各モデルの下には、分析にも使用できるクリーンな dimensions と facts の系譜があります。このリストには、ピープル分析のために作成されたすべての prep テーブル、dimensions、facts、および Team Member Common ERD に基づいて今後の四半期で構築予定のものが含まれます。

Prep、dimension、fact テーブル

モデル名テーブル種別粒度ソース状態ドキュメント
prep_team_memberStagingTeam Member ID × イベントごとに 1 行Workday完了DBT docs
dim_teamDimensionTeam ID × イベントごとに 1 行Workday完了DBT docs
dim_team_memberDimensionTeam Member ID × イベントごとに 1 行Workday完了DBT docs
fct_team_member_positionFactemployee_id、team_id、effective_date、date_time_initiated の組み合わせごとに 1 行Workday完了DBT docs
fct_team_member_statusFactemployee_id、employment_status、status_effective_date の組み合わせごとに 1 行Workday完了DBT docs
fct_team_statusFactemployee_id、valid_from の組み合わせごとに 1 行Workday完了DBT docs
fct_team_member_absenceFactTeam Member ID、pto_uuid、absence_date の組み合わせごとに 1 行Time Off By Deel完了DBT docs
fct_team_member_historyFactTeam Member ID と hired date ごとに 1 行Workday完了DBT docs
fct_team_member_job_historyFactTeam Member ID と job_profile_workday_id ごとに 1 行Workday完了DBT docs
fct_team_member_localityFactWorkday計画中DBT docs
fct_team_demographicFactWorkday計画中DBT docs

Marts

モデル名テーブル種別粒度状態ドキュメント
mart_team_member_directoryMartemployee ID ごとに 1 行完了DBT docs
mart_team_member_absenceMartTeam Member ID、pto_uuid、absence_date の組み合わせごとに 1 行完了DBT docs

モデルの利用

dim_team_member

このテーブルには、チームメンバーの業務情報と個人情報が含まれます。機密性のあるカラムは動的マスキングでマスクされ、Snowflake で analyst_people ロールが割り当てられているチームメンバーにのみ表示されます。このテーブルはハイブリッド SCD(Type 1 + Type 2)です。

このテーブルには、現在のチームメンバー、開始日前に Workday でレコードが作成された新規採用者、2021 年以降に退職したチームメンバーに関する情報が含まれます。2021 年以前に退職したチームメンバーは現時点ではこのモデルには取り込まれていません。このテーブルの粒度は、employee_id × valid_to/valid_from の組み合わせごとに 1 行です。

クエリ - リージョン別のチームメンバー数
SELECT
  region,
  COUNT(DISTINCT employee_id)
FROM
  PROD.COMMON.DIM_TEAM_MEMBER
WHERE
  is_current = TRUE AND is_current_team_member = TRUE
GROUP BY
  region
クエリ - 現在のチームメンバー総数
SELECT
  COUNT(DISTINCT employee_id)
FROM
  PROD.COMMON.DIM_TEAM_MEMBER
WHERE
  is_current = TRUE AND is_current_team_member = TRUE
クエリ - チームメンバー集団におけるキータレントの割合

key_talent_status はマスクされたフィールドで、Snowflake で analyst_people ロールを持つチームメンバーのみクエリできます

SELECT
  key_talent_status,
  COUNT(*) * 100 / SUM(COUNT(*)) OVER() AS key_talent_percentage
FROM
  PROD.COMMON.DIM_TEAM_MEMBER
WHERE
  is_current = TRUE AND is_current_team_member = TRUE
GROUP BY 1

dim_team

dim_team には team(組織)情報が含まれます。各チームとその階層に関する情報が含まれます。これは Type 2 SCD です。

このテーブルの目的は、Workday の各組織の上位組織と階層を判定することです。さらに、このテーブルでは team name、manager、team member count、各組織の非アクティブ化日付などのチームデータも提供します。

このテーブルの粒度は、Team ID × イベントごとに 1 行です。

クエリ - アクティブな組織の総数
SELECT
  COUNT(*)
FROM
  PREP.SENSITIVE.DIM_TEAM
WHERE
  is_current = TRUE AND is_team_active = TRUE
クエリ - 現在のチームメンバー数
SELECT
  SUM(team_members_count)
FROM
  PREP.SENSITIVE.DIM_TEAM
WHERE
  is_current = TRUE AND is_team_active = TRUE

fct_team_member_position

fct_team_member_position には、チームメンバーの職務履歴(ジョブプロファイルやチームの変更を含む)が含まれます。チームメンバーのジョブプロファイルの履歴を詳細に提供します。このテーブルの粒度は、employee_id、team_id、effective_date、date_time_initiated の組み合わせごとに 1 行です。現在の雇用状態に関わらず、すべてのチームメンバーが含まれます。

クエリ - エンティティごとのチームメンバー数

Entity はマスクされたフィールドで、Snowflake で analyst_people ロールを持つチームメンバーのみクエリできます

SELECT
  entity,
  COUNT(*)
FROM
  PROD.COMMON.FCT_TEAM_MEMBER_POSITION
WHERE
  is_current = true
GROUP BY 1
クエリ - ポジション/ロール別のチームメンバー数
SELECT
  position,
  COUNT(*)
FROM
  PROD.COMMON.FCT_TEAM_MEMBER_POSITION
WHERE
  is_position_active
    AND is_current
GROUP BY 1
クエリ - 特定のジョブ専門分野を持つチームメンバー数
SELECT
  COUNT(*)
FROM
  PROD.COMMON.FCT_TEAM_MEMBER_POSITION
WHERE
  (job_specialty_single LIKE '%ModelOps%' OR job_specialty_multi LIKE '%ModelOps%')
    AND is_current;
クエリ - フランスのバックエンドエンジニアであるチームメンバー

Entity はマスクされたフィールドで、Snowflake で analyst_people ロールを持つチームメンバーのみクエリできます

SELECT
  *
FROM
  PROD.COMMON.FCT_TEAM_MEMBER_POSITION
WHERE
  position LIKE '%Backend Engineer%'
    AND entity = 'GitLab France S.A.S.'
     AND is_current

fct_team_member_status

このテーブルには、退職理由、タイプ、exit impact、雇用状態が含まれます。機密性のあるカラムはマスクされ、Snowflake で analyst_people ロールが割り当てられているチームメンバーにのみ表示されます。このテーブルには過去の退職のみが含まれます。

このテーブルの粒度は、employee_id、employment_status、status_effective_date の組み合わせごとに 1 行です。

退職が会社に影響を与えたチームメンバー数

Exit impact はマスクされたフィールドで、Snowflake で analyst_people ロールを持つチームメンバーのみクエリできます

SELECT
  COUNT(*)
FROM
  PROD.COMMON.fct_team_member_status
WHERE
  exit_impact = 'Yes';
自発的に退職したチームメンバー数

Termination type はマスクされたフィールドで、Snowflake で analyst_people ロールを持つチームメンバーのみクエリできます

SELECT
  COUNT(*)
FROM
  PROD.COMMON.fct_team_member_status
WHERE
  termination_type = 'Resignation (Voluntary)';
自発的に退職し、exit impact を引き起こしたチームメンバーが提供した退職理由

Termination type、termination reason、exit impact はマスクされたフィールドで、Snowflake で analyst_people ロールを持つチームメンバーのみクエリできます

SELECT
  DISTINCT termination_reason
FROM
  PROD.COMMON.fct_team_member_status
WHERE
  termination_type = 'Resignation (Voluntary)'
    AND exit_impact = 'Yes';

fct_team_status

このテーブルは fct_team_member_statusfct_team_member_position から派生した fact です。機密性のあるカラムはマスクされ、Snowflake で analyst_people ロールが割り当てられているチームメンバーにのみ表示されます。このテーブルは、fct_team_member_position テーブル(チームメンバーのポジションプロファイルへのすべての変更が、有効になったかどうかに関わらず含まれる)とは対照的に、effective date ごとにチームメンバーのポジションの変更を 1 つだけ含みます。このテーブルには将来の採用者は含まれず、今日時点で GitLab で勤務している人だけが含まれます。

クエリ - フランスのバックエンドエンジニアであるアクティブなチームメンバー

Entity はマスクされたフィールドで、Snowflake で analyst_people ロールを持つチームメンバーのみクエリできます

SELECT
  *
FROM
  PROD.COMMON.fct_team_status
WHERE
  position LIKE '%Backend Engineer%'
    AND entity = 'GitLab France S.A.S.'
      AND employment_status = 'Active'
        AND is_current
クエリ - チームごとの自発的な辞職数

Termination type と termination reason はマスクされたフィールドで、Snowflake で analyst_people ロールを持つチームメンバーのみクエリできます

SELECT
  team_id,
  COUNT(*)
FROM
  PROD.COMMON.fct_team_status
WHERE
    employment_status = 'Terminated'
       AND termination_type = 'Resignation (Voluntary)'
           AND is_current
GROUP BY 1;
クエリ - マネジメントレベル別の辞職数(voluntary 対 involuntary)

Termination type と termination reason はマスクされたフィールドで、Snowflake で analyst_people ロールを持つチームメンバーのみクエリできます

SELECT
  management_level, COUNT(*)
FROM
  PROD.COMMON.fct_team_status
WHERE
    employment_status = 'Terminated'
       AND termination_type = 'Resignation (Voluntary)'
          AND management_level != 'Individual Contributor'
           AND is_current
GROUP BY 1;

fct_team_member_history

このテーブルには、採用日や組織を離れた日などのチームメンバーの雇用履歴の詳細が含まれます。このテーブルは Type 2 SCD) です。

このテーブルの粒度は、team member IDhired date の組み合わせごとに 1 行です。

クエリ - 在籍期間情報付きのチーム名簿

現在のすべてのチームメンバーをその在籍期間とともに表示し、マネージャーがチーム構成を理解し長期勤続者を認識するのに役立ちます。

SELECT 
    t.employee_id,
    e.full_name,
    e.position,
    e.team_manager_name,
    t.hire_date,
    DATEDIFF('month', t.hire_date, CURRENT_DATE()) AS tenure_months,
    ROUND(DATEDIFF('year', t.hire_date, CURRENT_DATE()), 1) AS tenure_years
FROM "PROD".common.fct_team_member_history t
JOIN PROD.COMMON_MART_PEOPLE.MART_TEAM_MEMBER_DIRECTORY e 
    ON t.employee_id = e.employee_id AND is_current= TRUE -- Team member's current information
WHERE e.team_manager_name = 'MANAGER_FULL_NAME'           -- Replace with preferred full name of the people manager
  AND t.term_date IS NULL                                 -- Only current team members
ORDER BY tenure_years DESC

fct_team_member_job_history

このテーブルには、チームメンバーの職務履歴が含まれます。job_grade などの機密性のあるカラムは動的マスキングでマスクされ、Snowflake で analyst_people ロールが割り当てられているチームメンバーにのみ表示されます。このテーブルはハイブリッド SCD(Type 0 + Type 2)です。

このテーブルには Workday からの情報が含まれます。このテーブルの粒度は、team member IDworkday job profile id の組み合わせごとに 1 行です。

クエリ - キャリア進展パス分析(最も一般的なジョブ遷移)
WITH job_sequences AS (
    SELECT
        dim_team_member_sk,
        job_title AS current_job,
        LEAD(job_title) OVER(PARTITION BY dim_team_member_sk ORDER BY job_start_date) AS next_job
    FROM "PROD".COMMON.fct_team_member_job_history
)
SELECT
    current_job,
    next_job,
    COUNT(*) AS transition_count
FROM job_sequences
WHERE next_job IS NOT NULL
AND NOT current_job = next_job
GROUP BY current_job, next_job
ORDER BY transition_count DESC;
クエリ - ジョブファミリー別のチームメンバーリテンション
WITH retention_by_job_family AS (
SELECT
    job_family,
    COUNT(DISTINCT dim_team_member_sk) AS total_team_members,
    COUNT(DISTINCT CASE WHEN is_active_team_member = TRUE THEN dim_team_member_sk END) AS active_team_members,
    ROUND((COUNT(DISTINCT CASE WHEN is_active_team_member = TRUE THEN dim_team_member_sk END) / COUNT(DISTINCT dim_team_member_sk)::FLOAT) * 100) AS retention_rate
FROM "PROD".common.fct_team_member_job_history
GROUP BY job_family
ORDER BY retention_rate DESC
)
SELECT * 
FROM retention_by_job_family
WHERE NOT active_team_members = 0 --Excluded deprecated job families

fct_team_member_absence

このテーブルにはチームメンバーの欠勤情報が含まれます。機密性のあるカラムは動的マスキングでマスクされ、Snowflake で analyst_people ロールが割り当てられているチームメンバーにのみ表示されます。このテーブルは Type 0 SCD です。

このテーブルには Time Off By Deel からの情報が含まれます。このテーブルの粒度は、team member ID × pto_uuid × absence_date の組み合わせごとに 1 行です。

mart_team_member_absence

このテーブルは fct_team_member_absencedim_team_member から派生した mart です。機密性のあるカラムはマスクされ、Snowflake で analyst_people ロールが割り当てられているチームメンバーにのみ表示されます。このテーブルはワークスペーステーブル wk_pto の置き換えとなります。このテーブルはハイブリッド SCD(Type 0 + Type 2)です。

このテーブルの粒度は、team member ID × pto_uuid × absence_date の組み合わせごとに 1 行です。

クエリ - 2024 年の四半期ごとのあるチームメンバーの欠勤日数
WITH final AS (
  SELECT
    *,
    DATEDIFF(DAY, absence_start, absence_end) + 1 AS pto_days_requested,
    ROW_NUMBER() OVER (
      PARTITION BY
        employee_id,
        absence_date
      ORDER BY
        absence_end DESC,
        pto_uuid DESC
    )                                             AS pto_rank
  FROM prod.common_mart_people.mart_team_member_absence
  WHERE absence_date <= CURRENT_DATE
    AND pto_days_requested <= 25
    AND COALESCE(pto_group_type, '') != 'EXL'
    AND NOT COALESCE(absence_status, '') IN ('CEO Shadow Program', 'Conference', 'Customer Visit')
  QUALIFY pto_rank = 1
)

SELECT
  QUARTER(absence_date) AS quarter,
  absence_status,
  COUNT(absence_date)   AS absence_count
FROM final
WHERE full_name = 'John Doe'
  AND YEAR(absence_date) = 2024
GROUP BY QUARTER(absence_date), absence_status
ORDER BY quarter ASC, absence_count DESC;

mart_team_member_directory

このテーブルは fct_team_member_positiondim_team から派生した fact です。機密性のあるカラムはマスクされ、Snowflake で analyst_people ロールが割り当てられているチームメンバーにのみ表示されます。このテーブルは、すべての Workday データが上流テーブルに含まれるようになった時点でレガシーテーブル employee_directory_* の置き換えとなります。

このテーブルの粒度は、チームメンバー × valid_from/valid_to の組み合わせごとに 1 行です。

部門別の平均ロケーション係数
SELECT
    directory.division,
    DATE_TRUNC('month', dates.date_actual) AS month,
    ROUND(AVG(location_factors.location_factor),2) AS average_location_factor
  FROM PROD.COMMON_MART_PEOPLE.MART_TEAM_MEMBER_DIRECTORY AS directory
  INNER JOIN PROD.LEGACY.DATE_DETAILS AS dates
    ON dates.date_actual >= directory.valid_from
        AND dates.date_actual < directory.valid_to
  LEFT JOIN PREP.SENSITIVE.EMPLOYEE_LOCATION_FACTOR_SNAPSHOTS AS location_factors
    ON REPLACE(location_factors.bamboo_employee_number,',','') = directory.employee_id
        AND NOT (directory.valid_to <= location_factors.valid_from
          OR directory.valid_from >= location_factors.valid_to)
  WHERE location_factors.location_factor IS NOT NULL
      AND directory.is_current AND directory.is_current_team_member
  GROUP BY 1, 2
チームメンバーごとの在籍期間バケット
SELECT
  employee_id,
  hire_date,
  DATEDIFF(day, hire_date, CURRENT_DATE())           AS tenure_in_days,
  CASE WHEN tenure_in_days BETWEEN 0 AND 183 THEN '0 - 6 Months'
       WHEN tenure_in_days BETWEEN 184 AND 365 THEN '6 - 12 Months'
       WHEN tenure_in_days BETWEEN 366 AND 1095 THEN '1 - 3 Years'
       WHEN tenure_in_days BETWEEN 1096 AND 2190 THEN '4 - 6 Years'
       WHEN tenure_in_days > 2191 THEN '6+ Years'
       ELSE null
   END                                                  AS tenure_bucketed
FROM PROD.COMMON_MART_PEOPLE.MART_TEAM_MEMBER_DIRECTORY
WHERE is_current AND is_current_team_member

レガシーおよびその他のデータモデル

レガシーモデルとは、いずれは移行する予定だが、現在もまだレポーティングに使用されているモデルです。

レガシー Workday データモデル

クリックして展開
データベーススキーマテーブル名データ粒度説明備考
prodlegacyemployee_directory_analysisemployee_id × date_actual任意の時点での GitLab のチームメンバーの現在の状態を示します。これはヘッドカウント、チームサイズ、またはチームメンバーに関するピープル関連の分析に使用するモデルです。現在および過去のチームメンバーと、部門・部署・コストセンター、採用日/退職日を含みます。
prepsensitiveemployee_directory_intermediateemployee_id × date_actual機密情報を含みます。GitLab チームメンバーの最新のポジションに関するすべての情報のマスターコレクション。
prepsensitiveworkday_terminationsemployee_idPeople Analytics チームが退職データを正確に報告できるよう、退職理由と exit impact を提供します
prepworkdayblended_directory_sourceemployee_id × uploaded_at × source_system下流モデルで使用されるチームメンバーデータの日次アップロード。Snowflake でのデータ問題を監査するのに役立つソース

Greenhouse データモデル

クリックして展開
データベーススキーマテーブル名データ粒度説明備考
prodworkspace_peoplerpt_hiresapplication_idこれは talent acquisition 専用のレポートで、受諾されたオファーを採用としてカウントします。
prepgreenhousegreenhouse_application_stages_sourceapplication_id × stage_id × stage_entered_onこのテーブルは、応募が取りうるすべてのステージの履歴アクティビティです。各行は応募が取りうるステージと、応募がそのステージに入った/離れたタイムスタンプを表します。注意点:このテーブルには、応募が属するジョブから取得した、応募が取りうるそれぞれのステージに対する行が含まれます。したがって、応募がまだ到達していない、または到達しない(応募が拒否された場合)ステージの行が存在することがあります。
prepsensitivegreenhouse_recruiting_xfapplication_id提出されたすべての応募と、オファーデータ、greenhouse の部署(関連 division)、ソースデータを 1 箇所にまとめて表示します。