Simple, Readable, Parseable Surveys for humans and machines

A survey language
you can
actually read.

SRP is a domain-specific language for surveys. Write surveys in any editor, version them with git, review them without platform access, and hand them to any AI assistant — no schema required.

customer_sat.srp
Survey "customer_satisfaction" do
  title "Customer Satisfaction Study"
  locale "en"

  Page "intro" do

    SingleSelect "overall" do
      text "Overall, how satisfied are you?"
      required

      option "Very satisfied" do
        segment "promoter"
      end
      option "Satisfied"
      option "Neutral"
      option "Dissatisfied" do
        segment "detractor"
      end
    end

    OpenEnd "followup" do
      text  "Tell us more about your experience."
      show_only_if "detractor"
    end

  end
end
Decipher XML — same two questions
<?xml version="1.0" encoding="UTF-8"?>
<survey  compatMode="159" alt="1">
  <block label="B1" randomize="0">
    <radio label="q1" optional="0">
      <title>Do you own a smartphone?</title>
      <row label="r1">Yes</row>
      <row label="r2">No</row>
    </radio>
    <radio label="q2" optional="0"
           where="q1.r1">
      <title>Which operating system?</title>
      <row label="r1">Android</row>
      <row label="r2">iOS</row>
    </radio>
  </block>
</survey>
SRP — same survey
SingleSelect "own_phone" do
  text "Do you own a smartphone?"
  required

  option "Yes" do
    segment "phone_owner"
  end
  option "No"
end

SingleSelect "phone_os" do
  text "Which operating system?"
  show_only_if "phone_owner"
  required

  option "Android"
  option "iOS"
end

Survey platforms
serialize your work into formats
no one can actually use.

Every major research platform stores surveys as XML, proprietary JSON, or binary files. The moment you save, your instrument stops being a document you can read, version, share, or hand to an AI assistant.

Decipher / Forsta
XML

Verbose nested XML with cryptic attribute flags. Diffs are unreadable. Branching logic hidden in attribute strings.

Qualtrics
QSF — proprietary JSON

Thousands of lines of deeply nested JSON with internal IDs. Version control produces meaningless noise.

Dimensions / SPSS
.mdd / .ddf — binary

Binary metadata database. Completely opaque outside the platform. Translations require the full licensed toolchain.

XForm / ODK
XML (via XLSX)

XLSForm moved authoring into spreadsheets, but XLSX is still binary. Merge conflicts are structurally unsolvable.

Confirmit / Forsta HX
Proprietary XML / JSON

Survey logic lives in a GUI event model. Exports are snapshots of internal state, not readable definitions.

Triple-S
XML — industry standard

The closest the industry has to a neutral format — but Triple-S is a data exchange standard, not an authoring format.

Voxco
Proprietary scripting

Custom scripting language with no portable artifacts. Survey logic cannot leave the platform in any reusable form.

SurveyMonkey / Momentive
No export format

No export path. Surveys are data in their database, not artifacts you own. Migration means rebuilding from scratch.

01

No meaningful version control

XML and binary formats produce diffs that are structurally correct but semantically unreadable. You cannot tell what changed in a question — only that the file changed.

02

Unreadable without the GUI

Open a Qualtrics QSF or Decipher XML in any text editor. Thousands of lines of structural noise precede the question text. Reviewing requires platform access.

03

Vendor lock-in by default

Survey logic authored in a platform GUI cannot be migrated without re-implementation. The format is an internal state snapshot, not a portable standard.

04

AI tools cannot help

LLMs write fluent Ruby, Python, and YAML. They produce broken, hallucinated XML when asked for Decipher or QSF. Your survey format is outside any reasonable training distribution.

05

Translation workflows are manual

Extracting strings from XML for translation requires custom tooling. Merging translations back requires more. Most teams resort to spreadsheet copy-paste.

06

Collaboration requires a license

You cannot send a survey to a colleague for review in any format they can read without platform access. There is no equivalent of a readable document.

SRP is a working format.
Plain text that reads like what it describes.

SRP is a domain-specific language purpose-built for survey design. Its syntax is minimal and consistent — close enough to natural language that anyone familiar with the subject matter can read it without training.

Every SRP file is a plain text file. It opens in any editor. It diffs cleanly in any version control system. It can be reviewed by a stakeholder without platform access and written or modified by any AI coding assistant.

SRP is not a delivery format — it is a working format. Design and review your instrument in SRP, then render it to whichever platform your organization already owns. The translation is mechanical. The design is yours and stays portable.

  • Git-friendly — clean diffs, sensible merge behavior, real commit history
  • Readable by any team member without platform access or training
  • Writable by any LLM that has seen Ruby or structured YAML
  • Shareable as a file — review via email, PR, or messaging
  • Translatable — string extraction is a text operation, not a database query
  • Renderable to HTML, XForm, and additional platform targets

The survey format your
LLM already understands.

Plain text meets plain language.

SRP is sufficiently close to natural language that current LLMs produce it reliably without fine-tuning. The DSL syntax is small and consistent — there is no XML schema to misinterpret, no proprietary JSON structure to invent.

Describe a survey in a prompt. Receive valid SRP. Validate, render, and ship. Any AI assistant your team already uses can draft, translate, refactor, and document SRP instruments without additional configuration.

  • Generate full survey instruments from a research brief
  • Translate question text while preserving routing structure
  • Refactor skip logic and branching across a large instrument
  • Review question wording for clarity, bias, or leading language
  • Convert legacy platform scripts to portable SRP
  • Generate plain-language documentation from survey definitions

Learn SRP in an afternoon.

The language is intentionally small. There are no surprises, no meta-syntax, and no required configuration. Start with the introduction — the core language is covered in five minutes.