Project TPA · Saudi Arabia healthcare TPA ERP

TPA Platform Blueprint Plan

How we will analyse, design and document the TPA product before any code is written: the decisions that shape it, the scope of each phase, and the order in which the 24-document blueprint package gets produced for management sign-off.

Status Draft for management review Prepared 4 Oct 2026 Stage Pre-development, no application code Source brief GPT_Prompt.txt
BUSINESS CONFIRMATION REQUIRED answer needed from TPA, IC, client or regulator ARCHITECTURE DECISION REQUIRED needs an ADR and sign-off EXTERNAL VALIDATION REQUIRED verify against NPHIES, CHI, IA, NCA, SDAIA or ZATCA source

01Executive summary

We will build TPA, a separate product from OptimaX, for Third Party Administrators and for insurance companies that outsource medical administration in Saudi Arabia. The Saudi market currently has very few licensed medical TPAs. Our OptimaX team already runs pre-authorization and claims adjudication through NPHIES, plus provider and client portals, in production. That experience is the main head start. It is also the main risk, because an insurer's workflows assume the system owns the risk, the premium and the policy, and a TPA owns none of those.

Two requirements shape every layer and are not deferred: (1) one TPA serves 10–15+ insurance companies at the same time, with Insurance Company as a first-class key on every transaction, every rule, every report and every ledger; (2) claims volume grows from millions to potentially billions of records over the platform's life, so claims processing is asynchronous, queue-driven and partition-ready from day one.

Recommended approach

  • Architecture: .NET modular monolith for the core business domains, with independently scalable background workers (adjudication, NPHIES gateway, batch intake, notifications, documents, SLA timers) connected through a message broker. Split into services only where load or release cadence justifies it. ARCHITECTURE DECISION REQUIRED
  • Configuration over code: benefits, adjudication edits, authorization rules, tariffs, SLAs and fee models are versioned, effective-dated data scoped to Insurance Company, so onboarding IC number 12 is a configuration project, not a release.
  • MVP: one pilot TPA, 1–3 insurance companies, full eligibility → pre-authorization → claim → adjudication → settlement-instruction loop through NPHIES and the provider portal, with client portal, core reports, roles and audit. Proposed elapsed time to first production go-live: 12–15 months with a team of about 28 (proposed estimate, depends on discovery answers).
  • Working method: discovery questions first, then vision and scope, then architecture and BRD, then the gap analysis and a final consistency review. Development starts only after management approves the blueprint.

02Insurance company ERP vs TPA ERP

The single most important distinction in the blueprint. Every module will be checked against this table in the final review so that no insurer-only feature leaks into the TPA product.

DimensionInsurance company ERP (OptimaX)TPA ERPDesign consequence
Risk ownershipCarries underwriting risk, reserves, solvency, reinsuranceCarries no insurance risk; carries operational and contractual (SLA) riskNo reserving, IBNR, reinsurance or solvency modules
PremiumRates, quotes, bills and collects premiumNo premium. Earns administration fees: per member per month, per claim, % of claims paid, or fixedPremium engine replaced by a TPA fee engine
Policy issuanceQuotation → underwriting → policy → endorsementsReceives the policy and scheme from the IC as reference data; never issues"Policy / Scheme Reference" module: imported, versioned, read-mostly
Member administrationMember changes are endorsements with premium impactAdds, deletes and changes members on the IC's behalf; no pricing; must stay in sync with the IC's registerEnrollment without endorsement pricing; IC member reconciliation BUSINESS CONFIRMATION REQUIRED
Provider networkThe insurer's own networkOften the TPA's main commercial asset: one network serving many ICs, with IC-specific tiersNetwork is shared across ICs; scheme selects a network tier
Provider contractingInsurer contracts providers directlyTPA contracts for itself or on behalf of a specific IC; tariffs may be TPA-wide or IC-specificContract carries an owner (TPA or IC) and an IC applicability list BUSINESS CONFIRMATION REQUIRED
Pre-authorizationInsurer decidesTPA decides inside a delegated-authority limit per IC; above it, escalates to the ICDelegated-authority matrix per IC, service and amount
Claims adjudicationSingle rule set for one bookMany rule sets at once, one per IC (and per contract/scheme); some claims need IC approvalRule resolution by IC; "Payer Approval" state in the claim machine
Medical codingNational code sets and editsSame code sets, plus IC-specific coding edits and exclusionsShared reference codes, IC-scoped edit rules
Fraud, waste, abuseProtects the insurer's loss ratioContractual service to the IC; findings are reported to and decided with the ICFWA cases visible to the owning IC; recoveries credited to the IC ledger
Provider settlementPays from its own fundsPrepares payment; funds belong to the IC (or a self-funded client). TPA may or may not execute paymentSeparate "payment instruction" from "payment execution" BUSINESS CONFIRMATION REQUIRED
Client billingPremium invoices to policyholdersFee invoices to ICs; claim-fund recharges where the TPA manages a fundFee invoicing with VAT e-invoicing EXTERNAL VALIDATION REQUIRED
Insurer settlementNot applicablePeriodic statement per IC: claims paid, recoveries, fees, fund balanceIC-wise sub-ledger and statements
Member servicesUnder the insurer's own brandUnder the IC's brand (white-label) or the TPA's brand, per contractMulti-brand card, app and portal BUSINESS CONFIRMATION REQUIRED
SLAInternal KPIs plus regulator timelinesContractual SLAs per IC with reporting and possible penaltiesSLA engine with per-IC calendars, clocks and breach reports
NPHIESRegistered as a payerReceives transactions as a TPA acting for multiple payersOne gateway, multi-payer routing EXTERNAL VALIDATION REQUIRED
Utilization managementFor its own bookA sellable service, reported per IC and per corporate clientUM analytics scoped by IC and client
Medical managementCase and disease management for own membersDelegated service only where contractedOptional module (Phase 3)

03What we reuse from OptimaX

Based on a read-only review of E:\SALAMA\OptimaX_Unified (Angular Salama_OptimaX, API Salama_OptimaX_Api). Here "reuse" means domain knowledge, screens, stored-procedure logic and shared libraries used as a starting point. TPA is a new codebase, built for many insurers and high volume from the start. The OptimaX databases could not be reached during the review, so the table structures and claim status values still need checking. BUSINESS CONFIRMATION REQUIRED

What OptimaX has todayWhereTreatment
Angular 21 + PrimeNG 21, ngx-translate with Arabic and EnglishSalama_OptimaX/src/app/common, module_sharedREUSE Shell, shared components and i18n become the TPA design-system starting point
.NET 8 modular monolith, Dapper and stored procedures, IDbHelper / ConnProviderOptimaX.SharedADAPT Keep the module pattern. Move to .NET 10 LTS, because .NET 8 support ends in November 2026.
JWT, [Permission] attribute, user data scope (SELF / OFFICE / REGION / COUNTRY)Modules/Admin, tblUsers_ScopeADAPT Add an Insurance Company scope dimension. Add the missing refresh token, interceptor and real route guard.
Document module (files on disk, metadata in SQL)Modules/DocumentsADAPT Swap the local provider for object storage and add a virus scan
Pre-authorization and claims screens, adjudication, re-adjudication, provider batching, price calculation incl. ClaimPriceCalctpaClaimsLib (Approvals.cs, Claims.cs), SPME_ClaimAdjudication, SPME_ApprovalAdjudicationADAPT · logic reference Mine the stored procedures for rules. Rebuild them as a queue-driven, versioned rule engine scoped by IC.
MRE / PBM validation (external medical and pharmacy rule services)MedicalRuleEngineLibADAPT Keep as a pluggable step in the claims pipeline (step 7). Review the licence for TPA use. BUSINESS CONFIRMATION REQUIRED
Outbound NPHIES calls through a separate gateway (pre-auth, advance pre-auth, communication, claim decisions)CommonClass.GetNphiesLinks, Spme_UpdateNphiesResponseREDESIGN OptimaX does not receive or parse FHIR itself. For TPA the gateway has to be built or sourced, and it must route to multiple payers.
Provider master, contracts, discounts, service price lists, networksProviderController, MasterController (NetworkMasterNew)ADAPT Add contract ownership (TPA or IC), tariff versions and network tiers shared by several ICs
Benefit and coverage masters, plan templates, class eligibility, ICD and specialty mastersMasterController, SPME_GetPlanDetails*ADAPT Becomes the starting point for scheme templates and the benefit engine
TPA fee setup, TPA claim screens, TCS integrationTPAFeeSetup, tpaclaim-enquiry, IntegrationControllerREFERENCE Shows how an insurer works with a TPA today. Useful for the IC-side interface spec.
Client portal, online/member portal (reimbursement, complaints)module_client, module_onlineADAPT Drop the purchase and payment journeys. Add utilization, SLA, fee invoices and the digital card.
SMS (Cequens), Yakeen/CCHI, ZATCA invoicing, SignalR notificationsCequensSMSLibrary, YakeenLib, PaymentLib, NotificationHubREUSE Shared integration libraries. Yakeen currently hard-codes CompanyId 115, so that must become per-IC.
Quotation, corporate quote, premium and loading, renewalsQuoteController, CorporateQuoteController, RenewalControllerDROP Not a TPA function
Policy issuance, endorsementsPolicyController, EndorsementControllerREPLACE Replaced by Policy / Scheme Reference and by enrollment changes that carry no premium
Reinsurance, treaty posting, UPR, Sadad / PayFort premium collectionmodule_reinsurance, PaymentControllerDROP These stay with the insurer

Patterns we will not carry over, because they block the volume and multi-insurer requirements:

  • Everything runs synchronously inside the request: about 122 blocking .Result calls, and a new HttpClient per call.
  • There is no queue, outbox or idempotency, and a failed NPHIES call needs a manual resend.
  • Adjudication logic lives in stored procedures, which makes it hard to test or scale out.
  • There is no tenant or payer column.
  • Permissions are cached in memory only, so they don't work across multiple instances.
  • Logging is not structured.
  • Security issues: CORS open to any origin, credentials in code, and SQL-execution endpoints.

04Module map and phase allocation

All 43 modules from the brief (A–AQ), grouped into ten business domains. Phase badges are the proposed allocation; reasons for the MVP items are in section 15.

MVP first go-liveP2 second releaseP3 laterMVP·core MVP with reduced depth

Platform administration

  • ATPA administrationMVP
  • APUser and role managementMVP
  • AQConfiguration managementMVP·core
  • AOAuditMVP
  • AFNotificationsMVP·core
  • AGDocument managementMVP·core

Payer and client

  • CInsurance company / payerMVP
  • BClient / corporateMVP
  • DGroup / contractMVP
  • GPolicy / scheme referenceMVP

Members

  • EMember managementMVP
  • FBeneficiary managementMVP

Provider and network

  • HProvider managementMVP
  • IProvider networkMVP
  • JProvider contractMVP
  • KProvider tariffMVP
  • LMedical network configurationMVP

Benefits

  • MMedical benefitsMVP
  • NBenefit / coverage configMVP

Medical and authorization

  • OPre-authorizationMVP
  • AJUtilization managementP2
  • AKMedical / case managementP3

Claims

  • PClaims intakeMVP
  • QClaims adjudicationMVP
  • RMedical claims reviewMVP
  • SClaims assessmentMVP
  • TApproval / rejectionMVP
  • UReconsiderationMVP
  • VAppeals / disputesP2
  • AIFraud, abuse, wasteP2

Finance

  • WClaims payment / settlementMVP·core
  • XProvider settlementMVP·core
  • YClient billing / TPA feesMVP·core

Channels and integration

  • ZNPHIES integrationMVP
  • AANon-NPHIES provider portalMVP
  • ABProvider portalMVP
  • ACClient portalMVP·core
  • ADMember portalP2
  • AEMobile applicationP2

Operations and insight

  • AHSLA managementMVP·core
  • ALReportingMVP·core
  • AMDashboardsMVP·core
  • ANAnalyticsP2

05Multi-insurance-company design

Reference scenario used throughout the BRD and architecture: one TPA, 15 insurance companies, all sending claims through NPHIES, millions of claims and claim lines.

flowchart LR
  subgraph PRV["Healthcare providers"]
    P1["NPHIES-integrated hospitals and clinics"]
    P2["Non-NPHIES providers"]
  end
  NPH["NPHIES national platform"]
  subgraph TPA["TPA platform"]
    GW["NPHIES integration gateway"]
    PP["Provider portal"]
    CORE["TPA core: members, benefits, authorization, claims, settlement"]
    CP["Client portal"]
    MP["Member app and portal"]
    BI["Reporting and data warehouse"]
  end
  subgraph ICS["Insurance companies"]
    IC1["IC-001"]
    IC2["IC-002"]
    ICN["IC-015"]
  end
  P1 -->|"eligibility, preauth, claims"| NPH
  NPH --> GW
  P2 --> PP
  GW --> CORE
  PP --> CORE
  ICS -->|"policies, schemes, members, funding"| CORE
  CORE -->|"approvals, statements, invoices, reports"| ICS
  CP --> CORE
  MP --> CORE
  CORE --> BI
  

Fig. 1 · TPA ecosystem with multiple insurance companies

Rules that apply everywhere

  • InsuranceCompanyId is a non-null column on every transactional table (authorization, claim, claim line, settlement, invoice, ledger entry, NPHIES message) and the leading column of their main indexes.
  • The IC is resolved once, at intake, and stamped on the record. It is never re-derived later from a join.
  • Every query passes through an IC-scope filter enforced in the data-access layer and backed by SQL Server row-level security. A user granted IC-001 sees nothing of IC-002.
  • Consolidated (cross-IC) views are a separate permission, and every cross-IC access is audited.
  • No IC-specific code branches. IC differences live in configuration.

Configuration resolution order

  1. Platform default (TPA-wide)
  2. Insurance company override
  3. TPA–IC service contract
  4. Policy / group contract
  5. Scheme / plan
  6. Benefit line (most specific wins)

Applies to benefit rules, adjudication edits, authorization thresholds, tariffs, SLA clocks, fee models, notifications and escalation. Each item is versioned with effective dates so a claim is always judged by the rules valid on its service date.

Noisy-neighbour protection

One IC's spike must not breach another IC's SLA. The plan: queues partitioned by IC, a fair scheduler that gives each IC a guaranteed share of adjudication workers, per-IC and per-provider rate limits at the gateway, separate priority lanes (real-time eligibility and pre-authorization ahead of batch claims), and autoscaling worker pools. Large ICs can later get dedicated worker pools or database shards without code change. ARCHITECTURE DECISION REQUIRED

Deployment model: the product is sold to multiple TPAs. Proposed: a dedicated deployment per TPA customer (simpler data residency and regulator conversations), with a TenantId kept in the schema so a shared SaaS model remains possible. ARCHITECTURE DECISION REQUIRED

06NPHIES integration architecture

Four clearly separated parties: provider systems, NPHIES, the TPA's NPHIES integration layer, and the TPA core. The core never speaks FHIR directly.

flowchart TD
  A["NPHIES bundle received by gateway"] --> B["Persist raw bundle, message id, timestamps"]
  B --> C{"Message id already processed?"}
  C -->|"Yes"| D["Return stored response, no reprocessing"]
  C -->|"No"| E["Read insurer and coverage from bundle"]
  E --> F{"Mapped to an InsuranceCompanyCode?"}
  F -->|"No"| G["Quarantine queue and operations alert"]
  F -->|"Yes"| H["Stamp IC code and correlation id"]
  H --> I["Publish to IC-partitioned queue"]
  I --> J["Resolve policy, scheme, member, provider contract"]
  J --> K["Validate and adjudicate with the IC rule set"]
  K --> L["Build FHIR response"]
  L --> M["Return to NPHIES directly or via poll"]
  

Fig. 2 · NPHIES → TPA → insurance company routing

TransactionPatternTPA handling
EligibilitySynchronous, latency-criticalServed from cached member/coverage snapshot per IC; no queue hop.
Pre-authorizationSync acknowledgement, async decisionAuto-decide where rules allow; otherwise queued to medical review; final response delivered when decided.
ClaimAsync, high volumeStore, acknowledge, queue, adjudicate, respond. Line-level outcomes.
Communication request / communicationAsync, bi-directionalRequest additional info or attachments; moves claim to Pending Info; provider reply resumes processing.
Status check, poll, cancelSyncAnswered from the message-tracking store; cancel moves the claim to Cancelled if not yet settled.
Payment notice / reconciliationAsyncSent after settlement; reconciled against NPHIES acknowledgements per IC.

The exact transaction list, the FHIR profiles, how a TPA is identified as message receiver for multiple payers, response-time limits, attachment size limits and certification steps must be taken from the current NPHIES implementation guide. EXTERNAL VALIDATION REQUIRED

Reliability controls

  • Store first, process second: the raw bundle is durably saved before any business logic, so nothing received is ever lost.
  • Idempotency: key on the NPHIES message identifier plus bundle identifier; duplicates return the original response.
  • Correlation id: one id flows from gateway through queue, core, response and audit, and across OpenTelemetry traces.
  • Retry and dead-letter: exponential backoff with jitter for outbound calls, circuit breaker on NPHIES endpoints, dead-letter queue with an operations replay screen.
  • Message tracking: every inbound and outbound message with status, IC, provider, timings and error payloads, searchable by operations staff.
  • Reconciliation: daily per-IC counts and amounts, NPHIES vs TPA, with exceptions listed for action.

07Claims engine

The example lifecycle in the brief mixes processing states with outcomes and financial states. The proposed model separates them: a processing status on the claim, a decision on each line (approved, partially approved, rejected, with reason codes) and a financial status (not payable, payable, in batch, paid, reconciled).

stateDiagram-v2
  [*] --> Received
  Received --> IntakeRejected: unreadable, unmapped IC, duplicate
  Received --> Registered: IC, member, provider resolved
  Registered --> Validating
  Validating --> ValidationFailed: hard edits fail
  Validating --> PendingInfo: information requested
  PendingInfo --> Validating: provider responds
  PendingInfo --> Adjudicated: no response within window
  Validating --> AutoAdjudication
  AutoAdjudication --> Adjudicated: all lines decided by rules
  AutoAdjudication --> ManualReview: pended by rule
  AutoAdjudication --> FWAHold: fraud score above threshold
  FWAHold --> ManualReview
  ManualReview --> MedicalReview: clinical question
  MedicalReview --> ManualReview
  ManualReview --> PayerApproval: above delegated authority
  PayerApproval --> ManualReview
  ManualReview --> Adjudicated
  Adjudicated --> ResponseSent
  ResponseSent --> Reconsideration: provider disputes lines
  Reconsideration --> AutoAdjudication: reprocess
  ResponseSent --> ReadyForSettlement: payable amount exists
  ResponseSent --> Closed: nothing payable, window expired
  ReadyForSettlement --> InSettlementBatch
  InSettlementBatch --> Paid: payment confirmed
  Paid --> Reconciled
  Reconciled --> Closed
  ValidationFailed --> Closed
  IntakeRejected --> [*]
  Closed --> [*]
  

Fig. 3 · Proposed claim processing lifecycle (line-level decisions and financial status tracked separately)

  • Resubmission creates a new claim linked to the original (not an edit of the old one), preserving the audit trail and NPHIES semantics. EXTERNAL VALIDATION REQUIRED
  • Appeal / dispute (Phase 2) is a case attached to a closed or adjudicated claim, with its own workflow and SLA, so it does not reopen the claim state machine.
  • Payer Approval exists only because the TPA works under delegated authority. An insurer system would not need it.
  • Cancelled (by provider) and Reversed (after payment, through a debit/credit adjustment) are also states, omitted from the figure for readability.

Pipeline stages

#StageChecksMode
1IntakeNPHIES, provider portal, API, batch file; persist, acknowledge, de-duplicateAuto
2RegistrationResolve IC, policy, scheme, member, provider branch, contractAuto
3ValidationMember, provider, eligibility on service date, coding (ICD-10-AM, procedure/service codes, drug codes EXTERNAL VALIDATION REQUIRED), mandatory fields, duplicate and near-duplicateAuto
4PricingTariff and contract price by effective date, package rules, discountsAuto
5Benefit applicationCoverage, limits and accumulators, copay, deductible, coinsurance, waiting periods, network restrictionAuto
6Authorization matchMatch lines to approved pre-authorization, quantities and validityAuto
7Medical editsDiagnosis–procedure consistency, gender/age edits, frequency, medical necessity flagsAuto, pends to medical review
8FWA scoringRule-based in Phase 2, model-based in Phase 3Auto, pends to fraud analyst
9DecisionLine-level approve, partial, reject with reason codes; delegated-authority checkAuto or manual
10Response and settlement handoffResponse to NPHIES or portal; payable lines to settlementAuto

Target auto-adjudication rate is a business KPI set per IC, not a system constant. BUSINESS CONFIRMATION REQUIRED

08Benefit engine and rule engine

Benefits must be configurable without code changes. Rules split into what business users configure and what developers build once as reusable rule types.

Benefit engine supports

  • Annual, per-service, per-member and per-family limits, by amount and by count
  • Copay (fixed or %), deductible, coinsurance, with caps
  • Waiting periods, age, gender and diagnosis restrictions
  • Frequency limits (e.g. one optical claim per 12 months)
  • Network and provider restrictions; pre-authorization required flags
  • Accumulators per member and family, posted when a claim line is approved and reversed on adjustment, with concurrency control
  • Benefit templates per IC (e.g. a regulator-defined basic benefit table) cloned into schemes EXTERNAL VALIDATION REQUIRED

Configuration vs code

Configured by businessBuilt in code
Limit values, copay %, waiting daysLimit and accumulator calculation types
Edit rules as decision tables per ICRule evaluation engine and rule operators
Authorization thresholds and service listsDelegated-authority evaluation
Tariff prices and versionsPricing methods (fee schedule, % of charge, package, per diem)
SLA clocks, calendars, escalationsTimer service and escalation actions
Fraud thresholds and rule weightsScoring framework, model hosting (P3)
Notification templates (Arabic and English)Channels, delivery, retry

Rule engine options to evaluate: a home-grown decision-table engine compiled to expression trees, the open-source Microsoft RulesEngine (JSON rules), or NRules. Every rule set is versioned, effective-dated, IC-scoped, testable against sample claims before activation and protected by maker–checker approval. ARCHITECTURE DECISION REQUIRED

09Financial and settlement boundary

The TPA does not own insurance risk. It owns the calculation, instruction, tracking and reconciliation of money that belongs to insurers or self-funded clients, plus its own fee revenue.

Inside TPA ERPStays in the insurer's ERP / finance system
Provider payables per claim line, settlement batches per IC and providerGeneral ledger, premium accounting, reserves and IBNR
Payment instruction files; payment status trackingBank payment execution (unless the TPA manages a claim fund)
Remittance advice to providersReinsurance recoveries
Adjustments, debit and credit notes on claims and feesStatutory financial reporting
TPA fee calculation and invoicing per IC (VAT e-invoicing EXTERNAL VALIDATION REQUIRED)Insurer's accounts payable for TPA fees
IC-wise sub-ledger: claims paid, recoveries, fees, fund balance, outstandingPremium receivables and collections
Reconciliation: claim, line, provider, NPHIES, ICInvestment and treasury
sequenceDiagram
  participant P as Provider
  participant T as TPA platform
  participant I as Insurance company
  participant B as Bank
  T->>T: Group payable lines by IC, provider, cycle
  T->>I: Settlement batch and funding request
  alt Model A, insurer pays
    I->>B: Execute payments from instruction file
    B-->>I: Bank confirmation
    I-->>T: Payment confirmation file
  else Model B, TPA-managed claim fund
    I->>B: Fund TPA claim account for IC
    T->>B: Execute payments
    B-->>T: Bank confirmation
  end
  T->>P: Remittance advice and payment notice
  T->>T: Reconcile line, claim, provider, IC ledger
  T->>I: Periodic IC statement and TPA fee invoice
  

Fig. 4 · Provider settlement with the two candidate funding models

Which funding model each IC uses, whether self-funded corporate (ASO) schemes are in scope, and whether TPA fees are netted from the fund are commercial decisions to confirm during discovery. BUSINESS CONFIRMATION REQUIRED

10Technical architecture

flowchart TB
  subgraph CH["Channels"]
    WEB["Angular portals: TPA operations, provider, client, member"]
    MOB["Mobile app"]
    EXT["IC and partner APIs"]
  end
  NPH["NPHIES"]
  APIGW["API gateway: WAF, rate limits per IC and provider"]
  IDP["Identity provider: OIDC, OAuth2, MFA"]
  subgraph CORE["TPA core, .NET modular monolith"]
    M1["Payer, client, policy reference"]
    M2["Members and enrollment"]
    M3["Providers, network, tariffs"]
    M4["Benefit and rule engine"]
    M5["Authorization and claims"]
    M6["Settlement and billing"]
  end
  subgraph WK["Background workers, scaled independently"]
    W1["Adjudication workers"]
    W2["Batch and file intake"]
    W3["Notification service"]
    W4["Document service and virus scan"]
    W5["SLA timers and escalation"]
  end
  NGW["NPHIES integration gateway"]
  MQ["Message broker: per-IC queues, dead-letter"]
  RDS["Redis cache"]
  SQL[("SQL Server OLTP, partitioned, readable replicas")]
  OBJ[("Object storage for documents")]
  SRCH[("Search index")]
  DW[("Reporting database and warehouse")]
  OBS["Observability: OpenTelemetry logs, metrics, traces"]
  WEB --> APIGW
  MOB --> APIGW
  EXT --> APIGW
  APIGW --> IDP
  APIGW --> CORE
  NPH --- NGW
  NGW --> MQ
  CORE --> MQ
  MQ --> WK
  CORE --> SQL
  WK --> SQL
  CORE --> RDS
  W4 --> OBJ
  SQL -->|"CDC"| DW
  SQL -->|"CDC"| SRCH
  CORE -.-> OBS
  WK -.-> OBS
  

Fig. 5 · High-level system architecture

ComponentProposed choiceWhy it is needed
FrontendAngular 21+ with PrimeNG, standalone and zoneless as in OptimaX, ngx-translate for Arabic RTL and EnglishSame stack the team already runs in OptimaX; one component library across four portals
Backend.NET 10 LTS, ASP.NET Core, modular monolithClear module boundaries without microservice overhead at MVP; workers split out where scale demands
DatabaseSQL Server with table partitioning, Always On readable secondariesTeam skill, partitioning and columnstore support the volume path in section 11
Data accessEF Core for masters and configuration; Dapper for claims hot paths, bulk and reporting readsProductivity where volume is low, control where volume is high
IdentityOIDC / OAuth2 identity provider, JWT access plus rotating refresh tokens, MFAFour user populations with different policies; silent refresh in the Angular interceptor from day one
MessagingRabbitMQ (quorum queues) or Azure Service Bus, via MassTransit, with transactional outbox ARCHITECTURE DECISION REQUIREDClaims must not depend on one synchronous process; buffering, retry, dead-letter and per-IC fairness
CacheRedisEligibility snapshots, reference codes, tariff lookups, rate-limit counters, distributed locks for accumulators
API gatewayYARP or a managed gatewaySingle entry for authentication, throttling per IC and provider, versioning
DocumentsS3-compatible object storage, metadata in SQL, ClamAV scan, encryption at restLarge attachments stay out of SQL Server; retention and secure, time-limited access
SearchOpenSearch / Elasticsearch fed by CDC (Phase 2 onward)Fast claim and member search across hundreds of millions of rows without loading OLTP
ReportingReporting replica for MVP; warehouse with star schema, IC as conformed dimension, BI toolHeavy consolidated reports never run against transactional claims tables
ObservabilityOpenTelemetry, Serilog, Prometheus/Grafana or equivalent, separate immutable audit storeTrace one claim end-to-end by correlation id; operational and regulatory evidence

Hosting must be inside Saudi Arabia. On-premises, a Saudi-region cloud, or a hybrid are all candidates; the choice drives the broker, gateway and storage products above. ARCHITECTURE DECISION REQUIRED EXTERNAL VALIDATION REQUIRED

11Scalability and performance

The goal is to grow from one million to a billion-plus claims by adding capacity and moving data, not by redesigning the product. The decisions that make this possible are taken at MVP even though the later stages are not built then.

Volume stageDatabaseProcessingReporting and search
Up to ~10M claimsOne primary plus readable secondary; Claim and ClaimLine partitioned monthly by received date; IC leads key indexesWorker pool behind per-IC queuesReporting replica, pre-aggregated daily tables
~10M–100MOlder partitions moved to read-only compressed filegroups; columnstore for historyAutoscaled workers; dedicated pools for the largest ICsWarehouse via CDC; search index for claim lookup
~100M–1B+Shard by Insurance Company (shard map; a large IC gets its own database); archive tier for closed claims past retentionWorkers routed to shard by ICWarehouse is the only consolidated source; archive restorable on demand

Decided at MVP so later stages need no redesign: globally unique, time-ordered claim ids (not per-database identity); IC on every transactional row; no cross-IC joins in transactional code; all reads for reports go through the reporting path; documents in object storage; idempotent message handlers.

flowchart LR
  H["Hot: current and previous year, monthly partitions"] --> W["Warm: older years, read-only compressed filegroups"]
  W --> C["Cold archive: past retention threshold, restorable"]
  H -->|"CDC"| D["Warehouse: IC-level and consolidated reporting"]
  W -->|"CDC history"| D
  

Fig. 6 · Hot, warm and cold data tiers (retention periods to be confirmed BUSINESS CONFIRMATION REQUIRED)

Proposed performance targets

Starting points for discussion, to be validated by load testing during the architecture POC. They are not commitments.

MeasureProposed targetNotes
Eligibility response, TPA internal processingp95 ≤ 500 msExcludes NPHIES network time
Pre-authorization auto-decisionp95 ≤ 3 sManual review time governed by per-IC SLA and NPHIES limits EXTERNAL VALIDATION REQUIRED
Claim acknowledgement after receipt≤ 2 sStore-then-queue; adjudication is asynchronous
Sustained claim ingestion per cluster100,000 claims / hourBursts absorbed by queue; scale by adding workers
Batch file of 50,000 claims≤ 30 min to adjudicatedAssuming normal auto-adjudication ratio
Portal API responsep95 ≤ 1 sAt 2,000 concurrent portal users
Core availability99.9%Excluding planned maintenance BUSINESS CONFIRMATION REQUIRED
Disaster recoveryRPO ≤ 15 min · RTO ≤ 4 hSecondary site inside KSA

12Data architecture

erDiagram
  INSURANCE_COMPANY ||--o{ TPA_SERVICE_CONTRACT : "engages TPA under"
  INSURANCE_COMPANY ||--o{ POLICY : "issues"
  CLIENT ||--o{ POLICY : "holds"
  POLICY ||--o{ SCHEME : "defines"
  SCHEME ||--o{ BENEFIT : "includes"
  BENEFIT ||--o{ BENEFIT_LIMIT : "constrained by"
  SCHEME }o--|| NETWORK : "uses tier"
  POLICY ||--o{ MEMBER : "covers"
  MEMBER ||--o{ BENEFICIARY : "has dependants"
  MEMBER }o--|| SCHEME : "enrolled in"
  PROVIDER ||--o{ PROVIDER_BRANCH : "operates"
  PROVIDER ||--o{ PROVIDER_CONTRACT : "signs"
  PROVIDER_CONTRACT ||--o{ PROVIDER_TARIFF : "prices services"
  NETWORK }o--o{ PROVIDER_BRANCH : "includes"
  MEMBER ||--o{ AUTHORIZATION : "requests"
  MEMBER ||--o{ CLAIM : "receives care under"
  PROVIDER_BRANCH ||--o{ CLAIM : "submits"
  INSURANCE_COMPANY ||--o{ CLAIM : "owns"
  CLAIM ||--|{ CLAIM_LINE : "contains"
  AUTHORIZATION |o--o{ CLAIM_LINE : "authorizes"
  NPHIES_MESSAGE |o--o{ CLAIM : "carries"
  SETTLEMENT_BATCH ||--o{ CLAIM_LINE : "pays"
  SETTLEMENT_BATCH ||--o{ PAYMENT : "settled by"
  INSURANCE_COMPANY ||--o{ INVOICE : "billed TPA fees"
  

Fig. 7 · Core logical ERD (diagnosis, procedure, service, document, notification, audit, user and role entities detailed in 12_ERD.md)

CategoryExamplesHandling
MasterInsurance company, client, group, policy, scheme, member, beneficiary, provider, branch, network, contractVersioned, effective-dated, maker–checker on critical changes
TransactionAuthorization, claim, claim line, settlement, payment, invoice, adjustmentIC-stamped, partitioned, append-mostly, archived by retention
ReferenceICD-10-AM, procedure and service codes, drug codes, specialties, cities and regions, reason codes, NPHIES value setsLoaded from authoritative sources with version history EXTERNAL VALIDATION REQUIRED
AuditWho, what, when, before and after, source, IP or device, correlation idSeparate append-only store, never updated or deleted by the application
IntegrationNPHIES raw bundles, message tracking, inbound files, outbound filesRetained per regulation, linked to business records by correlation id

13Security and compliance

Controls in the design

  • Access by role and permission, further scoped by TPA, IC, client, provider and branch
  • MFA for internal staff, provider admins and client admins; OTP-based for members
  • TLS 1.2+ everywhere; TDE plus column encryption for national ID and medical fields
  • Secrets in a vault, never in config files or developer environment variables
  • Data masking of national ID, phone and diagnosis by role
  • Rate limiting, input validation, OWASP Top 10 and OWASP API Top 10 controls
  • Document access through short-lived signed URLs; virus scan before availability
  • Session timeout, refresh-token rotation and revocation
  • Backups encrypted, restore-tested; DR site in KSA; annual DR drill

Saudi dependencies to validate before implementation

AreaStatus
Council of Health Insurance (CHI) rules for licensed TPAs, delegated authority and reportingEXTERNAL VALIDATION REQUIRED
NPHIES implementation guide, TPA onboarding and certificationEXTERNAL VALIDATION REQUIRED
Insurance Authority requirements on outsourcing by insurersEXTERNAL VALIDATION REQUIRED
Personal Data Protection Law (SDAIA): health data, consent, cross-border transferEXTERNAL VALIDATION REQUIRED
NCA Essential Cybersecurity Controls and Cloud Cybersecurity ControlsEXTERNAL VALIDATION REQUIRED
Data residency for hosting, backups and DREXTERNAL VALIDATION REQUIRED
ZATCA e-invoicing for TPA fee invoicesEXTERNAL VALIDATION REQUIRED
Retention periods for medical and claims recordsBUSINESS CONFIRMATION REQUIRED

14Roles and permissions

Condensed matrix. Every grant is additionally limited by data scope: the ICs, clients, providers or branches assigned to the user. The full action-level matrix goes into 13_Roles_Permissions.md.

RoleConfig and mastersPayer and clientMemberProvider and networkBenefitsPre-authClaimsMedical reviewFWAFinanceReportsUsers and audit
Super AdminFFVVVVV––VVF
TPA AdminFFEEEVV––VVE
Operations ManagerVVEVVAAVVVVV
Claims ManagerVVVVVAAVVVV–
Claims Processor–VVVVEE–––V–
Medical Reviewer––VVVAEFV–V–
Medical Auditor––VVVVVAV–VV
Provider Manager–––F–VV––VV–
Network Manager–V–EV–V–––V–
Contract Manager–V–AV–V––VV–
Client Manager–FEVEVV––VV–
Finance User–V–V––V––FV–
Customer Service–VEVVVV–––––
Fraud Analyst––VVVVVVFVV–
Reporting User––––––––––V–
Provider Admin––SSSSS––SSS
Provider User––S–SSS–––––
Client Admin–SSVS–S––SSS
Client User––SVS–S–––S–
Member––SVSSS–––––

F full · A approve within limits · E create and edit · V view · S self-scope only (own provider, own client, own record) · – none

15MVP, Phase 2 and Phase 3

MVP itemWhy it cannot wait
Insurance company, client, group, schemeNothing can be routed, priced or reported without the IC and its scheme. Multi-IC is a core requirement.
Member and beneficiaryEligibility, authorization and claims all start with a valid member on a service date.
Provider, network, contract, tariffClaims cannot be validated or priced without them.
Benefits and eligibilityEvery adjudication decision depends on the benefit engine and accumulators.
Pre-authorizationRequired by many services before care; providers expect it on day one through NPHIES.
Claims and adjudicationThe TPA's core service and the basis of its fee.
NPHIESThe main channel for Saudi claims; without it there is no volume.
Provider portalNon-NPHIES providers have no other way to submit claims or check status.
Client portal (core)ICs and corporates need member lists, enrollment and claim visibility as a condition of the contract.
Settlement instruction and fee invoicing (core)Providers must be paid and the TPA must bill; without it the cycle does not close.
Core reporting and SLA timersIC-wise claims, turnaround and SLA reports are contractual deliverables.
Users, roles, auditIC data isolation and auditability cannot be added afterwards without rework.
Notifications (core)Providers and members need status changes; email and SMS only at MVP.

Phase 2 P2

  • Member portal and mobile app with digital card and provider search
  • Appeals and disputes case management
  • Rule-based fraud, waste and abuse detection
  • Utilization management and analytics warehouse
  • Full SLA management with penalties and IC SLA dashboards
  • Advanced fee models, claim-fund management
  • Search index, provider credentialing workflow, workflow configuration UI

Phase 3 P3

  • Medical and case management, disease management
  • Model-based FWA scoring and predictive analytics
  • Open APIs for ICs and partners, self-service IC onboarding
  • IC-level database sharding where volumes require it
  • Shared SaaS option for smaller TPAs, if chosen in the deployment ADR

16Implementation roadmap

All durations are proposed estimates for a team of about 28, assuming discovery answers arrive on time and NPHIES TPA onboarding is not blocked. Many phases overlap. The start date is illustrative.

gantt
  title Proposed MVP roadmap, illustrative dates
  dateFormat YYYY-MM-DD
  axisFormat %b %Y
  section Shape
  Discovery              :d1, 2026-11-02, 6w
  Architecture and POC   :a1, 2026-11-30, 6w
  UX and UI              :u1, 2026-12-14, 8w
  section Build
  Foundation             :f1, after a1, 8w
  Masters                :m1, after f1, 5w
  Client and member      :c1, after m1, 7w
  Provider and network   :p1, after m1, 7w
  Benefits               :b1, after c1, 7w
  Authorization          :au1, after b1, 6w
  Claims                 :cl1, after c1, 14w
  NPHIES gateway         :n1, after f1, 24w
  Portals                :po1, after p1, 14w
  Financial settlement   :fs1, after b1, 8w
  Reporting              :r1, after b1, 8w
  section Assure
  Security hardening     :s1, after cl1, 4w
  SIT and performance    :t1, after cl1, 7w
  UAT with pilot IC      :ua1, after t1, 6w
  Go-live and hypercare  :g1, after ua1, 6w
  

Fig. 8 · Proposed MVP roadmap, about 12–15 months to first go-live

PhaseProposed durationDepends onTeamsDeliverablesExit criteria
Discovery4–6 wksSponsor, access to TPA and IC SMEsSA, BA, PO, medical SMEAnswered discovery questions, vision, scopeScope signed by management
Architecture4–6 wksHosting and NPHIES answersSA, tech leads, DBA, securityADRs, architecture docs, POC of gateway and partitioned claim storePOC meets proposed throughput; ADRs approved
UX / UI6–8 wksScope, personasUI/UX, BADesign system (Arabic RTL and English), portal prototypesPrototype accepted by pilot users
Foundation6–8 wksADRsBackend, frontend, DevOpsIdentity, IC-scoped RBAC, audit, config framework, messaging and outbox, CI/CD, observabilityWalking skeleton deployed to SIT
Masters4–6 wksFoundationBackend, DBA, BAReference codes, IC master, NPHIES payer mappingReference data loaded and versioned
Client / member6–8 wksMastersBackend, frontendClient, policy reference, scheme, enrollment, bulk upload, card dataPilot IC member file imported and reconciled
Provider6–8 wksMastersBackend, frontendProvider, branch, contract, tariff versions, networkPilot network and tariffs loaded
Benefits6–8 wksClient / memberBackend, BA, medical SMEBenefit engine, limits, accumulators, scheme templatesPilot schemes configured without code
Authorization5–6 wksBenefits, providerBackend, frontendPre-auth workflow, medical review queue, delegated authorityEnd-to-end pre-auth on test data
Claims12–14 wksClient / member, provider, benefitsBackend (largest share), QAIntake, validation, pricing, adjudication, manual and medical review, reconsiderationRule test pack passes; volume test at proposed targets
NPHIES20–24 wks (parallel)Foundation, NPHIES sandbox accessIntegration developersGateway, all message types, tracking, reconciliationNPHIES certification passed EXTERNAL VALIDATION REQUIRED
Portals12–14 wks (parallel)Provider, claims APIsFrontendProvider portal including non-NPHIES claims, client portal corePilot provider submits and tracks claims
Financial settlement6–8 wksClaims decisionsBackend, finance SMESettlement batches, payment files, remittance, fee invoices, reconciliationOne full settlement cycle reconciled
Reporting6–8 wksClaims dataBI, DBAReporting replica, IC-level and consolidated core reportsContractual reports produced per IC
Securitycontinuous + 3–4 wksFeature completeSecurity, DevOpsHardening, penetration test, NCA control mappingNo open critical or high findings
Testing (SIT, performance)6–8 wksFeature completeQA, automation, DevOpsRegression, performance, DR test resultsExit criteria met for UAT
UAT4–6 wksSIT exitPilot TPA and IC users, BAUAT sign-off, data migration rehearsalBusiness sign-off
Production2–4 wks + 4–8 wks hypercareUAT sign-offAll, plus support teamCutover, go-live, hypercareStable operations, handover to support

17Development team

RoleMVPPhase 2Focus
Solution Architect11Blueprint, ADRs, design authority
Product Owner11Backlog, priorities, acceptance
Business Analyst (incl. medical claims SME)33BRD, FRD, rules, UAT support
Technical Lead22Core and integration streams
Backend Developers89Core modules, rule engine, workers
Integration Developers22NPHIES gateway, IC files and APIs
Frontend Developers45Operations, provider and client portals
Mobile Developer02Member app
UI/UX Designer11Design system, Arabic RTL
Database Engineer11Partitioning, performance, migration
QA (manual)23Functional, claims rule tests
Automation QA12API, UI, regression, performance
DevOps12CI/CD, environments, observability
Security0.51Threat modelling, NCA mapping, testing
Data / BI12Reporting, warehouse
Total (approximate)~28~37Proposed sizing, to be revisited after discovery

18Testing, deployment and production support

Testing strategy

  • Unit: domain logic, especially benefit and pricing calculations
  • Claims rule testing: versioned packs of sample claims with expected line outcomes, run on every rule change before activation
  • Integration and API: contract tests per module and per IC file format
  • NPHIES: sandbox scenarios per message type, negative cases, certification
  • UI: automated journeys in Arabic and English
  • Performance: proposed targets in section 11, multi-IC noisy-neighbour scenario
  • Security: SAST, DAST, dependency scanning, external penetration test
  • Regression, UAT, DR: automated regression per release, business UAT, annual failover drill

Deployment

  • Environments: Dev, SIT, UAT, Pre-prod (production-sized for performance), Prod, DR
  • CI/CD with infrastructure as code, versioned database migrations
  • Containers on Kubernetes, or IIS / Windows services if the customer mandates it; the IIS lessons from LifeX (web.config rewrite, WebDAV removal, CORS order, base href) baked into templates from day one
  • Blue-green or rolling releases for zero-downtime core deployments
  • Feature flags per IC for staged rollout of rule and workflow changes

Production support

  • L1 TPA service desk, L2 application support, L3 product engineering
  • Severity-based response targets agreed with each TPA customer BUSINESS CONFIRMATION REQUIRED
  • Runbooks for NPHIES outage, queue backlog, dead-letter replay, settlement failure

19Risks, assumptions and dependencies

RiskImpactMitigation
No inbound NPHIES gateway exists in OptimaX; TPA-side rules and certification timeline unclearGo-live delay (critical path)Decide early whether to build the gateway or source it. Start it right after Foundation. Engage NPHIES early.
Copying insurer workflows by habitWrong product, reworkSection 02 table as a review gate for every module
Funding and settlement model undecidedFinance module redesignSupport both models in the design; decide per IC in discovery
Clinical rule content (edits, medical necessity) not availableLow auto-adjudication rateMedical SME on team; start with OptimaX rule knowledge; licensed edit content as option
Performance at scale underestimatedSLA breaches, costly redesignPartition-ready schema and load-tested POC in architecture phase
IC data leaking across insurersContract and regulatory breachRow-level security, IC scope in every query, automated isolation tests
Data migration from incumbent TPA or IC systemsDelayed onboardingStandard import formats, reconciliation reports, rehearsal before UAT
Key-person dependency on the OptimaX teamDelivery slowdown on both productsDedicated TPA team; documented blueprint; knowledge sessions
Scope growth during buildMVP slipsFixed MVP scope after sign-off; change board
Regulatory changes during buildReworkConfiguration-driven rules; regulatory watch owner

Assumptions

  • The TPA does not carry insurance risk in any scenario.
  • Insurers remain the system of record for policy issuance and premium.
  • A pilot TPA and at least one IC are available for discovery and UAT.
  • Hosting will be inside Saudi Arabia.

Dependencies

  • NPHIES sandbox access and TPA onboarding
  • IC policy, member and benefit data feeds
  • Authoritative code sets and their licences
  • Infrastructure decision and procurement lead time

20Key discovery questions

Highest-impact questions for management and the business team. The full list goes into 00_Discovery_Questions.md, the first document produced.

Business model

  1. Who is our first customer: an existing TPA, a new TPA, or an insurer running its own administration?
  2. Is the product sold as a dedicated deployment per customer, or as shared SaaS?
  3. Which TPA fee models must MVP support: PMPM, per claim, % of claims, fixed?
  4. Are self-funded corporate (ASO) schemes in scope?
  5. White-label under each IC's brand or TPA-branded member experience?

Regulatory and NPHIES

  1. Which CHI licence conditions apply to the TPA's system (reporting, delegated authority, data)?
  2. How does NPHIES identify a TPA receiving on behalf of several payers?
  3. What is the NPHIES TPA certification process and lead time?
  4. Which code sets and versions are mandated for claims?
  5. Required retention periods for claims and medical records?

Insurance company relationship

  1. How will ICs send policies, schemes and members: file, API, portal?
  2. What are typical delegated-authority limits for pre-auth and claims?
  3. Does the TPA hold provider contracts itself, or per IC, or both?
  4. Who pays providers, and from which account, per IC?
  5. What SLAs and penalties do ICs typically impose?

Operations and volume

  1. Expected ICs, members, providers and claims per year for the pilot and for year 3?
  2. Peak patterns: month-end batches, seasonal spikes?
  3. Target auto-adjudication rate and medical review capacity?
  4. Is data migration from a previous TPA required at go-live?

Technology

  1. On-premises, Saudi cloud, or hybrid hosting?
  2. Any customer-mandated platforms (Windows/IIS, specific cloud, SSO provider)?
  3. Which OptimaX components and code may be reused under licensing and IP terms?
  4. Who operates the current NPHIES gateway OptimaX calls, and can it be extended for inbound TPA traffic, or do we build our own?
  5. Can the MRE / PBM validation services be licensed for TPA use?
  6. Which BI tool is preferred for reporting?

21Documentation package and working sequence

Produced in four stages, as the brief requires. Each stage is reviewed before the next begins. Output folder: E:\TPA\docs\, with all Mermaid sources in E:\TPA\docs\diagrams\.

StageDocumentContent
1 · Discover00_Discovery_Questions.mdAll questions for management, TPA, IC and regulator, with owner and due date
1 · Discover01_Product_Vision.mdVision, market, positioning against incumbents, insurer vs TPA distinction
1 · Discover02_Scope.mdIn and out of scope, module map, phase allocation, OptimaX reuse
2 · Design03_BRD.md19-section BRD; each module with objective, actors, flows, rules, data, exceptions, audit, notifications, reports
2 · Design04_Functional_Architecture.mdDomains, modules, capabilities, member and provider journeys
2 · Design05_Business_Rules.mdEligibility, benefit, authorization, claims, tariff, SLA, fee rules; config vs code
2 · Design06_Module_Specification.mdFRD-level scope for modules A–AQ
2 · Design07_System_Architecture.mdApplication, technical, performance and scalability architecture
2 · Design08_Integration_Architecture.mdIC feeds, provider integration, APIs, files, messaging
2 · Design09_Data_Architecture.mdEntities, classification, partitioning, archival, warehouse
2 · Design10_Security_Architecture.mdIdentity, IC isolation, encryption, audit, compliance mapping
2 · Design15_NPHIES_Integration.mdGateway design, message handling, routing, reconciliation
3 · Detail11_Workflow_Diagrams.mdAll 25 required Mermaid diagrams (15 general + 10 multi-IC)
3 · Detail12_ERD.mdLogical ERD and entity definitions
3 · Detail13_Roles_Permissions.mdAction-level permission matrix and data scopes
3 · Detail14_Reports.mdDashboards and reports per audience, IC-level and consolidated
3 · Detail16_API_Architecture.mdAPI conventions, versioning, security, rate limits, idempotency
3 · Detail17_MVP_Roadmap.mdMVP, Phase 2 and Phase 3 with reasons
3 · Detail18_Implementation_Plan.mdPhases, durations, teams, deliverables, exit criteria, testing, deployment, support
3 · Detail19_Risks_Assumptions_Dependencies.mdRAID log
3 · Detail20_Technical_Decisions.mdADR log with status
4 · Review00_Gap_Analysis.mdMissing and ambiguous requirements, regulatory, integration, architecture, data, performance, security and delivery risks
4 · ReviewFINAL_ARCHITECTURE_REVIEW.mdConsistency checks, major decisions, open questions, readiness assessment