Data Template: Purchase to Pay - Purchase Order

Microsoft Dynamics 365
Data Template: Purchase to Pay - Purchase Order

Your Purchase to Pay - Purchase Order Data Template

This template offers a clear roadmap for collecting the essential data needed to optimize your Purchase to Pay, Purchase Order process. It outlines the crucial attributes to gather, the key activities to track, and provides practical guidance on extracting this information from your source system. Use this resource to ensure your data is ready for comprehensive process analysis.
  • Recommended attributes to collect
  • Key activities to track for process mapping
  • Practical data extraction guidance
New to event logs? Learn how to create a process mining event log.

Purchase to Pay - Purchase Order Attributes

These are the recommended data fields to include in your event log for a comprehensive analysis of your Purchase to Pay, Purchase Order process.
5 Required 5 Recommended 10 Optional
Name Description
Activity Name
ActivityName
The name of the specific business event or step that occurred within the purchase order lifecycle.
Description

This attribute describes a single step in the purchase order process, such as 'Purchase Order Created', 'Purchase Order Approved', or 'Goods Receipt Posted'. The sequence of these activities forms the process flow for each purchase order.

Analyzing activities is the core of process mining. It allows for the visualization of the process map, discovery of process variants, and identification of activities that are frequently repeated or cause delays. Understanding the sequence and frequency of activities is essential for process optimization.

Why it matters

This attribute is essential for building the process map and understanding the sequence of events that make up the purchase order lifecycle.

Where to get

Derived from business logic based on status changes in tables like PurchTable, PurchReqTable, and related posting journals like VendPackingSlipJour or VendInvoiceJour.

Examples
Purchase Order CreatedPurchase Order ApprovedGoods Receipt PostedPurchase Order Invoiced
Event Time
EventTime
The precise date and time when a specific activity or event occurred.
Description

This timestamp records when each activity in the purchase order process took place. It is the chronological backbone of the process, allowing events to be ordered correctly.

In process analysis, event timestamps are fundamental for calculating cycle times, durations between activities, and overall case duration. They are used to identify bottlenecks, measure performance against SLAs, and understand the temporal dynamics of the process. For example, it is used to calculate the time between 'Purchase Order Created' and 'Purchase Order Approved'.

Why it matters

Timestamps are critical for calculating all time-based performance metrics, such as cycle times and durations, which are essential for identifying process bottlenecks.

Where to get

Extracted from various date/time fields across multiple tables, such as CreatedDateTime on PurchTable, or posting dates from related journal tables.

Examples
2023-10-26T10:00:00Z2023-10-26T14:35:10Z2023-11-05T09:12:00Z
Purchase Order
PurchaseOrderNumber
The unique identifier for the Purchase Order, serving as the primary case for process analysis.
Description

The Purchase Order number is the central identifier that links all related activities, from the initial draft to final completion or cancellation. Each unique number represents a single instance of the purchase order process.

In process mining, this attribute is used to reconstruct the end-to-end journey of every purchase order. Analyzing the process based on this identifier allows for a detailed view of the entire lifecycle, helping to identify common paths, deviations, and bottlenecks for individual orders.

Why it matters

It is the fundamental key for reconstructing the process flow, enabling the analysis of each purchase order's journey from beginning to end.

Where to get

This is the primary key in the purchase order header table, typically PurchTable with the field name PurchId in Microsoft Dynamics 365.

Examples
PO-001245PO-001246PO-001247
Last Data Update
LastDataUpdate
The timestamp indicating the last time the data for this process was refreshed.
Description

This attribute records the date and time of the most recent data extraction from the source system. It provides context on the freshness of the data being analyzed.

Knowing the last update time is important for users to understand if they are viewing the most current process data. It helps in assessing the relevance of the analysis and in scheduling regular data refreshes.

Why it matters

Ensures transparency about the timeliness of the data, allowing users to know how up-to-date their process analysis is.

Where to get

This is a metadata attribute generated and stored during the data ingestion process.

Examples
2024-05-21T05:00:00Z
Source System
SourceSystem
Indicates the system from which the data was extracted.
Description

This attribute identifies the source application where the purchase order data originates. For this data model, the value will typically be 'Microsoft Dynamics 365'.

In larger organizations, procurement processes might span multiple systems. This attribute helps in data governance and ensures that the origin of the data is clear, which is particularly important when merging data from different sources.

Why it matters

Provides essential context about the data's origin, which is crucial for data governance, validation, and understanding the technological landscape of the process.

Where to get

This is a static value added during the data extraction and transformation process to label the dataset.

Examples
Microsoft Dynamics 365 F&OD365
PO Status
PurchaseOrderStatus
The current status of the purchase order in its lifecycle.
Description

This attribute indicates the overall state of the purchase order at a given point in time, such as 'Open order', 'Received', 'Invoiced', or 'Canceled'. It represents the outcome of the latest activity.

Tracking the status is useful for understanding the current state of all open purchase orders. In process mining, it can be used to analyze the outcomes of cases, for example, by filtering for all purchase orders that ended in a 'Canceled' state to investigate the reasons why.

Why it matters

Provides a snapshot of the purchase order's current state, which is useful for filtering cases and analyzing process outcomes, such as completion or cancellation rates.

Where to get

Found in the PurchTable. The primary status fields are DocumentState and PurchStatus.

Examples
Open orderReceivedInvoicedCanceled
PO Total Amount
PurchaseOrderTotalAmount
The total monetary value of the purchase order.
Description

This attribute represents the total cost of all items and services included in the purchase order. It is a key financial metric for the procurement process.

Analyzing the process by total amount can reveal important insights. For instance, higher-value purchase orders may follow a different, more stringent approval path or experience longer cycle times. It is also used in financial reporting and for categorizing POs into value bands for analysis.

Why it matters

Allows for financial analysis of the procurement process, helping to identify how order value impacts process behavior, such as approval times and pathways.

Where to get

This value can be calculated from the PurchLine table by summing the LineAmount for a given PurchId, or found in header-level amount fields on PurchTable.

Examples
5250.00120.50150000.00
Requested Delivery Date
RequestedDeliveryDate
The date on which the business requested the vendor to deliver the goods or services.
Description

This date is specified on the purchase order and communicates the desired delivery timeline to the vendor. It serves as a baseline for measuring vendor delivery performance.

This attribute is essential for the 'Vendor Delivery Adherence' dashboard and the 'On-Time Delivery Rate' KPI. By comparing the RequestedDeliveryDate with the actual goods receipt date, businesses can quantify vendor reliability and identify chronic delays in the supply chain.

Why it matters

It is the baseline for measuring on-time delivery performance, which is a critical KPI for assessing vendor reliability and supply chain efficiency.

Where to get

Typically found on the PurchTable (header level) or PurchLine (line item level) as DeliveryDate.

Examples
2023-11-152023-12-012024-01-20
User Name
UserName
The name of the user who performed a specific activity.
Description

This attribute identifies the individual responsible for executing an event, such as creating, approving, or changing a purchase order. It can be a system user ID or a full name.

Analyzing user activity helps to understand workload distribution, identify training needs, and pinpoint individuals or teams involved in process deviations. It is essential for dashboards related to approver performance and can be used to filter the process for activities performed by specific users.

Why it matters

It enables performance analysis by user, helps identify bottlenecks related to specific individuals, and provides accountability for process steps.

Where to get

Can be found in fields like CreatedBy or ModifiedBy on tables such as PurchTable. User details are typically stored in UserInfo table.

Examples
Alice JohnsonBob WilliamsSysAdmin
Vendor Name
VendorName
The name of the supplier or vendor for whom the purchase order is created.
Description

This attribute contains the name of the external supplier providing the goods or services. It is a critical dimension for analyzing procurement activities.

Segmenting the process by vendor name is crucial for evaluating supplier performance. It allows for the analysis of on-time delivery rates, goods return rates, and quality inspection outcomes for each vendor. This helps in identifying reliable partners and those who may be causing delays or quality issues.

Why it matters

This attribute is essential for vendor performance management, enabling analysis of delivery times, return rates, and overall reliability by supplier.

Where to get

The vendor account is stored in PurchTable (field OrderAccount). The name is retrieved by joining with the VendTable.

Examples
Contoso Office SuppliesFabrikam RoboticsNorthwind Traders
Approval Cycle Time
ApprovalCycleTime
The duration between the creation of a purchase order and its final approval.
Description

This calculated metric measures the time elapsed from the 'Purchase Order Created' activity to the 'Purchase Order Approved' activity. It is a direct measure of the efficiency of the approval workflow.

This attribute is the primary measure for the 'Average PO Approval Time' KPI and the 'PO Approval Cycle Time Analysis' dashboard. Analyzing this duration helps identify bottlenecks in the approval chain and assess whether approval processes are meeting internal service level agreements.

Why it matters

Directly measures the efficiency of the approval workflow, a common area for delays in the procurement process.

Where to get

Calculated by finding the time difference between the EventTime of the 'Purchase Order Approved' and 'Purchase Order Created' activities for each case.

Examples
P2DT12H30MPT8HP7D
Approver Name
ApproverName
The name of the user who approved the purchase order or a step in the approval workflow.
Description

This attribute identifies the manager or user who gave formal approval to the purchase order, allowing it to proceed. In multi-level approval workflows, there may be several approvers for a single purchase order.

Tracking the approver is fundamental for the 'PO Approval Cycle Time Analysis' and 'Approver Performance Metrics' dashboards. It allows for the measurement of how long each approver takes, identifies bottlenecks in the approval chain, and helps in assessing workload distribution and efficiency.

Why it matters

Enables analysis of the approval process, helping to identify approval bottlenecks and measure the performance and workload of different approvers.

Where to get

Approval information is typically stored in workflow tracking tables, not directly on PurchTable. It requires querying the workflow history associated with the purchase order.

Examples
Charles GreenDiana PrinceEdward Nigma
Company Code
CompanyCode
The identifier for the legal entity or company placing the purchase order.
Description

In a multi-company environment, this attribute specifies which legal entity is making the purchase. This is a fundamental organizational data point.

This attribute allows for a comparative analysis of the P2P process across different legal entities within the same organization. It can highlight differences in process efficiency, compliance, and vendor management from one company to another, supporting standardization efforts.

Why it matters

Essential for multi-entity organizations to compare and standardize the procurement process across different legal entities.

Where to get

This is the DataAreaId field, which is present on almost every table in Dynamics 365, including PurchTable.

Examples
USMFDEMFGBSI
Delivery Location
DeliveryLocation
The specific site, warehouse, or address where the goods are to be delivered.
Description

This attribute specifies the physical location for the delivery of items on the purchase order. It could be a warehouse, a specific office, or a project site.

Analyzing the process by delivery location can help identify regional or site-specific bottlenecks, particularly in the goods receipt process. The 'Goods Receipt Processing Time' dashboard can use this attribute to compare efficiency across different locations.

Why it matters

Helps to identify location-specific process variations or delays, especially in the goods receipt and quality inspection stages.

Where to get

Delivery address and location information is stored on the PurchTable and can be defaulted from the company or vendor setup.

Examples
Main Warehouse ABuilding C OfficeWest Coast Distribution Center
Department
DepartmentName
The name of the department that initiated the purchase requisition or order.
Description

This attribute identifies the internal business unit or department responsible for the purchase. It is often derived from the person who created the purchase requisition.

Analyzing the process by department is key to understanding how different parts of the organization utilize the procurement process. It can help identify departments with longer approval cycles, higher rates of PO changes, or specific purchasing patterns. This allows for targeted process improvement initiatives.

Why it matters

Enables comparison of process performance across different business units, helping to identify department-specific behaviors, bottlenecks, or inefficiencies.

Where to get

This information is often linked via the requester or creator of the purchase requisition (PurchReqTable) or purchase order (PurchTable) and their associated department in the HR module.

Examples
FinanceITManufacturingMarketing
Is On-Time Delivery
IsOnTimeDelivery
A boolean flag that indicates if the goods were received on or before the requested delivery date.
Description

This calculated attribute compares the timestamp of the 'Goods Receipt Posted' activity with the RequestedDeliveryDate. It is set to 'true' if the receipt date is on or before the requested date.

This flag directly supports the calculation of the 'On-Time Delivery Rate' KPI. It simplifies the analysis of vendor performance and allows for easy filtering and visualization of on-time versus late deliveries, which is central to the 'Vendor Delivery Adherence' dashboard.

Why it matters

Provides a clear, binary outcome for delivery performance, simplifying the calculation of on-time delivery KPIs and vendor scorecards.

Where to get

This is a calculated attribute derived by comparing the RequestedDeliveryDate with the EventTime of the 'Goods Receipt Posted' activity.

Examples
truefalse
Is PO Changed
IsPurchaseOrderChanged
A boolean flag that indicates if the purchase order was modified after its initial approval.
Description

This calculated attribute is set to 'true' if any 'Purchase Order Changed' activity occurs after the 'Purchase Order Approved' activity for a given case. It simplifies the analysis of rework and modifications.

This flag is crucial for calculating the 'PO Modification Rate Post-Approval' KPI and for the 'Purchase Order Modification Trends' dashboard. It provides a straightforward way to isolate and analyze purchase orders that required rework, helping to identify the root causes of such changes.

Why it matters

Simplifies the measurement of rework and change frequency, which are key indicators of process instability and inefficiency.

Where to get

This is a calculated attribute derived from the sequence of activities in the event log.

Examples
truefalse
Purchase Category
PurchaseCategory
The classification of the purchased item or service, such as 'IT Hardware' or 'Office Supplies'.
Description

This attribute provides a way to group purchase order items into logical categories. This classification helps in analyzing spending patterns and process variations across different types of procurement.

In process analysis, filtering by purchase category can reveal different behaviors. For example, the procurement process for capital expenditures might be longer and more complex than for operational supplies. It is used in dashboards to analyze modification trends and return rates by category.

Why it matters

Allows for segmentation of the process by the type of goods or services being purchased, revealing different process behaviors for different spend categories.

Where to get

Item categories are linked to the released products (InventTable) which are then used on the PurchLine. The category information itself is stored in the category management tables.

Examples
IT HardwareOffice SuppliesProfessional ServicesRaw Materials
Purchase Requisition
PurchaseRequisitionNumber
The identifier of the purchase requisition that preceded the purchase order.
Description

This attribute links a purchase order back to the original internal request, the purchase requisition. Not all purchase orders originate from a requisition.

This link is vital for analyzing the full 'Requisition to PO' process. It allows for measuring the 'Requisition to PO Conversion Speed' KPI and understanding how quickly internal demand is translated into an external order. It also helps in analyzing compliance, for instance, by identifying POs created without a formal requisition.

Why it matters

Links the PO to the initial request, enabling analysis of the requisition-to-order cycle time and ensuring process compliance.

Where to get

Found on the PurchLine table, in the PurchReqId field, which links back to the PurchReqTable.

Examples
PR-000871PR-000872PR-000873
Return Reason
ReturnReason
The reason provided when goods from a purchase order are returned to the vendor.
Description

When a 'Goods Returned to Vendor' activity occurs, this attribute captures the justification for the return, such as 'Damaged Goods', 'Incorrect Item', or 'Poor Quality'.

This data is invaluable for the 'Purchase Order Returns Rate' dashboard. Analyzing return reasons helps to identify the root causes of returns, whether they are related to vendor quality, internal ordering errors, or shipping issues. This allows for targeted actions to reduce the rate of returns.

Why it matters

Provides insight into why goods are returned, helping to diagnose issues with vendor quality, ordering accuracy, or logistics.

Where to get

Return reasons are typically captured on return order transactions or through reason codes associated with negative receipt journals.

Examples
Damaged in transitWrong item deliveredFailed quality inspection
Required Recommended Optional

Purchase to Pay - Purchase Order Activities

These are the essential process steps and milestones to capture in your event log for accurate discovery and optimization.
6 Recommended 8 Optional
Activity Description
Goods Receipt Posted
Marks the official recording of received goods against the purchase order in the system. This event is captured when a product receipt journal is posted.
Why it matters

This is a key milestone that updates inventory and signifies the start of the invoice matching process. It is the endpoint for measuring 'On-Time Delivery Rate' and vendor lead time.

Where to get

Captured from the creation of the product receipt journal, stored in VendPackingSlipJour. The createdDateTime or PackingSlipDate on this table indicates when goods were officially received.

Capture

Use the creation or posting timestamp from the VendPackingSlipJour record linked to the PO.

Event type explicit
Purchase Order Approved
Marks the final approval of the purchase order, authorizing it to be sent to the vendor. This event is typically inferred from a status change on the PO or captured directly from workflow history.
Why it matters

This is a critical milestone, as no further action can be taken until the PO is approved. It is essential for analyzing approval bottlenecks and measuring the 'PO Approval Cycle Time' KPI.

Where to get

Inferred from the DocumentState field on the PurchTable changing to 'Approved'. Alternatively, it can be sourced from the completion timestamp of the final approval step in the WorkflowTrackingStatusTable.

Capture

Identify the timestamp when the DocumentState on PurchTable transitions to 'Approved'.

Event type inferred
Purchase Order Completed
Indicates the successful conclusion of the purchase order lifecycle, where all goods have been received and invoiced. This is typically inferred when the PO status is updated to a final, closed state.
Why it matters

This activity defines the end of a successful process instance. Measuring the 'Overall Purchase Order Cycle Time' from creation to completion provides a holistic view of process efficiency.

Where to get

Inferred from the status fields on the PurchTable, such as when both DocumentState is 'Invoiced' and the line item statuses indicate full receipt and invoicing.

Capture

Identify the timestamp when the PO's header and line statuses are updated to a final, closed state (e.g., 'Invoiced').

Event type inferred
Purchase Order Created
This activity signifies the creation of a draft purchase order document in the system. It is captured from the creation timestamp of the purchase order header record, often following an approved requisition.
Why it matters

This marks the transition from an internal request to a formal purchasing document. It is a key starting point for measuring PO processing and approval cycle times.

Where to get

This event is the creation of a record in the PurchTable. The createdDateTime field on this table provides the timestamp for the activity.

Capture

Extract creation timestamp from the PurchTable for each purchase order.

Event type explicit
Purchase Order Sent to Vendor
This activity indicates that the approved purchase order has been communicated to the vendor. It is captured when the PO is confirmed, which generates a confirmation journal and typically triggers the sending of the document.
Why it matters

This is the first external-facing step and starts the clock on supplier lead time. It's crucial for tracking vendor performance and the 'On-Time Delivery Rate' KPI.

Where to get

The event is marked by the creation of a record in the PurchPurchaseOrderJour table (the PO confirmation journal). The creation date of this journal serves as the activity timestamp.

Capture

Use the creation timestamp of the first PurchPurchaseOrderJour record for the PO.

Event type explicit
Purchase Requisition Created
This activity marks the creation of a purchase requisition, the formal request for goods or services. It is captured when a new record is created in the purchase requisition table, signifying the start of the procurement demand.
Why it matters

This is the initial trigger for the purchase order process. Analyzing the time from this event to PO creation helps measure internal process efficiency and responsiveness to demand.

Where to get

This event corresponds to the creation of a record in the PurchReqTable. The creation timestamp (createdDateTime) of the record marks the event time.

Capture

Extract creation timestamp from the PurchReqTable for each purchase requisition.

Event type explicit
Goods Returned to Vendor
Indicates that previously received goods have been returned to the vendor due to issues like damage or incorrect items. This is captured by posting a return transaction.
Why it matters

Returns represent process failures and extra costs. Tracking this activity helps calculate the 'Purchase Order Return Rate' and identify issues with vendors or products.

Where to get

This event is inferred from the creation of a purchase order with a negative quantity or a specific return order document that references the original PO. The transaction date of the return posting is the event time.

Capture

Identify posting of a purchase return order or a debit note against the original PO.

Event type explicit
Purchase Order Canceled
Represents the termination of a purchase order before it was fully completed. This is captured by a specific status change on the purchase order document.
Why it matters

Cancellations are an important exception path. Analyzing their frequency and reasons can highlight issues in planning or vendor reliability.

Where to get

This is inferred from the DocumentState field on the PurchTable being updated to 'Canceled'. The timestamp of this status change marks the event.

Capture

Identify the timestamp when the DocumentState on PurchTable is set to 'Canceled'.

Event type inferred
Purchase Order Changed
This activity captures any modification made to a purchase order after it has been approved. Dynamics 365 can track versions of the PO, allowing for the identification of changes.
Why it matters

Tracking changes is critical for identifying rework, understanding process instability, and measuring the 'PO Modification Rate'. Changes can lead to delays and cost variations.

Where to get

Inferred by comparing different versions of the purchase order stored in archival or versioning tables (e.g., PurchTableHistory). An increase in the version number signifies a change.

Capture

Identify records where the version number on the PurchTable has incremented post-approval.

Event type inferred
Purchase Order Confirmed by Vendor
Represents the vendor's acknowledgement and confirmation of the purchase order details. This is often a manual data entry step based on communication from the vendor.
Why it matters

Vendor confirmation provides assurance that the order is being processed. Delays or discrepancies at this stage can signal potential fulfillment issues.

Where to get

This is typically inferred from the population of confirmation-related date or status fields on the PurchTable, such as delivery confirmation dates. This may not be a discrete event.

Capture

Infer from the population of a specific confirmation date field on the PurchTable or PurchLine.

Event type inferred
Purchase Order Invoiced
This activity marks the point where a vendor invoice has been received and posted against the purchase order. This event links the procurement and payment processes.
Why it matters

This is the final step before payment and is crucial for calculating the final cost of the purchase. It provides an endpoint for three-way matching analysis.

Where to get

This event is captured from the posting of a vendor invoice journal (VendInvoiceJour) that is matched to the purchase order. The InvoiceDate or posting date on this record is the timestamp.

Capture

Use the posting timestamp from the VendInvoiceJour table linked to the PurchTable record.

Event type explicit
Purchase Order Submitted for Approval
Represents the point when a draft purchase order is formally submitted into the approval workflow. This is typically an explicit action taken by the user, captured via workflow logs.
Why it matters

This activity officially starts the PO approval cycle. Tracking this allows for precise measurement of how long POs wait for approval and the total approval duration.

Where to get

Captured from the WorkflowTrackingStatusTable for the purchase order, which logs the submission event and timestamp.

Capture

Identify the 'Submitted' event in the workflow history associated with the PurchTable record.

Event type explicit
Purchase Requisition Approved
Represents the formal approval of a purchase requisition by an authorized manager. This event is typically captured from the workflow history logs or by tracking a status change on the requisition record.
Why it matters

Approval is a critical milestone that enables the conversion of a requisition into a purchase order. Delays here directly impact the entire procurement timeline.

Where to get

Can be captured from the WorkflowTrackingStatusTable associated with the purchase requisition, or inferred from a change in the status field on the PurchReqTable to an 'Approved' state.

Capture

Use the completion timestamp of the final approval step in the workflow history for the requisition.

Event type explicit
Quality Inspection Performed
Represents the completion of a quality inspection for the received goods. This event is often managed through the Quality Management module or a status update.
Why it matters

This activity can be a significant bottleneck between receiving goods and making them available for use. Analyzing its duration helps improve the 'Quality Inspection Cycle Time' KPI.

Where to get

This can be inferred from the completion of a Quality Order (InventQualityOrderTable) linked to the purchase order receipt. The timestamp of the status change to 'Passed' or 'Failed' marks the event.

Capture

Track the status completion timestamp on the InventQualityOrderTable associated with the PO line.

Event type inferred
Recommended Optional

Extraction Guides

How to get your data from Microsoft Dynamics 365