A Matter Management System for a Disputes Team
Matter status, deadlines and document references were distributed across inboxes, shared drives and individually maintained trackers. A custom platform established one controlled operational record while preserving the discretion required in disputes work.
- Engagement
- Legal software build
- Duration
- Around two quarters
- Team
- Full-stack engineers, a business analyst and a delivery lead

This account is anonymised. The client is described by sector rather than by name, and outcomes are described in words rather than figures — no percentage or saving is quoted because none can be independently evidenced here.
A matter file was not an operational view
The document management system held correspondence and work product, but it did not explain what the team needed to do next. Deadlines were copied into personal calendars, matter summaries were rewritten for each review and dependencies between undertakings, procedural dates and client decisions lived in email. Shared trackers provided a portfolio view only by reducing nuanced states to free text. The problem was not an absence of diligent record keeping. It was that each record answered a different question, and none could establish which source was authoritative when dates or responsibilities changed. Administrative effort accumulated around reconciling representations of the same matter.
A replacement needed to support legal judgement rather than encode it as a rigid workflow. Disputes diverge, procedural routes change and a deadline can derive from a sealed order, a rule, an agreement or internal policy. At the same time, access barriers, conflict controls, retention obligations and defensible history could not be optional features added after the workflow. The engagement defined a matter model that kept source documents in the existing repository while recording operational facts, provenance and decisions in a dedicated application. The result was designed as a system of coordination and evidence, not a substitute for professional assessment or the authoritative court record.
What shaped the build
Ethical walls
Matter access had to honour restricted groups before records, search results, notifications or aggregate reports disclosed information.
Variable procedure
The platform needed controlled states and deadlines without assuming that every dispute followed one standard path.
Existing document repository
Documents remained in the incumbent system, so references, versions and permission changes had to stay aligned.
Retention and legal hold
Closure could not trigger ordinary disposal where a matter or document was subject to an active preservation requirement.
How the engagement ran
- 01
Map matter decisions
We traced representative disputes, identifying source facts, derived dates, approvals, exceptions and the portfolio questions that existing trackers attempted to answer.
- 02
Establish security boundaries
Matter membership, restricted roles, search visibility, export controls and audit events were designed before general application workflows.
- 03
Deliver the matter spine
Core records, participants, deadlines, tasks and document references were released together so complete working scenarios could be assessed.
- 04
Integrate and migrate
Active trackers were profiled and imported through staged mappings while repository links and identity groups were verified.
- 05
Replace review routines
Portfolio views and exception queues were introduced alongside explicit ownership, allowing duplicate trackers to be retired deliberately.
Separate facts, decisions and derived dates
The matter record distinguished external facts from internal planning. A hearing date captured from an order retained its source reference and the person who verified it. A filing deadline derived from that date recorded the applicable rule, calculation basis and any adjustment, rather than appearing as an unexplained calendar entry. Internal target dates were labelled as such. Changes created a new version and prompted review of dependent dates; they did not overwrite the earlier basis. This mattered when a procedural event moved, because the team could see which tasks and reminders had been calculated from the superseded date and decide whether each remained valid.
Tasks used controlled categories, ownership and status but allowed matter-specific detail. A state transition could require a reason or review without pretending to decide legal strategy. Dependencies identified work blocked by a client instruction or external event, while exception views exposed overdue review, an unverified source or a deadline without ownership. The model avoided a universal linear case flow. Instead it provided reusable procedural components that could be applied where relevant and omitted where not. This kept reporting consistent enough for portfolio management while leaving practitioners able to represent unusual directions without hiding them in a generic notes field.
Enforce confidentiality before retrieval
Authorisation was based on matter membership and explicit restricted roles, not merely on broad organisational departments. The API evaluated access for every matter-backed object and used the same policy when producing lists, exports and notification payloads. Search indexes received permission attributes alongside content metadata; inaccessible matters were excluded during retrieval rather than removed from results after matching. Aggregate dashboards were designed against the same boundary because a matter name, counterparty or workload category can itself be confidential. Support access followed a time-bound, approved route and generated an audit event. Database access was not treated as an acceptable operational workaround.
The document repository remained authoritative for files and versions. The platform stored stable external identifiers, document type, relevant version and matter context, then resolved links through the user’s existing repository permissions. Synchronisation handled rename, supersession and removal without copying restricted content into a less controlled store. Where a workflow relied on a specific filed or signed version, the reference was pinned instead of always opening the latest document. Notification text was deliberately sparse and linked recipients back to the authorised application. These choices ensured that convenience features did not create secondary channels in which restricted facts escaped the matter boundary.
Make deadlines durable and reviewable
Calendar integration was treated as a projection, not the system of record. The matter platform issued stable event identifiers and maintained the deadline’s provenance, status and dependencies. Updates to an external calendar could not silently alter the controlled date. Reminders were generated from policy and user preference but carried the current matter access check at delivery time, preventing a person removed from a matter from continuing to receive details. Delivery failure remained visible to the deadline owner and operational support. A reminder was evidence of an attempted notification, not evidence that the underlying obligation had been discharged.
Deadline calculations were implemented as explicit, versioned rules with test cases drawn from the team’s accepted interpretations. The application displayed the inputs and resulting date so a practitioner could assess them, and uncertain or exceptional situations required manual confirmation. Changes to a calculation rule affected future derivations unless an authorised review deliberately recalculated existing dates. Tests covered non-working days, timezone boundaries, amended source events and dependencies already marked complete. This design resisted false precision: the system supported consistent calculation and escalation while preserving the distinction between a software result and an approved legal deadline.
Turn portfolio reporting into an accountable view
The former portfolio spreadsheet mixed status reporting with data repair. In the new application, views were assembled from matter facts, tasks, dates and ownership, then linked directly to records needing attention. Definitions such as active, stayed, awaiting instruction and closing were agreed and encoded, with exceptional states visible rather than squeezed into the nearest category. Review packs showed freshness and source status so an old update could not present as current simply because it remained in a cell. Matters absent from a user’s permission scope were excluded at query time, including from totals and export files.
Migration focused on active operational value. Tracker rows were staged with source location and original values, then matched to matters and users through reviewable rules. Free-text status did not become an invented structured state; ambiguous rows entered an owner queue. Document links were tested against repository identifiers, and upcoming dates were reverified against their cited source. After release, old trackers became read-only before removal, allowing teams to identify missing decisions without continuing parallel updates indefinitely. Retention, closure and legal-hold behaviour were then exercised end to end, including removal from routine views while preserved material and its audit history remained discoverable to authorised roles.
What changed
- Matter reviews began from a shared operational record rather than reconciled personal trackers.
- Deadlines retained their source and calculation basis instead of becoming unexplained calendar entries.
- Restricted matter details were excluded consistently from search, reporting and notifications.
- Document references identified the relevant repository version without creating an uncontrolled copy.
- Portfolio exceptions linked back to owned records that could be corrected at source.
Stack
- React
- TypeScript
- .NET
- PostgreSQL
- OpenSearch
- Microsoft Graph
Common questions
Can custom matter management integrate with an existing document system?
Yes. The matter platform can retain stable references and operational metadata while the document repository remains authoritative for files, versions and access.
How does the system handle ethical walls?
Matter-level policy is applied before records enter lists, search candidates, reports, exports or notifications. Administrative access uses a separate approved and audited path.
Can legal deadlines be calculated automatically?
Rules can produce a reviewable derived date from explicit inputs, but the result should remain subject to professional confirmation. The source, rule version and later amendments must stay visible.
Do all disputes have to follow the same workflow?
No. Reusable states and procedural components provide consistent records without imposing one linear route on every matter. Exceptions remain structured and reviewable rather than hidden in notes.
Describe your version of this.
The constraints are never identical, and that is usually where the interesting engineering is. Tell us what yours are.


