funnyapp.org Apps & games, funny first
Policywright app icon: a paper-coloured serif P on a petrol-blue rounded square, with a short amber rule beneath it

Catalogue 02 · Documents & decisions

Policywright

Twenty-five questions your policy should answer. Yes, no, or “look at this one” — and the clause behind each answer.

  • US$3.99 one-time
  • Free: 1 policy
  • Needs your Perplexity key
  • macOS 12+ · universal
  • Version 1.0.0
  • English & 简体中文
Download Policywright 1.0.0 DMG · 24.4 MB · macOS 12 or later · universal

SHA-256 bacf076ed2ea8458595061b439bd5f919440d052cc10aec95997819b8da4a902 · signed with a Developer ID certificate · checksums

Bring your own key. The judgement comes from Perplexity's pplx-decider-v1.3 model, called with a Perplexity API key that you create and pay for directly. One policy is about 6,000 input tokens — roughly $0.0002 at Perplexity's published price. The licence buys the app; the model calls are yours.

The Policywright window: 19 yes, 5 no and 1 review across 25 checks; the four items worth acting on at the top; the coverage table; and, on the right, the earthquake exclusion quoted from page 2 with the matched sentence highlighted.
One sample policy, 25 checks. The right pane is the policy's own sentence, not a paraphrase.
The premise & the work

Why this is in the catalogue

Every app here has to pass the same five rules. Here is how Policywright passes the first two.

The joke

“Did anyone actually read this policy?” — asked of a 40-page PDF whose answer is a number between 0 and 1.

The work

The app asks a decision model, not a chat model. Each check is a yes/no question with a written definition of what “yes” and “no” mean; the model returns a calibrated probability, and the app turns it into one of three answers. Where the model can also point at the sentence it read, the sentence and its page are shown and can be checked in the PDF yourself.

What it asks

25 checks, five groups

A homeowners policy (HO-3). The list is fixed, written once, and shipped with the app — not a prompt you have to invent.

What Policywright checks
GroupChecks
CoverageDwelling limit, personal property, personal liability, medical payments, loss of use, sudden water damage, earthquake, flood, sewer backup, rental or business use.
ExclusionsBusiness use, intentional or illegal acts, pets, mold, wear and maintenance.
Deductible & limitsDeductible, replacement cost versus actual cash value, special limits for jewellery and cash, liability limit.
Duties & claimsHow soon a loss must be reported, the proof-of-loss deadline, the duty to protect the property.
RenewalAutomatic renewal, cancellation notice, premium due date and lapse.
The three answers
AnswerWhenWhat to do
Yes P(yes) is at least 0.75. Treat it as present. The clause, when quoted, is the receipt.
No P(yes) is at most 0.25. Look at it yourself — a “no” on earthquake cover is a gap worth knowing about.
Review Anything between 0.25 and 0.75. The model is not sure. This is not a failure; it is the app telling you where to read.
The part that matters

A quote, or nothing

Every quoted sentence is checked against the document before it is shown.

The model returns a span of characters for each check that asks for one. Policywright converts those offsets, cuts the text out of the PDF's own page, and compares it with what the model said it read. If the two do not match, the quote is dropped and the check is marked quote could not be verified — the app never guesses a page number or shows a paraphrase as if it were the policy.

The pane also keeps the page number, so the printed policy is always one glance away.

The evidence pane: the sewer backup check marked Review at 71%, with the Water Backup Endorsement quoted from page 2 and the words 'Water Backup Endorsement (HO 04 95)' highlighted.
“Review, 71%” is the app saying: read this clause yourself. Page 2 is one glance away.
Boundaries

What it will not do

Said plainly, because an app that reads insurance documents should be careful about what it claims.

It is not insurance advice

Policywright reports what the document says and how sure the model is. Whether a gap matters for your house is a conversation with a broker, not an app.

It does not compare or recommend

No quotes, no “switch and save”, no affiliate links. It reads the policy you already have.

It does not replace reading it

Its job is to tell you which two pages of forty are worth your evening. The twenty “yes” answers are there so you can stop worrying about them.

It only knows HO-3

Homeowners special form. Auto, life, commercial and umbrella policies are not covered by the 25 checks; running one will mostly produce “no” and “review”.

Free and licensed

One policy free, then US$3.99 once

The free count is one policy. The bundled sample does not count against it.

Editions
EditionWhat you getPrice
Free Checks one policy, all 25 checks, the full table, the quotes and the pane. Exporting the report and checking a second policy need a licence. The sample policy is always free. US$0
Licensed Unlimited policies, report export, and the policywright command line. One key, no expiry, verified offline. US$3.99 once

Buy a licence — US$3.99, once

Checkout runs at Paddle in your browser. Paddle takes the payment and VAT, then emails a licence key; paste it into Settings → License and press Activate. The key is Ed25519-signed and checked on your Mac, works on all of your own computers, and includes all 1.x updates. Every purchase carries a 14-day money-back guarantee.

For scripts

Also a command line

Same engine, same checks, same licence — no window, no Flutter runtime.

The tool ships inside the app bundle. Give it a Perplexity key in the environment and it prints the report as Markdown, or as JSON with fixed fields.

# one policy, Markdown on stdout
PPLX_API_KEY=pplx-… /Applications/Policywright.app/Contents/Helpers/policywright \
  check ~/Documents/policy.pdf

# machine-readable, with pages and token usage
PPLX_API_KEY=pplx-… policywright check policy.pdf --json

# what the 25 checks are, one per line
policywright schema list
Exit codes
CodeMeaning
0The report was produced.
1A runtime error: network, service, unreadable response.
2Bad arguments.
3A licence is needed (free check used, or exporting). Nothing was sent.
4No Perplexity API key.
5The PDF could not be read, or the local engine is missing.
Privacy

The PDF stays. The text leaves.

Short version: this edition asks a cloud model, so the words in the policy go to Perplexity. The file does not.

Reading happens here. PDFKit pulls the text layer; pages with no text are read with Apple's Vision. Page breaks, highlight offsets and the report are all produced on the Mac.

Judging uses your key. The extracted text is sent from your Mac to api.perplexity.ai with the API key you entered. Perplexity sees the policy text and your key; it does not receive the PDF file. Their handling is covered by your agreement with them.

We receive nothing. No account, no analytics, no crash reports, no policy text on our servers. Preferences and the licence key stay in the app's own container.

Two requests of our own: the licence email is sent by Paddle at purchase, and the optional update check can be switched off. Licence verification is offline.

Read the full privacy policy →

If the text must not leave

Then this edition is the wrong one. The same app is published as a local edition on swordfishsoft.org: the model runs on the Mac, nothing is uploaded — and, because that model has no span locator, the local edition does not quote the policy.

Requirements

The boring details

Everything here is checkable with tools macOS already has.

Policywright 1.0.0
SystemmacOS 12 Monterey or later · universal (Apple silicon and Intel)
Window1200 × 750 by default, 980 × 640 minimum, resizable
DownloadDMG, 24429694 bytes · SHA-256 bacf076ed2ea8458595061b439bd5f919440d052cc10aec95997819b8da4a902
SignatureApple Developer ID with hardened runtime. Notarisation is pending — until it is stapled, open the app once with right-click → Open.
JudgingPerplexity Decisions API, model pplx-decider-v1.3, with your own key
LicenceEd25519 key, verified offline; no server, no device count
InterfaceEnglish and Simplified Chinese
StoreDirect only — not on the Mac App Store, no account required

Install

  1. STEP 01Open the DMGDouble-click the file you just downloaded. A window with the app and an Applications shortcut appears.
  2. STEP 02Drag it acrossDrop Policywright into Applications, then eject the disk image. That is the installation.
  3. STEP 03Open it onceSigned, so right-click → Open works even if macOS hesitates the first time. Then Settings → API key.
Release notes

What changed

First release.

  • 1.0.0 13 Nov 2026
    • 25 checks for HO-3 homeowners policies, in five groups, with the definitions shipped in the app.
    • Three answers — yes, no, needs review — with P(yes) and adjustable thresholds.
    • Quoted clause and page from pplx-decider-v1.3; quotes that do not match the document are dropped.
    • PDF text read locally with PDFKit and Vision; only the text is sent, with your own API key.
    • Markdown report export; one free policy; offline Ed25519 licence.
    • The policywright command line with JSON output and fixed exit codes.
Try it on one policy

The download is the demo.