Skip to main content

Time, Travel, and Expenses


Time, Travel, and Expenses: A Unified Model for Workforce Activity and Cost Tracking

The Time, Travel, and Expenses module brings together three closely related business functions into a single, reusable data model. Federal agencies often need to account for where their people are, how they are spending their time, and what costs are being incurred in the course of travel or program work. Instead of handling these areas separately in siloed applications, this module provides a coherent structure that supports workforce planning, travel approvals, and expense reporting within the same framework.

At the core of the module is the ability to track people, places, and time. The Person table represents employees or contractors, linked to Organization Units to establish reporting relationships. Geographic context is supplied by Country, State or Province, and Location, which together allow agencies to anchor time, travel, and expense data to specific jurisdictions or facilities.

For timekeeping, the module offers a flexible model that can handle both project-based and availability-based tracking. Time Entry records capture the hours a person spends, whether on regular work, a special project, or administrative duties. These entries are tied to Time Periods for reporting and to Time Projects and Time Project Tasks for allocating work against funded activities or mission objectives. The Availability table extends this by allowing agencies to plan ahead, recording when staff are scheduled to be available or unavailable—supporting use cases such as hybrid workplace hoteling or resource planning for field assignments.

Travel is modeled through Travel Requests and Travel Segments. A Travel Request provides the overarching purpose, destination, and approval chain for a trip, drawing from the Travel Purpose reference table to categorize travel consistently. Travel Segments then break the request into legs of travel, capturing details such as origin, destination, carrier, and dates. This structure supports both domestic and international trips, while keeping the data aligned with financial and compliance requirements.

Expenses are captured in Expense Reports and their Line Items. An Expense Report serves as the container for a reimbursement or payment claim, while Line Items provide the detailed breakdown of costs. Each line is categorized with an Expense Item Category such as lodging, transportation, per diem, or supplies. By linking Expense Reports to Time Projects, Travel Requests, or Organization Units, agencies can tie costs back to mission activities, producing a clear picture of how funds are being spent in support of operations.

The strength of this module is its ability to support multiple overlapping use cases without needing to reinvent the data model. A grants administration system might use it to capture staff time charged against funded projects. A travel management app could leverage the same tables to approve trips, break them into segments, and track associated expenses. A workforce planning tool might combine Availability and Time Entry data to forecast staffing needs across locations. Because all of these scenarios draw from the same foundation, agencies can reuse data across systems rather than reconciling it after the fact.

By unifying time, travel, and expenses into a single, extensible structure, this module gives agencies a flexible toolset to improve accountability, resource planning, and financial stewardship. It reduces duplication, enforces consistency, and creates a foundation that other mission-specific modules can build upon. In short, it helps connect the everyday activities of people to the broader programs and objectives they serve.

Entity Relationship Diagram


graph TD
  Contact(Person)
  govcdm_country(Country)
  govcdm_ExpenseItemCategory(Expense Item Category)
  govcdm_ExpenseReport(Expense Report)
  govcdm_ExpenseReportLineItem(Expense Report Line Item)
  govcdm_Location(Location)
  govcdm_organizationunit(Organization Unit)
  govcdm_stateorprovince(State or Province)
  govcdm_TimeAvailability(Time Availability)
  govcdm_TimeEntry(Time Entry)
  govcdm_TimePeriod(Time Period)
  govcdm_TimeProject(Time Project)
  govcdm_TimeProjectTask(Time Project Task)
  govcdm_TravelPurpose(Travel Purpose)
  govcdm_TravelRequest(Travel Request)
  govcdm_TravelSegment(Travel Segment)
  govcdm_ExpenseReport --> Contact
  govcdm_TimeEntry --> Contact
  govcdm_TimeAvailability --> Contact
  govcdm_TravelRequest --> Contact
  govcdm_TravelRequest --> govcdm_country
  govcdm_TravelSegment --> govcdm_country
  govcdm_ExpenseReportLineItem --> govcdm_ExpenseItemCategory
  govcdm_ExpenseReportLineItem --> govcdm_ExpenseReport
  govcdm_TimeAvailability --> govcdm_Location
  govcdm_TravelRequest --> govcdm_Location
  govcdm_TravelRequest --> govcdm_organizationunit
  govcdm_TravelRequest --> govcdm_stateorprovince
  govcdm_TravelSegment --> govcdm_stateorprovince
  govcdm_TimeEntry --> govcdm_TimePeriod
  govcdm_TimeEntry --> govcdm_TimeProject
  govcdm_TimeProjectTask --> govcdm_TimeProject
  govcdm_TimeEntry --> govcdm_TimeProjectTask
  govcdm_TravelRequest --> govcdm_TravelPurpose
  govcdm_TravelSegment --> govcdm_TravelRequest
  govcdm_ExpenseReportLineItem --> TransactionCurrency
  govcdm_TravelRequest --> TransactionCurrency
  govcdm_TravelSegment --> TransactionCurrency

Person


Metadata

  • Schema: Contact

Custom Fields

Country


Metadata

  • Schema: govcdm_country

Custom Fields

Expense Item Category


Metadata

  • Schema: govcdm_ExpenseItemCategory

Custom Fields

  • Name
    • Type: Nvarchar
    • Schema: govcdm_Name

Expense Report


Metadata

  • Schema: govcdm_ExpenseReport

Custom Fields

  • Approval Status
    • Type: Picklist
    • Schema: govcdm_ApprovalStatus
  • Comments
    • Type: Ntext
    • Schema: govcdm_Comments
  • Name
    • Type: Nvarchar
    • Schema: govcdm_Name
  • Person
    • Type: Lookup
    • Schema: govcdm_Person

Expense Report Line Item


Metadata

  • Schema: govcdm_ExpenseReportLineItem

Custom Fields

  • Comments
    • Type: Ntext
    • Schema: govcdm_Comments
  • Currency
    • Type: Lookup
    • Schema: TransactionCurrencyId
  • Exchange Rate
    • Type: Decimal
    • Schema: ExchangeRate
  • Expense Amount
    • Type: Money
    • Schema: govcdm_ExpenseAmount
  • Expense Amount (Base)
    • Type: Money
    • Schema: govcdm_expenseamount_Base
  • Expense Date
    • Type: Datetime
    • Schema: govcdm_ExpenseDate
  • Expense Item Category
    • Type: Lookup
    • Schema: govcdm_ExpenseItemCategory
  • Expense Report
    • Type: Lookup
    • Schema: govcdm_ExpenseReport
  • Name
    • Type: Nvarchar
    • Schema: govcdm_Name

Location


Metadata

  • Schema: govcdm_Location

Custom Fields

Organization Unit


Metadata

  • Schema: govcdm_organizationunit

Custom Fields

State or Province


Metadata

  • Schema: govcdm_stateorprovince

Custom Fields

Time Availability


Metadata

  • Schema: govcdm_TimeAvailability

Custom Fields

  • Commitment Status
    • Type: Picklist
    • Schema: govcdm_CommitmentStatus
  • Details
    • Type: Ntext
    • Schema: govcdm_Details
  • End Date
    • Type: Datetime
    • Schema: govcdm_EndDate
  • Location
    • Type: Lookup
    • Schema: govcdm_Location
  • Name
    • Type: Nvarchar
    • Schema: govcdm_Name
  • Person
    • Type: Lookup
    • Schema: govcdm_Person
  • Personnel Availability
    • Type: Picklist
    • Schema: govcdm_PersonnelAvailability
  • Start Date
    • Type: Datetime
    • Schema: govcdm_StartDate

Time Entry


Metadata

  • Schema: govcdm_TimeEntry

Custom Fields

  • Approval Status
    • Type: Picklist
    • Schema: govcdm_ApprovalStatus
  • Comments
    • Type: Ntext
    • Schema: govcdm_Comments
  • Hours
    • Type: Float
    • Schema: govcdm_Hours
  • Name
    • Type: Nvarchar
    • Schema: govcdm_Name
  • Person
    • Type: Lookup
    • Schema: govcdm_Person
  • Time Entry Date
    • Type: Datetime
    • Schema: govcdm_TimeEntryDate
  • Time Period
    • Type: Lookup
    • Schema: govcdm_TimePeriod
  • Time Project
    • Type: Lookup
    • Schema: govcdm_TimeProject
  • Time Project Task
    • Type: Lookup
    • Schema: govcdm_TimeProjectTask

Time Period


Metadata

  • Schema: govcdm_TimePeriod

Custom Fields

  • Name
    • Type: Nvarchar
    • Schema: govcdm_Name

Time Project


Metadata

  • Schema: govcdm_TimeProject

Custom Fields

  • Name
    • Type: Nvarchar
    • Schema: govcdm_Name

Time Project Task


Metadata

  • Schema: govcdm_TimeProjectTask

Custom Fields

  • Name
    • Type: Nvarchar
    • Schema: govcdm_Name
  • Time Project
    • Type: Lookup
    • Schema: govcdm_TimeProject

Travel Purpose


Metadata

  • Schema: govcdm_TravelPurpose

Custom Fields

  • Name
    • Type: Nvarchar
    • Schema: govcdm_Name

Travel Request


Metadata

  • Schema: govcdm_TravelRequest

Custom Fields

  • Approval Status
    • Type: Picklist
    • Schema: govcdm_ApprovalStatus
  • Are Actual Expenses Authorized?
    • Type: Picklist
    • Schema: govcdm_AreActualExpensesAuthorized
  • Authorization Number
    • Type: Nvarchar
    • Schema: govcdm_Name
  • Currency
    • Type: Lookup
    • Schema: TransactionCurrencyId
  • Destination
    • Type: Nvarchar
    • Schema: govcdm_Destination
  • Estimated Cost Other
    • Type: Money
    • Schema: govcdm_EstimatedCostOther
  • Estimated Cost Other (Base)
    • Type: Money
    • Schema: govcdm_estimatedcostother_Base
  • Estimated Cost Per Diem
    • Type: Money
    • Schema: govcdm_EstimatedCostPerDiem
  • Estimated Cost Per Diem (Base)
    • Type: Money
    • Schema: govcdm_estimatedcostperdiem_Base
  • Estimated Cost Total
    • Type: Money
    • Schema: govcdm_EstimatedCostTotal
  • Estimated Cost Total (Base)
    • Type: Money
    • Schema: govcdm_estimatedcosttotal_Base
  • Estimated Cost Travel
    • Type: Money
    • Schema: govcdm_EstimatedCostTravel
  • Estimated Cost Travel (Base)
    • Type: Money
    • Schema: govcdm_estimatedcosttravel_Base
  • Exchange Rate
    • Type: Decimal
    • Schema: ExchangeRate
  • Is Lowest Cost Air Carrier Used?
    • Type: Picklist
    • Schema: govcdm_IsLowestCostAirCarrierUsed
  • Is Personal Convenience Authorized?
    • Type: Picklist
    • Schema: govcdm_IsPersonalConvenienceAuthorized
  • Is Premium Travel Authorized?
    • Type: Picklist
    • Schema: govcdm_IsPremiumTravelAuthorized
  • Request Comments
    • Type: Ntext
    • Schema: govcdm_RequestComments
  • Request Date
    • Type: Datetime
    • Schema: govcdm_RequestDate
  • Submission Type
    • Type: Picklist
    • Schema: govcdm_SubmissionType
  • Travel Advance Authorized Amount
    • Type: Money
    • Schema: govcdm_TravelAdvanceAuthorizedAmount
  • Travel Advance Authorized Amount (Base)
    • Type: Money
    • Schema: govcdm_traveladvanceauthorizedamount_Base
  • Travel From Date
    • Type: Datetime
    • Schema: govcdm_TravelFromDate
  • Travel Has Government Purchase Card?
    • Type: Picklist
    • Schema: govcdm_TravelHasGovernmentPurchaseCard
  • Travel Purpose
    • Type: Lookup
    • Schema: govcdm_TravelPurpose
  • Travel Reason
    • Type: Ntext
    • Schema: govcdm_TravelReason
  • Travel To Date
    • Type: Datetime
    • Schema: govcdm_TravelToDate
  • Traveler
    • Type: Lookup
    • Schema: govcdm_Traveler
  • Traveler Address Line 1
    • Type: Nvarchar
    • Schema: govcdm_TravelerAddressLine1
  • Traveler Address Line 2
    • Type: Nvarchar
    • Schema: govcdm_TravelerAddressLine2
  • Traveler City
    • Type: Nvarchar
    • Schema: govcdm_TravelerCity
  • Traveler Correspondence Symbol
    • Type: Nvarchar
    • Schema: govcdm_TravelerCorrespondenceSymbol
  • Traveler Country
    • Type: Lookup
    • Schema: govcdm_TravelerCountry
  • Traveler Duty Station
    • Type: Lookup
    • Schema: govcdm_TravelerDutyStation
  • Traveler First Name
    • Type: Nvarchar
    • Schema: govcdm_TravelerFirstName
  • Traveler Last Name
    • Type: Nvarchar
    • Schema: govcdm_TravelerLastName
  • Traveler Middle Name
    • Type: Nvarchar
    • Schema: govcdm_TravelerMiddleName
  • Traveler Organization Unit
    • Type: Lookup
    • Schema: govcdm_TravelerOrganizationUnit
  • Traveler Phone Number
    • Type: Nvarchar
    • Schema: govcdm_TravelerPhoneNumber
  • Traveler State or Province
    • Type: Lookup
    • Schema: govcdm_TravelerStateorProvince
  • Will Use Car Rental
    • Type: Picklist
    • Schema: govcdm_WillUseCarRental
  • Will Use Commercial Air
    • Type: Picklist
    • Schema: govcdm_WillUseCommercialAir
  • Will Use Commercial Bus
    • Type: Picklist
    • Schema: govcdm_WillUseCommercialBus
  • Will Use Commercial Rail
    • Type: Picklist
    • Schema: govcdm_WillUseCommercialRail
  • Will Use Commercial Ship
    • Type: Picklist
    • Schema: govcdm_WillUseCommercialShip
  • Will Use Government Air
    • Type: Picklist
    • Schema: govcdm_WillUseGovernmentAir
  • Will Use Government Ship
    • Type: Picklist
    • Schema: govcdm_WillUseGovernmentShip
  • Will Use Government Vehicle
    • Type: Picklist
    • Schema: govcdm_WillUseGovernmentVehicle
  • Will Use Other
    • Type: Picklist
    • Schema: govcdm_WillUseOther
  • Will Use Other (Specify)
    • Type: Nvarchar
    • Schema: govcdm_WillUseOtherSpecify
  • Will Use Private Is Advantageous
    • Type: Picklist
    • Schema: govcdm_WillUsePrivateIsAdvantageous
  • Will Use Private Is Limited
    • Type: Picklist
    • Schema: govcdm_WillUsePrivateIsLimited
  • Will Use Private Mileage Rate
    • Type: Money
    • Schema: govcdm_WillUsePrivateMileageRate
  • Will Use Private Mileage Rate (Base)
    • Type: Money
    • Schema: govcdm_willuseprivatemileagerate_Base
  • Will Use Privately Owned Vehicle
    • Type: Picklist
    • Schema: govcdm_WillUsePrivatelyOwnedVehicle
  • Will Use Taxi
    • Type: Picklist
    • Schema: govcdm_WillUseTaxi

Travel Segment


Metadata

  • Schema: govcdm_TravelSegment

Custom Fields

  • Actual Expense Rate
    • Type: Money
    • Schema: govcdm_ActualExpenseRate
  • Actual Expense Rate (Base)
    • Type: Money
    • Schema: govcdm_actualexpenserate_Base
  • Currency
    • Type: Lookup
    • Schema: TransactionCurrencyId
  • Destination City
    • Type: Nvarchar
    • Schema: govcdm_DestinationCity
  • Destination Country
    • Type: Lookup
    • Schema: govcdm_DestinationCountry
  • Destination State or Province
    • Type: Lookup
    • Schema: govcdm_DestinationStateorProvince
  • Exchange Rate
    • Type: Decimal
    • Schema: ExchangeRate
  • Method of Travel
    • Type: Picklist
    • Schema: govcdm_MethodofTravel
  • Name
    • Type: Nvarchar
    • Schema: govcdm_Name
  • Per Diem Maximum Incidentals
    • Type: Money
    • Schema: govcdm_PerDiemMaximumIncidentals
  • Per Diem Maximum Incidentals (Base)
    • Type: Money
    • Schema: govcdm_perdiemmaximumincidentals_Base
  • Per Diem Maximum Lodging
    • Type: Money
    • Schema: govcdm_PerDiemMaximumLodging
  • Per Diem Maximum Lodging (Base)
    • Type: Money
    • Schema: govcdm_perdiemmaximumlodging_Base
  • Per Diem Total
    • Type: Money
    • Schema: govcdm_PerDiemTotal
  • Per Diem Total (Base)
    • Type: Money
    • Schema: govcdm_perdiemtotal_Base
  • Segment End Date Time
    • Type: Datetime
    • Schema: govcdm_SegmentEndDateTime
  • Segment Start Date Time
    • Type: Datetime
    • Schema: govcdm_SegmentStartDateTime
  • Travel Request
    • Type: Lookup
    • Schema: govcdm_TravelRequest
We highly recommend using the managed versions, which will allow you to easily update and uninstall the solution from your environment. If you need to modify or enhance the managed solution, you can can create a new solution, add the components to that solution and make changes as needed.

Gov Time, Travel, and Expenses Data Model v1.0.0.0

Defines tables and adds Time Availability; fields for most tables will be added in a future release.

This is an open-source project maintained by Microsoft. It is not an official U.S. government website. The site uses the U.S. Web Design System (USWDS) to help agencies and partners create app catalog documentation sites of their own. Open Source at Microsoft