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
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.
ERD — Time, Travel, and Expenses

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