Experiences

What the page may do, and when

Everything visitors can see is written and approved by your team. The rules below decide which approved experience appears, and they are ordinary code you can read, test and change.

Campaigns

Which experiences each campaign allows

A campaign lists the experiences the system may infer from behavior. A visitor who says what they want in their own words can reach any enabled experience, and help is always available.

Giving Tuesday 2026 Active on the site

Window
Nov 1 – Dec 1, 2026
Priority
donations
Default gift
$50 one-time

Donation-first. Volunteer and help paths still work when a visitor asks for them directly.

Year-round support

Window
Always on
Priority
engagement
Default gift
$50 monthly

Engagement-first. Monthly giving is the default frequency and volunteering is promoted.

Availability of each experience by campaign
ExperienceGiving Tuesday 2026Year-round support
LearnInferred or requestedInferred or requested
Take ActionInferred or requestedInferred or requested
SubscribeInferred or requestedInferred or requested
VolunteerOn request onlyInferred or requested
DonateInferred or requestedInferred or requested
EventsOn request onlyOn request only
Receive HelpAlways onAlways on

Thresholds

Confidence bands and the policy tester

Model confidence and donation readiness are separate. A visitor can look ready to give and the model can still be unsure it can tell. That combination changes nothing. The tester below runs the real policy function, so what you see is what the site would do.

Readiness .91 at confidence .95 clears the gate: the full donation experience opens.

0.90

How sure the model is about the top intent

0.05

Only used when a runner-up is chosen

0.91

How ready to give this visitor looks

0.95

How sure the model is about that readiness

0.00

Possibly needs services or help

0.00

Would rather not give money

0.20

Mostly reading, not acting

Intent confidence bands

Confidence 0.90: strong. Donation adds its own gate on top (readiness ≥ 0.60 at confidence ≥ 0.60), and learn never goes past subtle when inferred.

Outcome · Giving Tuesday 2026

Donate · strong

Approved variant shown

Protect Red Wolves This Giving Tuesday

gt26.donate.strong.v1 · opens donation

Why

  1. Campaign "Giving Tuesday 2026" allows: learn, action, donate, subscribe
  2. donate 0.90 → ≥ 0.7, strong
  3. Readiness 0.91 at confidence 0.95 clears the expanded-donation gate

Current values

Policy thresholds
RuleValueWhat it does
Adapt floor0.45Below this model confidence the page is left alone.
Strong at0.70At or above this the fundraising slot adapts strongly. Between the floor and this it stays subtle.
Help override0.40A help signal at or above this removes every ask. Deliberately lower than any fundraising bar.
Donation readiness0.60Expanded donation UI needs readiness at least this high…
Readiness confidence0.60…and confidence in that readiness at least this high.
Choose floor0.28Two intents both above this, and close together, offer both next steps.
Choose gap0.14How close counts as “too close to call”.
Researching cap0.70A visitor who is mostly researching doesn't get a hard ask.
Can't give0.60At or above this, no gift asks. Action falls back to the free variant.
Asks for0.60A typed request that asks for two paths at or above this gets both offered. Never applied to inferred behavior.
Challenger wins2Consecutive wins needed before the page switches (3 to retreat to the normal page, or confidence ≥ 0.85 to switch at once). Prevents flicker.

Approved copy

Variant library

Jev picks a key. The site renders the approved variant behind it, filling in only a topic name from a fixed list. Nothing here is written by a model. Variants marked Draft are proposals: they are stored, but the site never renders them until someone approves them.

Control (static CTA)

control variants
StatusCopyWhereApproval
ApprovedGive this Giving TuesdayYour gift supports recovery, habitat and community partnerships for {topic}.Donate nowgt26.control.v1Giving Tuesday 2026 · strongDigital Director2026-09-12
ApprovedHelp {topic} thriveYour gift supports recovery, habitat and community partnerships.Donate nowyr.control.v1Year-round support · strongDigital Director2026-09-12

Learn

learn variants
StatusCopyWhereApproval
ApprovedLearn how we're helping {topic}Field teams, landowners and volunteers work together year-round. See what that looks like.See our impactWays to helpgt26.learn.subtle.v1Giving Tuesday 2026 · subtleDigital Director2026-09-12
ApprovedLearn how we're helping {topic}Field teams, landowners and volunteers work together year-round. See what that looks like.See our impactWays to helpyr.learn.subtle.v1Year-round support · subtleDigital Director2026-09-12
ApprovedLearn about {topic}Pick a place to begin. Each one is a short read.Opens: reading-paths*.learn.strong.v1All campaigns · strongDigital Director2026-09-12

Take Action

action variants
StatusCopyWhereApproval
ApprovedAdd your voice for {topic}Not every way to help involves a gift. Sign the letter, share the story, or join a field day.See ways to help*.action.subtle.v1All campaigns · subtleDigital Director2026-09-12
ApprovedHelp Protect {Topic}Add your name to the public-comment letter urging continued recovery funding. It takes under a minute.Take actionSupport this work*.action.strong.v1All campaigns · strongDigital Director2026-09-12
ApprovedWays to help that don't cost a thingYour voice and your time matter just as much. Pick what fits your week.Opens: free-ways*.action.strong.no-cost.v1All campaigns · strong · no-costDigital Director2026-09-12

Donate

donate variants
StatusCopyWhereApproval
ApprovedSupport this workGiving Tuesday gifts fund monitoring, habitat and community partnerships for {topic}.Give this Giving TuesdaySee how gifts are usedgt26.donate.subtle.v1Giving Tuesday 2026 · subtleDigital Director2026-09-12
ApprovedSupport this workMonthly gifts give field teams steady support for {topic}.Become a monthly donorSee how gifts are usedyr.donate.subtle.v1Year-round support · subtleDigital Director2026-09-12
ApprovedProtect {Topic} This Giving TuesdayChoose a gift and we'll put it straight to work.Opens: donationgt26.donate.strong.v1Giving Tuesday 2026 · strongDigital Director2026-09-12
Draft · never shownDouble your impact todayChoose a gift and we'll put it straight to work.Opens: donationgt26.donate.strong.v2-draftGiving Tuesday 2026 · strongPending: Development Director
ApprovedProtect {Topic}, all yearChoose a gift and we'll put it straight to work.Opens: donationyr.donate.strong.v1Year-round support · strongDigital Director2026-09-12

Events

events variants
StatusCopyWhereApproval
ApprovedJoin us in personDinners, paddles, field days and open evenings. Pick one and save your spot.*.events.strong.v1All campaigns · strongDigital Director2026-09-12
ApprovedComing upHere's what's on the calendar.*.events.subtle.v1All campaigns · subtleDigital Director2026-09-12
ApprovedWays to join us that don't cost a thingField days, howl night and livestreams are free. Pick one and save your spot.*.events.strong.free.v1All campaigns · strong · freeDigital Director2026-09-12

Subscribe

subscribe variants
StatusCopyWhereApproval
ApprovedField notes on {topic}One email a month: what our teams saw, what's working, how to help.Get field notes*.subscribe.subtle.v1All campaigns · subtleDigital Director2026-09-12
ApprovedGet field notes on {topic}One email a month: what our teams saw, what's working, how to help. Unsubscribe any time.Opens: subscribe-form*.subscribe.strong.v1All campaigns · strongDigital Director2026-09-12

Volunteer

volunteer variants
StatusCopyWhereApproval
ApprovedGive a weekend to {topic}Habitat restoration and citizen-science days across the coastal plain.See volunteer days*.volunteer.subtle.v1All campaigns · subtleDigital Director2026-09-12
ApprovedJoin a volunteer field crewWeekend habitat restoration and citizen-science days for {topic}. No experience needed.Sign up to volunteerSee the calendarOpens: volunteer-form*.volunteer.strong.v1All campaigns · strongDigital Director2026-09-12

Receive Help

help variants
StatusCopyWhereApproval
ApprovedNeed help with wildlife?If you've found an injured animal, call the care line first.Call (919) 555-0142Read what to do*.help.subtle.v1All campaigns · subtleDigital Director2026-09-12
ApprovedNeed help with wildlife?Found an injured or orphaned animal, or having trouble with wildlife on your land? Here's what to do first.Call (919) 555-0142Read the step-by-step guide*.help.strong.v1All campaigns · strongDigital Director2026-09-12

Events

Approved events calendar

Jev picks an event by its id, or names a kind of event. Every date, price and total on the card comes from this list. An event markedDraft is never shown. Events are typed-request only: no campaign infers them from behavior.

Approved events
EventWhenKindTicketingStatus
Pocosin PaddlepaddleSat, Oct 10, 20269:00 AM · Manns Harbor, NCFundraiser3 options, $45+ticket, sponsorApprovedEvents Manager
Pocosin restoration: ditch pluggingfield-pocosinSat, Oct 17, 20268:30 AM · Dare County, NCVolunteer dayFree RSVP, 12 spotsApprovedEvents Manager
Red Wolf Howl Nighthowl-nightSat, Oct 24, 20266:30 PM · Manteo, NCCommunityFree RSVP, 40 spotsApprovedEvents Manager
Camera-trap check and trail clearingfield-cameraSat, Oct 31, 20269:00 AM · Creswell, NCVolunteer dayFree RSVP, 8 spotsApprovedEvents Manager
Longleaf pine plantingfield-pinesSat, Nov 14, 20269:00 AM · Tyrrell County, NCVolunteer dayFree RSVP, 20 spotsApprovedEvents Manager
Giving Tuesday Wolf Cam Nightwolf-camTue, Dec 1, 20267:00 PM · OnlineCommunityFree RSVPApprovedEvents Manager
Longleaf Winter GalagalaSat, Dec 5, 20266:30 PM · Raleigh, NCFundraiser6 options, $75+ticket, table, sponsorApprovedEvents Manager

Principles

Ten commitments and how each is enforced

A commitment only counts if something in the system holds it. Each one is paired with the mechanism and the place to read it.

  1. We never claim to know an individual's search

    Search Console is aggregate history for a page. It says nothing certain about the person in front of us.

    How it’s enforced. Imported queries are averaged by landing page into a prior that is shrunk by click volume. No per-visitor query field exists anywhere in the visitor state.

    lib/gsc/aggregate.ts · visitorStateSchema

  2. No sensitive or protected attributes

    Nothing infers or stores who someone is: health, faith, income, race, age, location or similar.

    How it’s enforced. The model sees a closed, validated snapshot of session behavior. Every question asks what the visitor is trying to do right now, never what kind of person they are.

    lib/domain/types.ts · lib/jev/questions.ts

  3. Help outranks fundraising

    Someone who might need help gets help, not an ask.

    How it’s enforced. The help rule runs first and at a deliberately low bar (0.40). Service pages carry no asks in either experiment arm, whatever the model says.

    lib/decision/policy.ts · lib/content/pages.ts

  4. Consequential actions are deterministic

    The model never touches money, forms or payment.

    How it’s enforced. Amounts and frequency are parsed by code from what the visitor typed. Gifts, sign-ups and submissions run through ordinary components. Jev's answer keys are a closed set.

    lib/donation/parse.ts · components/adaptive/modules.tsx

  5. The nonprofit approves every word

    The model chooses a key. It never writes copy.

    How it’s enforced. Variants and calendar events are looked up from approved content. Anything with a draft status is skipped, and if no approved variant exists the page is left alone. A ticket price or a date can only come from the calendar.

    lib/content/experiences.ts · findVariant()

  6. Adaptive behavior can be switched off entirely

    One control returns every visitor to the normal static page.

    How it’s enforced. The kill switch on the overview, or ?adaptive=off. When off, no state is inferred and no decision is requested.

    admin overview · DemoProvider

  7. Confidence is never shown to visitors

    A probability is a working signal for the team, not a label to put on a person.

    How it’s enforced. Confidence appears only in the presenter panel and this admin view. Public components render approved copy and nothing else.

    components/adaptive/* · PresenterPanel

  8. A model answer is a signal, not a fact

    When the model isn't sure, the page stays as it is.

    How it’s enforced. Below 0.45 confidence nothing changes. Donation needs readiness and confidence in that readiness. A new experience must win repeatedly before the page changes, to avoid flicker.

    lib/decision/policy.ts · lib/decision/stabilize.ts

  9. Only what's needed, nothing identifying

    No names, emails, device fingerprints or cross-site tracking feed a decision.

    How it’s enforced. The request is validated against a strict schema on the server. The visitor id is a random on-device value used only to assign an experiment arm.

    app/api/decide/route.ts · visitorStateSchema

  10. The visitor's word beats our inference

    If someone tells us what they want, or dismisses a prompt, we listen.

    How it’s enforced. A stated request skips inference and resolves straight to approved content, and a request that asks for two things gets both. A dismissed experience is not shown again this session.

    lib/decision/policy.ts · explicitResolved() · dismissed