Business Requirements Document

Microsoft CSP Quote Audit Enhancement

Field Value
Document Version 1.0 - Draft
Date February 13, 2026

Document Control

Version Date Author Changes
0.1 2026-02-13 Kelvin Duan Initial draft based on meeting transcript (Feb 6), background document (Jan 16), SOPs, and research

Table of Contents

  1. Background & Context
  2. Problem Statement
  3. Project Scope
  4. Current State Process
  5. Pain Points & Gap Analysis
  6. Business Requirements
  7. Data Requirements
    • 7.1 Data Sources Required
    • 7.2 Data Quality Requirements
    • 7.3 Automated Data Ingestion & Refresh
    • 7.4 Database Structure Optimization
    • 7.5 AI-Ready Data Storage
  8. Stakeholders
  9. Constraints
  10. Assumptions
  11. Dependencies
  12. Success Criteria & KPIs
  13. Risks
  14. Required Information
  15. Glossary
  16. References

1. Background & Context

1.1 Organizational Context

Softchoice operates as a Microsoft Cloud Solution Provider (CSP) partner, reselling Microsoft cloud subscriptions and licenses to end customers. The licensing operations team ("coding specialists") manually create quotes in Salesforce CPQ based on requests from Account Executives (sellers), then place orders via Microsoft Partner Center and App Direct Marketplace.

The overall Microsoft Quoting Accuracy initiative (documented in "Microsoft CPQ Accuracy Controls", Jan 16 2026 meeting) identified 7 scope items. This project focuses specifically on Scope Item #2: Quote Quality Audit Automation, with dependencies on Scope Item #4 (Data Integration & Quality).

1.2 Business Driver

Quote accuracy is one of the most cited customer and Sales concerns at the SLT level. Incorrect quotes result in:

1.3 Current Initiative Status

The Emerging Tech team (Faizan Ahmad, Emmanuel Eraikhuemen) has built a first-generation quote audit automation for CSP using Microsoft Copilot Studio, Power Automate, Dataverse, and Microsoft Fabric. CSP audit automation is operational. EA audit work has started. This project aims to enhance the existing capability with advanced technologies including AI.

Scope Item Description Status Relationship
#1 Automating Sell Price & Supplier Cost Automate correct pricing in CPQ via SPE Inflight (DMND0002876, DMND0002894) Out of audit scope — covers sell price/markup accuracy, separate from this project
#2 Quote Quality Audit Automation This project Inflight (CSP complete, EA started) This project
#3 Audit History Quote field change tracking in CPQ Inflight Adjacent — could provide audit trail data
#4 Data Integration & Quality Microsoft pricing/cost data into SPE/CPQ Inflight Dependency — provides the reference data this audit needs
#5 CPQ Improvements Logic enforcement, missing data objects TBD Future — would reduce errors that audit catches
#6 SFDC Cases Case limitations for pricing/SKU info TBD Adjacent — better case data improves audit extraction accuracy
#7 Legacy Programs (MPSA, Select Plus) Pricing logic for legacy programs TBD Future scope expansion

2. Problem Statement

2.1 Core Problem

The Microsoft quote creation process relies on manual data entry by coding specialists who must cross-reference information across multiple systems (Salesforce cases, Metamix price files, Microsoft Partner Center) under time pressure. The current AI-based quote audit catches errors after quotes are created, but suffers from:

  1. Incomplete data extraction — The AI agent cannot reliably extract product requirements from unstructured case descriptions (free-form text with spelling errors, vague information, noise), and cannot process case attachments (Excel, Word, PDF, email) which represent ~20% of requests.

  2. Limited data accessibility — Reference data (pricing, entitlements, agreements) is obtained via Excel file downloads rather than APIs, resulting in stale data and manual refresh processes.

  3. Unauditable edge cases — Promotional pricing, locked-in pricing (historical customer rates), and mid-month pricing changes cannot be validated by the current automation.

  4. Feedback latency — The current audit feedback loop averages 3 hours from quote creation to error notification. Business target is 1-2 hours. Long-term vision is real-time guardrails during quote creation.

2.2 Business Impact

Impact Area Description
Financial Incorrect supplier costs on quotes create direct margin erosion; incorrect customer pricing leads to disputes and potential write-offs
Customer Experience Missing licenses or wrong billing terms discovered post-order erode customer trust and create rework
Operational Manual validation of audit results, manual lookup for edge cases, rework cycle for error correction
Compliance Quotes not matching Microsoft agreement terms may violate partner obligations

3. Project Scope

3.1 In Scope

3.1.1 Quote Audit Checks — Primary

A. Item Integrity (ensuring all requested products are precisely listed)

Check Description Current State
SKU Correctness Requested product/license matches quoted product (no wrong variations, e.g., Power BI Pro vs Power BI Premium) Automated via AI extraction — not 100% accurate due to unstructured text
Quantity Completeness All requested items present with correct counts; nothing missing Automated — limited by extraction accuracy
Billing Term Match Requested billing term (month-to-month, monthly on annual, annual upfront) matches quoted term and SKU Automated — edge cases exist where SKU unavailable in requested term
Renewal Completeness All active Partner Center subscriptions included in renewal quote (e.g., 20 subscriptions, not 19) Automated via entitlements data comparison

B. Supplier Cost Accuracy (ensuring Microsoft's price to Softchoice is correctly applied)

Check Description Current State
Special Cost Match Quote's special cost matches current Metamix pricing for that SKU/term/billing type combination Automated via Metamix lookup in Fabric
Locked-in Pricing If customer previously purchased the same subscription, same price must be used unless Microsoft cost changed Not automated — requires manual lookup into prior quotes
Promotional Pricing Time-limited promotional discounts correctly applied Not automated — manually validated by specialists
Currency/Region Alignment Quote currency (USD/CAD) matches pricing source (US/CA Metamix worksheet) Automated via structured case fields

3.1.2 Quote Audit Checks — Secondary

Check Description Current State
Header/Memo Completeness Correct billing type descriptor, validity month, auto-renewal date reference Automated (text matching)
Disclaimer Presence 24-hour cancellation notice, billing information Automated (text matching)

3.1.3 Enhancement Areas

Enhancement Description
Improved data extraction from unstructured text Higher accuracy AI extraction from case descriptions with spelling errors, abbreviations, vague info
Attachment processing Extract product lists, quantities, pricing from Excel, Word, PDF, and email attachments (~20% of cases)
API-based data sourcing Replace Excel file dependencies with Partner Center REST APIs and/or more frequent Fabric refreshes
Reduced audit feedback time From ~3 hours toward 1-2 hours, with 5-10 minute automated check capability
Locked-in pricing automation Automated cross-reference against prior term quotes
Promotional pricing validation Structured data for promo discounts enabling automated checks
EA program expansion Extend audit to Enterprise Agreement quotes (in progress)

3.1.4 Microsoft Programs In Scope

Program Priority Status
CSP NCE (New Commerce Experience) High Audit automation operational
CSP Perpetual High Audit automation operational
CSP Legacy Low Available but low volume
EA (Enterprise Agreement) High Work started; different data sources required

3.2 Out of Scope

Item Reason
Sell price / markup accuracy (Softchoice → Customer price) Covered by Scope Item #1 (DMND0002876/DMND0002894) via SPE in Salesforce. Faizan confirmed in meeting: "For the code audit purposes, we will be just looking at the special pricing and then we don't have that capability to look at [sell price]... that's just on the Salesforce, the SPE."
Quote creation automation Adjacent goal (Barbara's guardrails vision) but separate initiative. This project focuses on audit after creation. Audit data/logic may later feed into guardrails.
Credit check process Separate task that occurs after quote creation; not part of audit
Order placement Downstream of quote; audit occurs before order
EES / MPSA programs Future scope; data sources not yet identified
Salesforce CPQ modifications Covered by Scope Item #5 (CPQ Improvements)
SAP billing / material add Post-order process, not part of quote audit

3.3 Scope Boundaries — Clarifications Needed

Item Question for Business Team
Sell price validation Should sell price / markup accuracy be added to the audit scope for this project, or remain with Scope Item #1? The current audit only validates supplier cost.
Guardrails vs. Audit Should this project deliver a re-usable validation service that could also be called during quote creation (guardrails), or strictly the post-creation audit?
EA scope depth What specific audit checks are needed for EA beyond what CSP covers? Proration validation? Agreement-level pricing tiers?

4. Current State Process

4.1 End-to-End Audit Flow

Seller (AE) creates a Case in Salesforce
  │  Provides: customer name, agreement #, requested products,
  │  quantities, billing terms in case description (free text)
  │  Sometimes: attaches Excel/Word/PDF/email with details
  ▼
Coding Specialist creates Quote in Salesforce CPQ
  │  Looks up: Metamix for pricing, Partner Center for entitlements
  │  Manually: adds products, sets special cost, sets dates/terms
  │  Links: SC Agreement (contract/tenant)
  ▼
Quote Creation Complete → Automation Triggers
  │
  ▼
Copilot Studio AI Agent (via Power Automate)
  │  Step 1: Extract request details from case
  │     - Structured fields: agreement #, billing option (100% accurate)
  │     - Free text description: SKU names, quantities (AI extraction, <100% accurate)
  │     - Attachments: NOT processed (skipped)
  │  Step 2: Read quote details from Salesforce (via Power Automate connectors)
  │     - Product codes, quantities, special cost, dates, terms
  │  Step 3: Look up reference data from Fabric
  │     - Metamix pricing (monthly refresh)
  │     - CSP Entitlements (daily refresh)
  │  Step 4: Compare and flag discrepancies
  │     - SKU match, quantity match, billing term match
  │     - Special cost match against Metamix
  │     - Renewal completeness against entitlements
  │     - Header/disclaimer text checks
  │  Step 5: Save results to Dataverse
  ▼
Manual Validator reviews audit results
  │  Checks for false fails (promo pricing, edge cases, AI extraction errors)
  │  Validates true errors before sending feedback
  ▼
If errors found: Salesforce Task created for Coding Specialist
  │  Specialist corrects quote, notifies AE
  ▼
Corrected Quote → released to customer

4.2 Current Technical Architecture

┌─────────────────┐     ┌──────────────────┐     ┌──────────────────┐
│  Salesforce CPQ  │◄───►│  Power Automate   │◄───►│  Copilot Studio  │
│  (Cases, Quotes, │     │  (Orchestration)  │     │  (AI Agent)      │
│   Opportunities) │     └────────┬─────────┘     └──────────────────┘
└─────────────────┘              │
                                 ▼
                    ┌──────────────────┐
                    │    Dataverse     │
                    │  (Audit Results) │
                    └────────┬─────────┘
                             │
                             ▼
                    ┌──────────────────┐     ┌──────────────────┐
                    │ Microsoft Fabric │◄────│    SharePoint    │
                    │ (Lakehouse 100)  │     │ (Metamix files,  │
                    │                  │     │  Entitlements)   │
                    │ Tables:          │     └──────────────────┘
                    │ - CSP_Entitlements│
                    │ - Metamixed_CSP_  │
                    │   NCE/Perpetual/  │
                    │   Legacy          │
                    └──────────────────┘

4.3 Current Data Refresh Frequencies

Data Source Refresh Frequency Refresh Method Staleness Risk
CSP Entitlements Daily Full replace from SharePoint email → Fabric Low (daily)
Metamix CSP NCE Monthly (sometimes twice) Manual upload from SharePoint → Fabric Medium — mid-month pricing changes create gaps
Metamix CSP Perpetual Monthly Manual upload → Fabric Low (pricing changes less frequently)
Metamix CSP Legacy Monthly Manual upload → Fabric Low (low volume)
Salesforce case data Real-time Power Automate connector None
Salesforce quote data Real-time Power Automate connector None

5. Pain Points & Gap Analysis

5.1 Data Extraction Pain Points

# Pain Point Impact Current Mitigation Severity
PE-1 AI extraction from unstructured case descriptions is not 100% accurate Incorrect SKU identification leads to false audit failures; missed items go undetected Manual validator reviews all results High
PE-2 ~20% of cases have requirements in attachments (Excel, Word, PDF, email) that AI cannot read These cases cannot be fully audited; audit is skipped or incomplete for attachment content Business has asked sellers to copy details into case description, but compliance is partial High
PE-3 Free-form text contains spelling errors, abbreviations, vague descriptions, and noise AI misinterprets product names, quantities, or billing terms Manual validation catches most errors Medium
PE-4 Edge cases where SKU is unavailable in requested billing type — specialist substitutes different term and notes it in the quote Audit flags this as an error (false positive) because request doesn't match quote Manual validator overrides false positive Medium

5.2 Data Accessibility & Quality Pain Points

# Pain Point Impact Current Mitigation Severity
PD-1 No API access to most Microsoft data; relies on Excel file downloads Data is stale, manual processes prone to error, no real-time validation possible Scheduled uploads to Fabric High
PD-2 Metamix pricing updates monthly; Microsoft can change pricing mid-month Audit may compare against outdated pricing; false failures or missed real errors Grace manually refreshes when notified; sometimes twice monthly High
PD-3 Multiple teams have data in different formats and columns No single source of truth; different teams may reference different pricing versions Each team maintains their own copy Medium
PD-4 Locked-in pricing (historical customer rates) requires manual lookup into prior quotes Cannot be automated without access to prior quote data; adds manual effort Specialist manually checks; audit cannot validate High
PD-5 Promotional pricing not in structured data Audit flags promoted prices as errors (false fails) Manual validator checks promo manually Medium
PD-6 EA data requires 3-4 Excel files from VL Central; no API Same Excel dependency problem extending to new program Someone downloads reports manually Medium
PD-7 Fabric Lakehouse 100 (silver level) not accessible org-wide Other teams cannot leverage the audit data; limits data sharing Need to migrate to Lakehouse 200 Low
PD-8 No automated data ingestion pipelines — Metamix upload depends on single person (Grace) manually saving files Single point of failure; delays when person is unavailable; no retry on failure Manual process; team notifies Grace of changes High
PD-9 No historical pricing retained — full-replace refresh overwrites previous data Cannot look up "What was the price 3 months ago?" for locked-in pricing validation Manual lookup into prior Salesforce quotes High
PD-10 Flat table structure with no dimensional model — 4 independent silos Cannot cross-reference across programs; no unified product or customer dimension; not optimized for analytical or AI queries Each table queried independently Medium
PD-11 SOPs and business rules exist only as reference documents — not consumable by AI agents for grounding AI agent cannot reference SOP edge cases during audit reasoning; rules must be hardcoded in automation logic SOPs used for manual training only Medium
PD-12 No semantic layer over Fabric data — raw table schemas are not AI-friendly AI agents must understand raw column names (e.g., MFGSKU, DateUpsert) rather than business concepts (e.g., "product code", "last updated") N/A — AI agents have limited data access currently Medium

5.3 Process & Timing Pain Points

# Pain Point Impact Current Mitigation Severity
PP-1 Audit feedback takes ~3 hours from quote creation Errors discovered late; customer may already have received incorrect quote Goal to reduce to 1-2 hours High
PP-2 Audit is after-the-fact, not a gatekeeper Incorrect quotes can be sent to customers before audit completes Long-term vision: guardrails during creation Medium
PP-3 Manual validation required for all audit results due to false positives Human bottleneck; validators needed for every audit batch Cannot be removed until accuracy improves High
PP-4 No automated feedback for "clean" quotes — only errors flagged Coding specialists don't know if their quote was reviewed and passed N/A Low

6. Business Requirements

6.1 Functional Requirements

FR-1: Improved Data Extraction from Case Requests

ID Requirement Priority Rationale
FR-1.1 The system shall extract product/SKU names, quantities, and billing terms from unstructured case description text with higher accuracy than the current implementation High Addresses PE-1: current AI extraction is not 100% accurate
FR-1.2 The system shall process case attachments (Excel, Word, PDF, email formats) to extract product lists, quantities, and pricing information High Addresses PE-2: 20% of cases have requirements in attachments
FR-1.3 The system shall handle common variations in product naming (abbreviations, misspellings, partial names) and map them to correct Microsoft SKUs Medium Addresses PE-3: free-form text quality issues
FR-1.4 The system shall flag cases where extracted request details have low confidence, rather than treating them as definitive Medium Reduces false positive rate

FR-2: Enhanced Audit Checks

ID Requirement Priority Rationale
FR-2.1 The system shall validate that all products requested (including from attachments) are present in the quote with correct SKU codes High Core item integrity check
FR-2.2 The system shall validate that quoted quantities match requested quantities for each product High Core item integrity check
FR-2.3 The system shall validate that quoted billing terms match requested billing terms High Core item integrity check
FR-2.4 The system shall validate that special cost (supplier cost) on each quote line matches current Metamix/Microsoft pricing for that SKU, term duration, billing plan, segment, and currency High Core supplier cost accuracy check
FR-2.5 For renewal quotes, the system shall validate that all active subscriptions from Partner Center entitlements are included in the quote High Renewal completeness check
FR-2.6 For renewal quotes, the system shall cross-reference against the prior term's quote to verify locked-in pricing consistency High Addresses PD-4: locked-in pricing currently manual
FR-2.7 The system shall validate presence of required headers, disclaimers, and billing information text on quotes Low Secondary check; lower business priority
FR-2.8 The system shall recognize and correctly handle edge cases where a coding specialist substitutes an unavailable billing term and documents the substitution in the quote Medium Addresses PE-4: reduces false positives

FR-3: Data Freshness & Accessibility

ID Requirement Priority Rationale
FR-3.1 Microsoft pricing data used for audit shall be no more than 24 hours stale for CSP programs High Addresses PD-2: monthly refresh is insufficient
FR-3.2 Customer entitlements data shall be refreshed at least daily (current state maintained) High Current daily refresh is adequate
FR-3.3 The system shall support mid-month pricing updates within 24-48 hours of Microsoft publishing changes High Addresses PD-2: mid-month updates create gaps
FR-3.4 The system shall provide a single, authoritative data source for Microsoft pricing accessible to the audit process Medium Addresses PD-3: multiple teams with different data

FR-4: Audit Timeliness

ID Requirement Priority Rationale
FR-4.1 The automated audit check (before manual validation) shall complete within 5-10 minutes of triggering High Per Faizan: "waiting for like 5-10 minutes, that's doable"
FR-4.2 The full audit cycle (including manual validation where needed) shall target completion within 1-2 hours of quote creation High Business target stated by Emmanuel, confirmed by Elizabeth/Barbara
FR-4.3 The system shall reduce the percentage of audit results requiring manual validation (by reducing false positives) High Addresses PP-3: manual validation bottleneck

FR-5: EA Program Support

ID Requirement Priority Rationale
FR-5.1 The system shall support audit of Enterprise Agreement quotes with EA-specific data sources High EA audit work has started; different data needs
FR-5.2 The system shall support EA proration calculations (prorated based on remaining months in agreement) Medium EA-specific pricing logic
FR-5.3 The system shall integrate EA data from VL Central Excel exports (agreement data, special pricing, offering details) High Required for EA audit; API access not available

6.2 Non-Functional Requirements

ID Requirement Priority Rationale
NFR-1 The solution shall be implementable on the existing Azure stack (Fabric, Copilot Studio, Power Automate, Dataverse) or Azure-native extensions High Enterprise platform constraint
NFR-2 The system shall support < 100 concurrent users Low Current scale is ~60 coding specialists; low concurrency confirmed
NFR-3 The system shall maintain an audit trail of all validation checks performed and their results Medium Accountability and process improvement
NFR-4 The system shall not introduce additional steps into the coding specialist's quote creation workflow Medium Emmanuel cautioned about adding steps and SLA impact
NFR-5 The system shall not block or delay quote delivery to customers (audit remains non-gatekeeper) High Explicit requirement from Emmanuel: "audits generally should not be gatekeepers"
NFR-6 The solution shall be extensible to additional Microsoft programs (EES, MPSA) in the future Medium Future scope identified

7. Data Requirements

7.1 Data Sources Required

Source 1: Case Request Data (from Salesforce)

Data Element Field Location Extraction Method Accuracy
Agreement Number / Tenant ID Case dynamic fields Structured field read 100%
Billing Options Case dynamic fields Structured field read 100%
Customer Details Case dynamic fields Structured field read 100%
Sales Organization (1000=CAD, 2000=USD) Case / Opportunity Structured field read 100%
Requested SKUs / Product Names Case.Description AI extraction from free text <100%
Requested Quantities Case.Description AI extraction from free text <100%
Requested Billing Terms Case.Description AI extraction from free text <100%
Attachment Contents ContentVersion.VersionData Document Intelligence + AI Not currently available

Required Information: What are the exact Salesforce field API names for the structured case fields? Is there a custom lookup from Case to Quote or Opportunity?

Source 2: Quote Data (from Salesforce CPQ)

Data Element Object / Field Access Method
Product Code (SKU) SBQQ__QuoteLine__c.SBQQ__ProductCode__c Salesforce REST API / Power Automate
Quantity SBQQ__QuoteLine__c.SBQQ__Quantity__c Salesforce REST API / Power Automate
Special Cost SBQQ__QuoteLine__c — custom field? Salesforce REST API / Power Automate
Sell Price SBQQ__QuoteLine__c.SBQQ__NetPrice__c Salesforce REST API / Power Automate
Start Date / End Date SBQQ__Quote__c.SBQQ__StartDate__c / EndDate Salesforce REST API / Power Automate
Billing Term / Term Duration SBQQ__Quote__c — custom field? Salesforce REST API / Power Automate
Quote Type (Quote/Amendment/Renewal) SBQQ__Quote__c.SBQQ__Type__c Salesforce REST API / Power Automate
SC Agreement linkage Quote → SC Agreement → Tenant ID Salesforce REST API / Power Automate
Quote Line Group headers/memos SBQQ__QuoteLineGroup__c.Name Salesforce REST API / Power Automate

Required Information: What is the exact Salesforce field for "Special Cost" on the quote line? Is it a standard CPQ field (SBQQ__UnitCost__c or SBQQ__SpecialPrice__c) or a custom field? Same question for billing term/subscription term on the quote.

Source 3: Microsoft Pricing (Metamix / Partner Center)

Data Element Current Source Potential API Source Refresh
NCE Product Code, SKU Title, Unit Price, ERP Price Metamixed_CSP_NCE (Fabric) Partner Center Price Sheet API (updatedlicensebased) Monthly → could be daily via API
NCE Term Duration (P1M, P1Y) and Billing Plan (Monthly, Annual) Metamixed_CSP_NCE (Fabric) Partner Center Price Sheet API Monthly → could be daily via API
Perpetual ProductId, SKU Title, Unit Price Metamixed_CSP_Perpetual (Fabric) Partner Center Price Sheet API (software) Monthly → could be daily via API
Legacy pricing Metamixed_CSP_Legacy (Fabric) Unknown if available via API Monthly
Promotional pricing Not in structured data Partner Center GetPromotions API Not available → could be on-demand
Customer-specific special pricing Metamix (Softchoice additions to Microsoft pricing) No API — Softchoice-internal calculations Monthly / ad-hoc

Required Information: Does the Metamix file contain Softchoice-internal calculations (markups, proration formulas) beyond what Microsoft provides? If so, the Partner Center Price Sheet API alone cannot replace Metamix — it would need to be supplemented with Softchoice's internal pricing logic.

Source 4: Customer Entitlements (Partner Center)

Data Element Current Source Potential API Source Refresh
Active subscriptions per tenant CSP_Entitlements (Fabric) Partner Center Subscription API Daily → could be real-time via API
Subscription quantities CSP_Entitlements (Fabric) Partner Center Subscription API Daily → could be real-time via API
Renewal dates, auto-renew status CSP_Entitlements (Fabric) Partner Center Subscription API Daily → could be real-time via API
Scheduled changes (pending reductions) Not available Partner Center Subscription API (scheduledNextTermInstructions) Not available → could be real-time
Billing cycle, term duration CSP_Entitlements (Fabric) Partner Center Subscription API Daily → could be real-time via API

Source 5: Prior Quote Data (for locked-in pricing cross-reference)

Data Element Source Access Method
Prior term quote for same account/agreement Salesforce CPQ SOQL query via SBQQ__Account__c or SBQQ__MasterContract__c
Prior quote line item pricing (Special Cost, Sell Price) SBQQ__QuoteLine__c on prior quote Salesforce REST API
Field Margin % SAP Sales Contract (Conditions tab) OR prior Salesforce quote SAP: VA43 (manual); SFDC: SOQL query

Required Information: Is SAP accessible via REST/OData API for reading Sales Contract conditions, or only via GUI (TCode VA43)? This determines whether Field Margin % lookup can be automated.

Source 6: EA Program Data (future)

Data Element Source Access Method
EA Agreement details VL Central Excel export Manual download → Fabric
EA Special Pricing VL Central Excel export Manual download → Fabric
EA Offering details VL Central Excel export Manual download → Fabric

Required Information: Which specific VL Central reports are needed? Who currently downloads them? Is there API access to VL Central?

7.2 Data Quality Requirements

Data Source Required Accuracy Required Freshness Current Gap
Metamix pricing 100% (authoritative source) Within 24 hours of Microsoft update Monthly refresh; mid-month changes create gaps
CSP Entitlements 100% (authoritative source) Daily (current state acceptable) None — daily refresh is adequate
Case structured fields 100% Real-time None — direct Salesforce read
Case description extraction Target: >95% (improvement over current) Real-time Current accuracy is undocumented but acknowledged as <100%
Attachment extraction Target: >90% (new capability) Real-time Not available today (0%)

7.3 Automated Data Ingestion & Refresh

A critical gap in the current process is the manual, infrequent refresh of reference data. The audit's accuracy depends directly on data freshness. This section defines requirements for automating data ingestion.

7.3.1 Current State: Manual Ingestion

Data Source Current Ingestion Method Refresh Trigger Who Performs Pain Point
CSP Entitlements Daily email with Excel → manual upload to SharePoint → Fabric reads from SharePoint Daily (automated email, semi-manual upload) Unknown (possibly automated) Not fully controlled; depends on email delivery; if email fails, data goes stale
Metamix CSP NCE Grace creates Excel file → saves to SharePoint → Fabric reads Monthly or ad-hoc when Grace is notified of changes Grace (Licensing OPS) Monthly is too infrequent; mid-month changes missed; single person dependency
Metamix CSP Perpetual Same as NCE Monthly Grace Same as NCE
Metamix CSP Legacy Same as NCE Monthly Grace Same as NCE
EA Agreement Data Manual download from VL Central Ad-hoc TBD Not yet integrated; no automation
EA Special Pricing Manual download from VL Central Ad-hoc TBD Not yet integrated; no automation
Salesforce Case/Quote data Power Automate connector (real-time) Event-driven (on quote creation) Automated Adequate — no change needed

7.3.2 Target State: Automated Ingestion Pipelines

FR ID Requirement Priority Target Frequency Feasible Technology
FR-6.1 Microsoft CSP pricing data shall be ingested automatically from Partner Center Price Sheet API into Fabric, replacing or supplementing the manual Metamix upload High Daily (or on-demand when mid-month update detected) Fabric Data Pipeline with REST connector + OAuth2 (App+User auth via Secure Application Model)
FR-6.2 Customer entitlements data shall be ingested automatically from Partner Center Subscription API into Fabric, replacing the email-based Excel process High Daily (full replace, matching current pattern) Fabric Data Pipeline with REST connector; iterate all customers
FR-6.3 Promotional pricing data shall be ingested from Partner Center GetPromotions API into Fabric Medium Weekly or on-demand Fabric Data Pipeline with REST connector
FR-6.4 When a new or updated Metamix file is saved to SharePoint, a pipeline shall automatically trigger to ingest it into Fabric High Event-driven (on file arrival) Power Automate trigger (SharePoint "file created") → Fabric Pipeline REST API → Dataflow Gen2 with SharePoint Folder connector
FR-6.5 EA data from VL Central Excel exports shall be ingested via automated pipeline once files are placed in a designated SharePoint folder Medium Event-driven (on file arrival) or monthly scheduled Same pattern as FR-6.4
FR-6.6 All ingestion pipelines shall implement retry logic (3 retries with exponential backoff) and error notification (Teams/email alert on failure) High N/A Fabric Pipeline activity-level retry + failure branch → notification webhook
FR-6.7 All ingested data shall include audit metadata: _ingestion_timestamp, _source_system, _source_file, _pipeline_run_id Medium N/A Added as columns during pipeline processing
FR-6.8 Pricing data ingestion shall preserve historical snapshots (append with snapshot date) rather than replacing previous data, to enable audit trail and locked-in pricing lookups High Each refresh appends a new snapshot Append mode with snapshot_month partition column

Required Information:

7.3.3 Ingestion Architecture (Target State)

PARTNER CENTER APIs                              SHAREPOINT
  Price Sheet API (monthly/daily) ─────┐           │
  Subscription API (daily) ────────────┤           │ Metamix file uploaded
  GetPromotions API (weekly) ──────────┤           │ VL Central exports
                                       ▼           ▼
                              ┌─────────────────────────┐
                              │  FABRIC DATA PIPELINES   │
                              │                          │
                              │  REST → Notebook/Copy    │
                              │  SharePoint → Dataflow   │
                              │  Salesforce → Copy Job   │
                              │                          │
                              │  + Retry logic           │
                              │  + Error notifications   │
                              │  + Audit metadata        │
                              └────────────┬────────────┘
                                           ▼
                              ┌─────────────────────────┐
                              │   BRONZE LAYER (raw)     │
                              │   Append-only with       │
                              │   snapshot metadata      │
                              └────────────┬────────────┘
                                           ▼
                              ┌─────────────────────────┐
                              │   SILVER LAYER           │
                              │   Cleansed, conformed,   │
                              │   deduplicated           │
                              └────────────┬────────────┘
                                           ▼
                              ┌─────────────────────────┐
                              │   GOLD LAYER             │
                              │   Star schema,           │
                              │   SCD Type 2 dimensions, │
                              │   Pricing audit trail    │
                              └─────────────────────────┘

7.4 Database Structure Optimization

The current Fabric Lakehouse (Lakehouse 100) uses a flat table structure with 4 tables — essentially raw data loaded directly from source files. This structure has limitations for cross-program auditing, historical pricing lookups, and AI consumption.

7.4.1 Current Structure Limitations

# Limitation Impact on Audit
DS-1 Flat tables with no dimensional model — each Metamix table is an independent silo Cannot easily cross-reference pricing across programs (CSP NCE vs Perpetual vs Legacy vs EA)
DS-2 Full-replace refresh — no historical pricing retained Cannot perform locked-in pricing lookups ("What was the price 3 months ago?")
DS-3 No product dimension — product SKUs duplicated across tables with inconsistent naming AI agents and audit logic must handle SKU matching per table rather than using a unified product key
DS-4 No customer dimension — customer/tenant info only in entitlements table Cannot efficiently link a customer's entitlements to their pricing tier and quote history
DS-5 Lakehouse 100 not accessible org-wide Other teams cannot leverage or contribute to the data
DS-6 No semantic layer — raw table schemas are not AI-friendly AI agents must understand raw column names and join logic rather than business concepts

7.4.2 Target Structure: Medallion Architecture with Dimensional Model

FR ID Requirement Priority Rationale
FR-7.1 Reference data shall be organized in a Bronze → Silver → Gold medallion architecture within Fabric Lakehouse High Industry standard for data quality progression; enables separate concerns for raw ingestion, cleansing, and business-ready consumption
FR-7.2 The Gold layer shall implement a star schema dimensional model with conformed dimensions shared across all Microsoft programs High Enables cross-program auditing, unified product/customer views, and efficient analytical queries
FR-7.3 Product pricing dimensions shall implement SCD Type 2 (Slowly Changing Dimensions) with effective_from, effective_to, and is_current columns High Enables point-in-time pricing lookups critical for locked-in pricing validation and audit trail
FR-7.4 A pricing audit trail table shall retain monthly (or per-refresh) snapshots of all pricing data, partitioned by snapshot_month High Provides immutable audit trail; enables "What was the price on date X?" queries
FR-7.5 The data model shall be migrated to Lakehouse 200 (Medallion/org-wide) for cross-team accessibility Medium Enables other teams to consume and contribute to the Microsoft data library
FR-7.6 The model shall support extensibility to additional Microsoft programs (EA, EES, MPSA) without restructuring existing tables Medium Avoids rework when new programs are added

7.4.3 Proposed Dimensional Model (Gold Layer)

Conformed Dimensions (shared across all programs):

Dimension Key Fields Sources SCD Type
dim_product product_sk (surrogate), product_id, sku_id, sku_title, publisher, unit_of_measure, program_type Metamix (all programs), Partner Center Price Sheet Type 2 (name/description changes tracked)
dim_customer customer_sk (surrogate), tenant_id, company_name, domain, country, segment CSP Entitlements, Partner Center Customer API Type 2 (segment/country changes tracked)
dim_date date_key, full_date, year, month, day, fiscal_quarter, is_month_end Generated Type 0 (static)
dim_program program_sk, program_code (CSP_NCE, CSP_PERP, CSP_LEGACY, EA, EES, MPSA), program_name Manual reference Type 1 (rarely changes)
dim_billing_term billing_sk, term_duration (P1M, P1Y, P3Y), billing_plan (Monthly, Annual), description Derived from Metamix/Price Sheet Type 1

Fact Tables:

Fact Table Grain Key Measures Sources
fact_pricing_snapshot One row per product × program × billing term × segment × currency × snapshot_date unit_price, erp_price, effective_start, effective_end Metamix files, Partner Center Price Sheet API
fact_entitlements One row per customer × subscription × snapshot_date quantity, status, auto_renew_enabled, commitment_end_date, renewal_date CSP Entitlements, Partner Center Subscription API
fact_audit_results One row per quote × audit check check_type, result (pass/fail/review), confidence_score, details_json Audit automation output

Decision/Rule Tables:

Table Purpose Format
ref_audit_rules Machine-executable audit validation rules JSON rules with conditions, actions, and natural-language ai_context descriptions
ref_discount_tiers Lookup table for discount tier thresholds Tabular (program, customer_tier, max_discount_pct, approval_required)
ref_promo_pricing Active promotional pricing details Tabular (promo_id, product_id, discount_pct, effective_from, effective_to)

Required Information:

7.5 AI-Ready Data Storage

If AI agents are to be used for extraction, validation, and rule interpretation, the data must be stored in formats that AI can effectively consume. This requires three categories of data storage beyond traditional relational tables.

7.5.1 Three Categories of AI-Consumable Data

Category A: Structured reference data (pricing, entitlements, rules)

Category B: Unstructured knowledge (SOPs, business rules documentation, edge case guidance)

Category C: Semi-structured business rules (executable audit rules with AI context)

7.5.2 Requirements

FR ID Requirement Priority Rationale
FR-8.1 A Power BI semantic model shall be created over the Gold layer tables, providing business-friendly names, measures, and relationships that AI agents can query High Fabric Data Agents use semantic models for DAX generation from natural language; raw table schemas are not AI-friendly
FR-8.2 SOP documents and business rules documentation shall be stored in OneLake and indexed in Azure AI Search with vector embeddings for semantic retrieval High Enables RAG: AI agents retrieve relevant SOP passages when reasoning about audit checks, edge cases, and exceptions
FR-8.3 Audit validation rules shall be stored in a dual-format: JSON for machine execution and natural-language descriptions for AI grounding Medium Deterministic rules ensure consistent audit results; AI context enables intelligent exception handling
FR-8.4 The system shall maintain a Fabric IQ Ontology defining key business entities (Product, Customer, Program, PricingTier, Subscription) and their relationships Medium Gives AI agents semantic understanding of business concepts rather than just table schemas; enables natural-language queries across the data model
FR-8.5 Historical pricing snapshots shall be queryable by AI agents to support locked-in pricing lookups ("What price did customer X pay for SKU Y in their last term?") High Core requirement for automating the locked-in pricing check currently done manually
FR-8.6 The SOP index shall be kept in sync with source documents — when SOPs are updated, the AI Search index shall automatically re-index Medium Stale SOP index leads to AI agents using outdated procedures

7.5.3 AI-Ready Architecture

┌────────────────────────────────────────────────────────────────────┐
│                    AI CONSUMPTION LAYER                             │
│                                                                    │
│  ┌──────────────┐  ┌──────────────┐  ┌───────────────────────┐    │
│  │ Copilot      │  │ Foundry      │  │ Custom Agents         │    │
│  │ Studio Agent │  │ Agent Service│  │ (Azure Functions)     │    │
│  └──────┬───────┘  └──────┬───────┘  └───────────┬───────────┘    │
│         │                 │                       │                │
│         ▼                 ▼                       ▼                │
│  ┌────────────────────────────────────────────────────────────┐    │
│  │              FOUNDRY IQ (Unified Retrieval)                │    │
│  │     Federates across all knowledge sources below           │    │
│  └──────────────┬─────────────────┬───────────────┬──────────┘    │
│                 │                 │               │                │
│                 ▼                 ▼               ▼                │
│  ┌──────────────────┐ ┌────────────────┐ ┌──────────────────┐    │
│  │ FABRIC DATA      │ │ AZURE AI       │ │ FABRIC IQ        │    │
│  │ AGENT            │ │ SEARCH INDEX   │ │ ONTOLOGY         │    │
│  │                  │ │                │ │                  │    │
│  │ Queries Gold     │ │ Vector index   │ │ Business entity  │    │
│  │ layer tables     │ │ of SOPs,       │ │ definitions,     │    │
│  │ via semantic     │ │ rules docs,    │ │ relationships,   │    │
│  │ model (DAX)      │ │ edge cases     │ │ vocabularies     │    │
│  └────────┬─────────┘ └───────┬────────┘ └────────┬─────────┘    │
│           │                   │                    │              │
└───────────┼───────────────────┼────────────────────┼──────────────┘
            │                   │                    │
            ▼                   ▼                    ▼
┌──────────────────┐ ┌────────────────────┐ ┌──────────────────┐
│ GOLD LAYER       │ │ ONELAKE FILES      │ │ GOLD LAYER       │
│ (Delta Tables)   │ │                    │ │ (Ontology def.)  │
│                  │ │ SOPs (.md/.pdf)    │ │                  │
│ dim_product      │ │ Business rules     │ │ Entity mappings  │
│ dim_customer     │ │ Edge case docs     │ │ to tables and    │
│ fact_pricing_*   │ │ Training materials │ │ columns          │
│ ref_audit_rules  │ │                    │ │                  │
└──────────────────┘ └────────────────────┘ └──────────────────┘

     Category A:              Category B:            Category C:
     Structured Data          Unstructured Knowledge  Semantic Model

7.5.4 SOP Storage Recommendations

The 14 SOP documents currently in SOP_Information/ represent critical business knowledge that AI agents need for reasoning. To make them AI-consumable:

Recommendation Details
Store in Markdown format Already the case; Markdown chunks well and preserves structure
Add structured metadata headers Each SOP should have YAML frontmatter: program, category (quoting/ordering/offboarding), effective_date, version
Host in OneLake Files section Centralizes with other Fabric data; enables OneLake indexer
Index in Azure AI Search OneLake Files indexer (GA) auto-detects changes and re-indexes; integrated vectorization handles chunking and embedding
Section-aware chunking Configure indexer to chunk by headings (H2/H3) to keep logical sections together

Required Information:


8. Stakeholders

Role Name(s) Responsibility
Executive Sponsor Barbara Kochman Strategic direction, funding advocacy, executive alignment
Executive Decision Makers Doug (TBD surname), Matt (TBD surname), Al (TBD surname) Investment approval
Business Owner (Audit Process) Emmanuel Eraikhuemen Process requirements, audit SLA, operational decisions
Technical Lead (Emerging Tech) Faizan Ahmad Current implementation owner, data architecture, Copilot Studio agent
Solution Architect Kelvin Duan Solution design, technology evaluation, architecture
Solution Architect Zang Nguyen Solution design, API evaluation
Coding Specialists (~60) Licensing OPS teams End users (quote creators); impacted by process changes
Manual Validators TBD (couple of people per Emmanuel) Review audit results; impacted by accuracy improvements
Data Team Elizabeth's team (Sang, Richard) Lakehouse 200 migration, centralized Microsoft data
Pricing Data Owner Grace (Licensing OPS) Metamix file creation and distribution
Business Stakeholders Elizabeth, Caitlin EA expansion, business requirements

Required Information: Full names and roles for Doug, Matt, Al (executive decision makers). Names of manual validators. Confirmation of Elizabeth's last name and exact team.


9. Constraints

# Constraint Impact
C-1 Solution must be implementable on Azure platform (Fabric, Copilot Studio, Power Automate ecosystem) Limits technology choices to Azure-native services
C-2 Most Microsoft data accessible only via Excel exports, not APIs Limits real-time data freshness for EA/Legacy programs; CSP data may be accessible via Partner Center API (needs verification)
C-3 Audit must remain non-blocking (not a gatekeeper for quote release) Cannot enforce mandatory audit pass before quote delivery
C-4 No changes to coding specialist workflow (they don't interact with audit directly) Solution enhancement is backend; no UI changes to their quote creation process
C-5 Copilot Studio is the current agent platform; changes to agent platform require justification Enhancement should build on existing investment where possible
C-6 Partner Center App+User MFA enforcement begins April 1, 2026 Any API integration must use Secure Application Model by this date
C-7 Billing API v1 deprecated for NCE data March 15, 2026 Billing reconciliation must use v2 on Microsoft Graph
C-8 Investment proposal required for remaining scope Full implementation dependent on funding approval

10. Assumptions

The following are assumed to be true and should be confirmed by the business team:

# Assumption Risk if Invalid
A-1 A Salesforce Connected App or API integration user already exists (Power Automate currently reads/writes SFDC) Would need to provision API access; adds timeline
A-2 Azure AI services (Azure OpenAI, Document Intelligence) can be provisioned in the same Azure tenant as existing Fabric/Copilot Studio If restricted by policy, would need separate tenant or approval process
A-3 Partner Center API credentials (App registration) are obtainable from the Microsoft partnership admin team at Softchoice If not possible, API-based data refresh is blocked
A-4 The team has Power Automate Premium licenses (required for HTTP and custom connector actions) Standard license connectors may be insufficient for API calls
A-5 The Metamix file is the authoritative source for supplier cost validation (not a derived or secondary source) If another source is authoritative, audit logic needs adjustment
A-6 The current Copilot Studio agent, Power Automate flows, and Fabric tables are accessible for review and enhancement If built by a different team with restricted access, onboarding time increases
A-7 SAP Sales Contracts are only accessible via GUI (TCode VA43), with no REST/OData API exposed If SAP API exists, Field Margin % automation becomes feasible
A-8 The coding specialists' SOP documents provided are current and reflect actual process If outdated, requirements may be based on inaccurate process understanding
A-9 Case descriptions in SFDC are in English (for AI extraction purposes) If bilingual (English/French), extraction model needs multilingual support
A-10 The daily CSP Entitlements email/Excel originates from a Microsoft Partner Center API call configured by Softchoice IT If Microsoft sends it independently, refresh frequency is not controllable

11. Dependencies

# Dependency Dependency Owner Impact if Delayed
D-1 Scope Item #4 (Data Integration & Quality) architecture design underway IT Architecture team Audit accuracy depends on correct pricing data flowing into the system
D-2 Lakehouse 200 migration (Medallion architecture) Elizabeth's data team (Sang, Richard) Org-wide data access blocked until migration; limits cross-team data sharing
D-3 EA data source identification and download automation Faizan / Licensing OPS EA audit cannot proceed without agreement, pricing, and offering data from VL Central
D-4 Investment proposal approval by executive decision makers Barbara / Doug / Matt / Al Full scope implementation dependent on funding
D-5 Coding specialist SOP and validator SOP availability Emmanuel Needed for AI agent training and audit rule definition
D-6 Softchoice Azure tenant permissions for AI service provisioning IT Infrastructure team Azure OpenAI, Document Intelligence provisioning blocked if not approved

12. Success Criteria & KPIs

12.1 Primary KPIs

KPI Current Baseline Target Measurement Method
Audit feedback time (automated check) ~3 hours 5-10 minutes (automated), 1-2 hours (with manual validation) Timestamp: quote creation → audit result available
False positive rate (audit flags error that isn't one) Not measured (acknowledged as "not 100%") <10% of flagged items Manual validator override tracking
Case coverage (% of cases fully auditable) ~80% (attachments excluded) >95% (including attachment processing) Cases with complete audit / total cases
Extraction accuracy (AI correctly identifies requested items from case) Not formally measured >95% for SKU, quantity, billing term Comparison of AI extraction vs manual review sample

12.2 Secondary KPIs

KPI Current Baseline Target Measurement Method
Manual validation effort ~100% of audit results reviewed <30% requiring manual review % of results auto-approved (high confidence)
Data freshness (pricing) Monthly (Metamix) Daily or better Time between Microsoft pricing change and Fabric update
EA program audit coverage 0% (not yet implemented) Parity with CSP audit checks EA quotes audited / total EA quotes
Locked-in pricing check coverage 0% (manual) Automated for all renewal quotes Renewal quotes with automated price history check

12.3 Success Criteria for Business Validation (this milestone)

This BRD milestone is considered successful when the business team confirms:


13. Risks

# Risk Likelihood Impact Mitigation
R-1 Partner Center API access may not be approved or may require lengthy onboarding Medium High — blocks API-based data freshness improvement Identify API admin early; if blocked, continue with improved Excel refresh process
R-2 AI extraction accuracy may not reach >95% target for unstructured case text Medium Medium — false positive rate remains high, manual validation still needed Use structured output constraints, SOP-trained prompts, human-in-the-loop for low-confidence results
R-3 Metamix contains Softchoice-internal pricing logic that cannot be replicated from Partner Center API alone High Medium — API cannot fully replace Metamix; still need internal pricing source Clarify Metamix composition with Grace/Licensing OPS; design hybrid approach
R-4 Funding for full scope may not be approved Medium High — limits implementation to incremental improvements only Prioritize quick wins (attachment processing, API data refresh) that demonstrate value
R-5 EA data sources (VL Central) may not be accessible programmatically High Medium — EA audit remains Excel-dependent Accept Excel-based approach for EA; focus API improvements on CSP
R-6 SAP Field Margin % remains inaccessible via API High Medium — locked-in pricing check cannot be fully automated Use Salesforce prior quote lookup (Method 2) as primary approach; SAP as fallback
R-7 Copilot Studio 64K token context window may be insufficient for complex audit reasoning Medium Medium — limits ability to process large quotes or multiple attachments in single session Offload complex processing to Azure AI Foundry Agent Service or Azure Functions
R-8 Mid-month pricing changes occur within the data refresh window Medium Low — brief period of stale pricing causes false positives Implement on-demand pricing refresh capability; API polling for price changes
R-9 Medallion architecture / dimensional model redesign conflicts with Elizabeth's data team plans Medium Medium — parallel or conflicting data models create confusion Align with data team early; use their naming conventions and governance policies
R-10 Single-person dependency (Grace) for Metamix file creation blocks automated ingestion High High — if Grace is unavailable, pricing data goes stale even with automation on the ingestion side Automate the Metamix creation process itself, or supplement with direct Partner Center API
R-11 Azure AI Search provisioning or licensing not available Medium High — blocks RAG-based SOP grounding, a key capability for AI agent accuracy Confirm Azure AI Search availability early; if blocked, fall back to simpler prompting approaches
R-12 SOP documents are outdated or incomplete for AI training Medium Medium — AI agents grounded on incorrect SOPs will produce incorrect audit decisions Validate SOPs with business team; establish SOP governance and update cycle

14. Required Information — Pending Business Team Input

The following items are critical for progressing to the Option Analysis milestone. Items marked with [BLOCKER] prevent meaningful solution design without an answer.

14.1 Data & System Access

# Question Why It Matters Who Can Answer
RI-1 [BLOCKER] What is the exact composition of the Metamix file? Does it contain only Microsoft pricing, or does Softchoice add internal calculations (markups, proration formulas, internal SKU mappings)? Determines whether Partner Center Price Sheet API can replace Metamix or if a hybrid approach is needed Grace (Licensing OPS) / Faizan
RI-2 What are the exact Salesforce custom field API names for Special Cost, Supplier Cost, and Billing Term on the quote line? Needed to map the correct data fields for audit validation Faizan / Salesforce Admin
RI-3 How are Cases linked to Quotes in Salesforce? Custom lookup field on Case? Via Opportunity? Needed to design the data retrieval flow Faizan / Salesforce Admin
RI-4 Is SAP accessible via REST or OData API, or only via GUI (TCode VA43)? Determines if Field Margin % lookup can be automated IT / SAP Admin
RI-5 Does Softchoice have (or can obtain) Partner Center API credentials (App registration with Admin Agent or Sales Agent role)? Determines if API-based data refresh is feasible Zang / IT / MS Partnership Admin
RI-6 Who configured the daily CSP Entitlements email from Partner Center? Is it an API call or a Microsoft-managed export? Determines if refresh frequency and content can be controlled IT / Faizan

14.2 Process & Requirements

# Question Why It Matters Who Can Answer
RI-7 What is the current accuracy rate of the Copilot Studio AI extraction, broken down by check type (SKU, quantity, billing term)? Baseline needed to measure improvement Faizan / Emmanuel
RI-8 What percentage of audit results currently require manual validation override (false positive rate)? Baseline for KPI measurement Emmanuel / Validators
RI-9 Are case descriptions always in English, or can they be bilingual (English/French)? AI extraction model may need multilingual support Emmanuel / Coding Specialists
RI-10 What specific audit checks are needed for EA beyond CSP? Are proration calculations and agreement-level pricing tiers the main additions? Needed to scope EA requirements Faizan / Emmanuel / EA specialists
RI-11 [BLOCKER] Should sell price / markup validation be included in this project's audit scope, or does it remain solely with Scope Item #1? Fundamentally changes the scope and data requirements Barbara / Emmanuel
RI-12 Is there a validator SOP (Emmanuel mentioned it's being developed)? Can we get a copy? Needed to understand validation decision rules for automation Emmanuel

14.3 Architecture

# Question Why It Matters Who Can Answer
RI-13 Can we access and review the current Copilot Studio agent configuration, Power Automate flows, and Dataverse schema? Needed for enhancement design — build on vs. rebuild decision Faizan
RI-14 Are Azure AI services (Azure OpenAI, Document Intelligence) available in the Softchoice Azure tenant, or do they need to be provisioned? Determines timeline for technology-dependent enhancements IT / Cloud Infrastructure
RI-15 What is the current Power Automate license tier? Premium required for HTTP and custom connector actions. Determines if additional licensing is needed IT

14.4 Data Platform & Ingestion

# Question Why It Matters Who Can Answer
RI-16 What Fabric capacity SKU and licensing does Softchoice currently have? Can it support Data Pipelines with REST connectors and Notebook activities? Determines if automated API-based ingestion is feasible without additional licensing IT / Fabric Admin
RI-17 Is the daily CSP Entitlements email an automated API call controlled by Softchoice, or a Microsoft-managed export? Can it be replaced with direct API calls? Determines if entitlements refresh frequency and content can be improved IT / Faizan
RI-18 What is the mapping between Lakehouse 100 / Lakehouse 200 and the Fabric workspace structure at Softchoice? Separate workspaces, capacities, or naming convention? Needed to plan medallion architecture migration and org-wide data sharing Elizabeth's team / Fabric Admin
RI-19 Does Elizabeth's data team already have a target dimensional model, naming conventions, or governance policies for Lakehouse 200? Ensures alignment — avoid building a parallel model that conflicts with org-wide plans Elizabeth / Sang / Richard
RI-20 Are there additional business rules, edge case documentation, or decision guides beyond the 14 SOPs that auditors reference when validating results? Needed to define the complete AI knowledge base for RAG grounding Emmanuel / Validators
RI-21 [BLOCKER] Is Azure AI Search available (or provisionable) in the Softchoice Azure tenant? What tier? Basic tier or higher is required for vector search. Without vector search, RAG-based SOP grounding for AI agents is not feasible IT / Cloud Infrastructure

15. Glossary

Term Definition
AE Account Executive (seller who creates case requests)
Coding Specialist Operations team member who creates quotes in Salesforce CPQ based on case requests
Copilot Studio Microsoft's low-code agent building platform used for the current audit automation
CPQ Configure, Price, Quote — Salesforce module for quote management
CSP Cloud Solution Provider — Microsoft partner program for reselling cloud services
EA Enterprise Agreement — Microsoft volume licensing program
EES Enrollment for Education Solutions — Microsoft licensing for education
Entitlements Customer's active subscriptions and license counts in Microsoft Partner Center
Fabric Microsoft Fabric — unified analytics platform including data lakehouse
GDAP Granular Delegated Admin Privileges — partner access to customer tenants
Lakehouse Data storage layer in Microsoft Fabric (100 = silver/basic, 200 = Medallion/org-wide)
Foundry IQ Microsoft's unified agentic knowledge retrieval system built on Azure AI Search; federates RAG across multiple data sources
Locked-in Pricing Customer receives the same price on subsequent purchases of the same subscription
Medallion Architecture Data organization pattern with Bronze (raw), Silver (cleansed), and Gold (business-ready) layers
Metamix Softchoice-maintained pricing file combining Microsoft special pricing with internal calculations
MPSA Microsoft Products and Services Agreement — volume licensing program
NCE New Commerce Experience — Microsoft's current commerce platform for CSP
Partner Center Microsoft's portal for CSP partners to manage customers, subscriptions, and billing
SC Agreement Softchoice Agreement — contract record in Salesforce linking customer to tenant/program
SFDC Salesforce.com
SKU Stock Keeping Unit — unique identifier for a specific product/license configuration
SOP Standard Operating Procedure
Special Cost The price Microsoft charges Softchoice (supplier cost), as distinct from the sell price to customer
SPE Special Price Engine — Salesforce mechanism for automated pricing
RAG Retrieval Augmented Generation — AI pattern where relevant documents are retrieved and provided as context to an LLM before generating a response
SCD Type 2 Slowly Changing Dimension Type 2 — dimensional modeling technique that preserves history by creating new rows when attributes change, with effective_from/to dates
Semantic Model Power BI metadata layer over Lakehouse/Warehouse tables defining measures, relationships, and business-friendly names
Vector Embedding Numerical representation of text enabling semantic similarity search; used by Azure AI Search for RAG
VL Central Microsoft Volume Licensing Service Center — portal for EA/MPSA data

16. References

# Document Location
1 Microsoft CPQ Accuracy Controls (Jan 16, 2026) Project Backgroud/Background_Microsoft CPQ Accuracy Controls 20260116.md
2 Connect on MS Quote Auditing Meeting Transcript (Feb 6, 2026) Project Backgroud/Meeting_Connect on MS Quote Auditing.md
3 Quote Audit - CSP - MS Fabric New Tables Project Backgroud/Current_Data_Structure_Quote Audit - CSP - MS Fabric New Tables.md
4 SOP: CSP NCE Quotes SOP_Information/SOP_Quotes_CSP NCE Quotes - Training Deck and SOP.md
5 SOP: CSP Perpetual Quotes SOP_Information/SOP_Quotes_CSP Perpetual Quotes - Training Deck and SOP.md
6 SOP: CSP Renewal Quoting SOP_Information/SOP_Quotes_CSP Renewal Quoting - SOP.md
7 SOP: CSP Checklist SOP_Information/SOP_CSP Checklist.md
8 SOP: CSP Post-Renewal SOP_Information/SOP_Orders_CSP Post-Renewal SOP.md
9 SOP: CSP Order Process SOP_Information/SOP_CSP Order Process - Training Deck and SOP.md
10 SOP: CSP Contracts SOP_Information/SOP_Contracts_CSP NCE Contract Process - Training Deck and SOP.md
11 SOP: SAP Material Add SOP_Information/SOP_SAP Material Add - Training Deck and SOP.md
12 SOP: Decrease Licenses SOP_Information/SOP_Training Deck and SOP Template - Decrease Licenses.md
13 SOP: CSP Bulk Import SOP_Information/SOP_CSP Bulk Import - Training Deck and SOP.md
14 SOP: CSP GDAP Checks SOP_Information/SOP_CSP GDAP Checks in Partner Center - Training Deck and SOP.md
15 SOP: CSP Offboarding SOP_Information/SOP_CSP Offboarding - Training Deck and SOP.md
16 SOP: Azure CSP Offboardings SOP_Information/SOP_Azure CSP Offboardings.md
17 SOP: Partner to Partner Transfer SOP_Information/SOP_Partner to Partner Transfer - Training Deck 1.md

End of Document