The notes behind the mechanism.
A small publication is allowed to be technical about itself. The privacy guarantee in Counsel.day is not a marketing claim; it is a database structure, a routing layer, a key-management policy, and a pen-test schedule. This is where the engineering choices are documented in public, in enough detail that a future colleague, an auditor, a curious customer, or a competitor reading our homework can verify that what we claim is what we actually built.
The privacy mechanism, layer by layer.
Counsel.day's promise that neither partner sees the other's votes until verdict day, and that no one at Counsel.day sees them at all, has to be enforced somewhere that does not depend on trust. This post walks through where: row-level security policies in Postgres, per-decision encryption keys held in Infisical, the application layer that has no admin override, the routing layer that distinguishes marketing surfaces from in-app surfaces, the audit trail that records every operator action, and the workflows we deliberately did not build because they would create an escape hatch.
The data architecture, end to end.
From the moment a user composes a decision to the moment the verdict is in their inbox: what tables exist, what tables can read each other, what the encryption boundary looks like, where the backups go, what the retention policy is, and what a data-export looks like. The schema is publishable because the privacy is enforced underneath it, not by hiding the schema. Per-decision keys, encrypted backups with 30-day retention, delete-on-request honoured within 24 hours and propagated through backups within 30 days.
The math behind the verdict.
The verdict is not a single AI prompt; it is a sequence of separate computations, each validated against the input before the synthesis runs. The conviction-by-day series and its smoothing function, the agreement rate, the signed divergence index, TF-IDF on the notes followed by k-means on the embeddings for theme clustering, and the prompt-engineering choices that wrap the synthesis paragraph. Solo Free runs the Python-only summary; paid tiers add the our AI synthesis tool synthesis on top.
Corrections welcome, in public.
Engineering notes are written by James Graham, founder of Counsel.day. They describe the production system as of the date stamped at the top of each post. If something on these pages is no longer true of the production code, that is a bug; corrections to [email protected] and we will fix it, with a dated note in the changelog. James is a data professional with two decades in analytics and platform engineering; he is not a clinician, and the product is not validated, built, tested, or endorsed by clinicians.