Four-Week Sprint: On-Prem LLM Contract Review for a Swiss Medtech Firm

The Problem: Senior Staff Buried in Contract Clause Checks

A 11-50 person Swiss medtech firm processes 40-80 vendor contracts per month. Each one requires a senior finance or legal reviewer to extract liability caps, data-processing terms, and termination triggers, then cross-check them against the company’s standard playbook. The median cycle time is 6.2 hours per contract; the 95th percentile hits 14 hours when a data-processing annex is involved. Senior staff spend roughly 30% of their week on this routine work, which is precisely the work that should not require a person with a law degree. The problem is not the volume alone. It is that the workflow is isolated: no baseline exists, no approval gate is documented, and the ISO 27001 evidence trail for contract handling is incomplete. The fix is a four-week integration sprint that puts an on-prem open-weight LLM on the single highest-volume contract-review workflow, ships a measured before/after baseline, and produces the ISO 27001 evidence pack in the same window.

Prerequisites Before Day One

Before the sprint starts, you need five things in place. First, a named sponsor with authority to approve the pilot scope and the rollout decision. Second, access to the last 90 days of contract PDFs, including at least 50 that have been manually reviewed, so the gold-standard baseline can be built. Third, a Slack or Microsoft Teams workspace where the approval loop will run, with a dedicated channel for contract review. Fourth, a Swiss data center or on-prem server with at least 80 GB of GPU memory (an A100 or H100) for the open-weight model. Fifth, the current ISO 27001 risk register and data-processing register, so the sprint can append new controls rather than rebuild them. If any of these are missing, the sprint timeline slips. The four-week window assumes all five are available on day one.

Step 1: Run the Process Audit and Pick the Pilot Workflow

Map every contract that enters the finance and accounting function over the last 90 days. Classify each by type (vendor service agreement, purchase order, data-processing annex, SLA addendum) and measure the median cycle time, the 95th percentile, and the number of senior staff hours consumed. Export the results into a spreadsheet with columns for contract ID, type, cycle time, error count, and reviewer name. Select the single workflow with the highest volume-to-complexity ratio. For most Swiss medtech firms, that is vendor service agreements with recurring data-processing clauses. Document the selection rationale in the sprint charter. This step takes two to three days and produces the baseline that the pilot will be measured against.

Step 2: Stand Up the On-Prem Open-Weight Model and Retrieval Layer

Deploy the open-weight model on the client’s own hardware inside the Swiss data center. Llama 3 70B or Mistral Large 123B are the typical choices for contract clause extraction at this scale. The model runs behind a local inference server (vLLM or TGI) with no outbound network access. The retrieval-augmented layer indexes the company’s standard playbook, past approved contracts, and the ISO 27001 data-processing register into a vector store (Qdrant or Weaviate) on the same server. The agent’s prompt template is version-controlled in a Git repository. The model-agnostic layer sits between the agent and the inference server, so the same prompt and retrieval pipeline works if a non-sensitive triage task later moves to an OpenAI or Anthropic API. This step takes three to four days.

Step 3: Build the Conversational Agent with a Human-in-the-Loop Approval Gate

Build the conversational agent that reads a contract PDF, extracts obligations, liability caps, termination triggers, and data-processing terms, and flags deviations from the standard playbook. The agent posts a structured message into the designated Slack or Teams channel containing the contract ID, the flagged clauses, the recommended action, and a link to the full extraction. The human-in-the-loop gate is hard-coded: no clause touching money, health data, or a contract is marked as processed without a reviewer clicking approve, edit, or reject in the channel. The approval event is logged with a timestamp, reviewer identity, and the exact clause text. The agent does not send the contract to a counterparty, does not execute, and does not modify the document in the CRM or ERP. This step takes four to five days.

Step 4: Run the Pilot and Measure the Before/After Baseline

Run the pilot on the selected workflow for two weeks. Every contract that enters the finance function goes through the agent. The reviewer approves, edits, or rejects each flagged clause in Slack or Teams. The system logs cycle time per contract, error rate on clause extraction (measured against the 50-contract gold standard), and senior staff hours consumed. At the end of the two weeks, re-measure the same three metrics. A typical result for a 11-50 person medtech firm is a 60-75% reduction in cycle time and a 40-60% reduction in senior staff hours, with error rate on par or slightly below the manual baseline. Document the numbers in the sprint report. This step takes ten business days, including the two-week live window.

Step 5: Roll Out to the Full Team and Connect the CRM and ERP

Roll the agent out to the full finance and accounting team. The integration point is the same Slack or Teams channel, but now all reviewers use it. The CRM and ERP connections go live: a read-only CRM connection for contract metadata, a write connection to the ERP for the finance ledger entry once a contract is approved, and a webhook into the channel for the approval loop. The model-agnostic layer is unchanged. The rollout takes three to four days. The key constraint is that the on-prem model must remain inside the Swiss data center. No contract text, no PHI, no clause extraction result leaves the building. The ERP write is the only outbound data flow, and it carries only the approved contract ID and the finance ledger entry, not the contract text.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *