/* TitleVerifi — Pricing page. Same vocabulary as landing-page.jsx: serif headers + italic vermilion accents, monospace meta labels, hairline rules, comparison-table pattern. */ const Pricing = () => { const [billing, setBilling] = React.useState('per-file'); // 'per-file' | 'monthly' return (
{/* Nav (consistent w/ landing) */} {/* Hero */}
§ PRICING — PILOT DRAFT

Priced like
a title search.
Not like software.

You already know what an examiner-hour costs and what a search package costs. We price against those — per file, with volume tiers — so the economics are obvious on a single line item, not buried in a per-seat contract.

{/* Billing toggle */}
BILLING
{[ { id: 'per-file', label: 'Per file' }, { id: 'monthly', label: 'Monthly bundle' }, ].map(o => ( ))}
MONTHLY BUNDLE = ~17% OFF · COMMITTED VOLUME
{/* Plans */}
{/* Footnotes under plans */}
All plans include unlimited re-runs on a file for 30 days. A re-run is not a new file. Page overage billed at $0.08/page after the included tier. Hard cap configurable. Failed extractions (unreadable scans, encrypted PDFs) are not billed. Only completed reports count.
{/* Volume pricing table */}
§ 02 — VOLUME

Per-file price
scales with you.

Volume tiers apply automatically to whichever plan you're on. Tier resets monthly. No retroactive changes — you always pay the tier rate for files completed in that month.

{/* Comparison */}
§ 03 — WHAT'S IN A FILE

One price. Everything that goes into a finished, citable report.

Capability Examiner Closer Underwriter
{/* ROI calculator (illustrative, static) */}
§ 04 — THE MATH

A senior examiner
costs $140 / hour.

A typical first-pass review takes 90 minutes. With TitleVerifi the chain, mortgages, and curative are already drafted and cited — the examiner reviews and signs. First pass drops to ~14 minutes.

Numbers below are an illustrative model from a 200-file/mo pilot. Yours will differ — request a tailored estimate.

PILOT MODEL · 200 FILES / MO
Cardinal Title Co. · West region
FY2025-Q4
{/* FAQ */}
§ 05 — QUESTIONS

Things examiners ask before signing.

{/* CTA */}

Run the math on
your own file.

Send us a search package you've already closed. We'll generate the report, walk you through every citation, and put a quote next to the actual examiner-hours it would have replaced.

Request a tailored quote → Talk to an examiner-success lead ~ 48H · ALL TIERS
{/* Footer */}
); }; const pgBtnPrimary = { background: 'var(--ink)', color: 'var(--paper)', border: 'none', padding: '10px 16px', borderRadius: 'var(--r-2)', fontSize: 14, fontFamily: 'inherit', fontWeight: 500, cursor: 'pointer', textDecoration: 'none', display: 'inline-flex', alignItems: 'center', justifyContent: 'center', }; const pgBtnGhost = { background: 'transparent', color: 'var(--ink)', border: '1px solid var(--rule-strong)', padding: '12px 18px', borderRadius: 'var(--r-2)', fontSize: 15, fontFamily: 'inherit', fontWeight: 500, cursor: 'pointer', textDecoration: 'none', display: 'inline-flex', alignItems: 'center', justifyContent: 'center', }; const pgNavLink = { color: 'inherit', textDecoration: 'none', cursor: 'pointer', }; const Plan = ({ n, name, price, unit, for_, included, excluded, billing, featured }) => (
{featured && ( ◆ MOST CHOSEN )}
§ {n} {billing === 'monthly' ? 'BUNDLE' : 'PER FILE'}

{name}

{for_}
{price} {unit}
{price === 'Custom' ? '→ scoped on a discovery call' : (billing === 'monthly' ? '→ overage at per-file rate' : '→ invoiced monthly · NET-15')}
INCLUDED
{excluded.length > 0 && ( )}
{price === 'Custom' ? 'Talk to sales →' : 'Request access →'}
); const Footnote = ({ n, children }) => (

{n} {children}

); const VolHead = () => (
Files / month Examiner Closer Underwriter
); const VolRow = ({ tier, base, closer, under, first, last, highlight }) => (
{tier}
{base}
{closer}
{under}
); const PgTh = ({ children, accent }) => (
{children}
); const PgRow = ({ label, a, b, c, last }) => (
{label}
{a}
{b}
{c}
); const RoiRow = ({ label, value, sub, totalA, totalB, last }) => (
{label} {value}
); const Faq = ({ q, a, last }) => (

{q}

{a}

); const PgFootCol = ({ head, items }) => (
{head.toUpperCase()}
{items.map(i => {i})}
); const pricingFooterHref = (label) => { const key = label.toLowerCase(); if (key.includes('overview')) return 'index.html'; if (key.includes('report')) return 'signin.html?return=product.html'; if (key.includes('pricing')) return 'pricing.html'; if (key.includes('security')) return 'security.html'; if (key.includes('changelog')) return 'changelog.html'; if (key.includes('about')) return 'about.html'; if (key.includes('support')) return 'support.html'; if (key.includes('terms')) return 'terms.html'; if (key.includes('privacy')) return 'privacy.html'; if (key.includes('docs')) return 'index.html#docs'; if (key.includes('api') || key.includes('sample')) return 'signin.html?return=product.html'; if (key.includes('customers')) return 'index.html#customers'; // TODO: stub pages for Careers, Press, SOC 2 readiness, Subprocessors return 'index.html#docs'; }; window.Pricing = Pricing;