Teams and organizations at an early or mixed stage of AI adoption, including business leaders, product teams, and governance stakeholders.
What it assesses Whether foundational controls are in place to safely adopt AI — including evidence handling, scope definition, ownership, and basic operational safeguards.
How it helps This questionnaire provides a baseline snapshot of readiness. It highlights whether AI use is still exploratory or whether minimum controls exist to prevent silent errors, misuse, or audit exposure. Results help teams understand whether they can proceed responsibly or need to pause and formalise fundamentals first.
Best used when
Starting AI pilots
Scaling from experimentation to broader use
Aligning business, technical, and governance expectations
Answer each question. Your score updates instantly. This is designed to be practical: evidence, governance, operations. Optional fields below help teams correlate results internally.
Status:Not scoredCoverage:0%Score:—Tier:—
Your role (optional)
— Select role —
Executive / Strategy
Product / Operations
Engineering
Risk / Governance / Compliance
HR / Ethics
Other
Company or project identifier (optional)
Your score
0
out of 45
Tier
—
Answer the questions to see your tier.
Section A — Evidence & Provenance
1) Do outputs include explicit citations or source references?
Never
Sometimes, manual
Often, automated
Always, enforced
2) Can you trace a major claim to a specific document, version, or timestamp?
No
Rarely
Usually
Always
3) Are permitted sources defined (approved corpora, domains, or internal documents)?
No
Informal / team knowledge
Documented
Enforced in the system
4) Is retrieval filtered by metadata (date, jurisdiction, document type)?
No
Occasionally
Usually
Always
5) Do you have verification that can refuse or return a supported partial answer?
No
Manual review only
Some automated checks
Enforced, logged, and reliable
Section B — Governance & Policy
6) Are use cases explicitly scoped (what the system can and cannot do)?
No
Informal
Documented
Documented and enforced
7) Are owners defined (business, product, engineering, risk, model)?
No
Partially
Mostly
Fully defined and active
8) Do you maintain change logs for prompts, models, or data?
No
Ad-hoc
Consistent
Consistent and audited
9) Do you have incident response for AI failures?
No
Informal
Documented
Practiced and measurable
10) Are policy constraints enforceable in the system (not just documented)?
No
Some constraints are enforced
Most constraints are enforced
Constraints are enforced and tested
Section C — Operations & Drift
11) Do you monitor refusal rates and verification pass rates over time?
No
Rarely
Regularly
Regularly with alerting
12) Do you test failure paths (missing evidence, contradictions, policy conflicts)?
No
Occasionally
Usually
Always
13) Is evaluation separated by stage (retrieval vs reasoning vs compliance)?
No
Partially
Mostly
Fully
14) Are logs exportable for audit or review?
No
Only partial logs
Mostly exportable
Fully exportable and structured
15) Do humans have defined review workflows for high-stakes outputs?
No
Informal review
Defined workflow
Defined and audited
Tip: Use the email or copy function to share results internally and compare perspectives across roles.
Tier
—
—
What this means
—
—
Recommended next steps
Built for practical governance: evidence, change control, incident readiness, and measurable operations.
(function(){
function init(){
const root = document.getElementById(‘oyez-ai-adoption-readiness’);
if(!root) return false;
if(root.__oyezInit) return true;
root.__oyezInit = true;
const MAX=45, TOTAL=15;
const bar = root.querySelector(‘#oyezAiqBar’);
const statusEl = root.querySelector(‘#oyezAiqStatus’);
const coverageEl = root.querySelector(‘#oyezAiqCoverage’);
const scorePillEl = root.querySelector(‘#oyezAiqScorePill’);
const tierPillEl = root.querySelector(‘#oyezAiqTierPill’);
const scoreBigEl = root.querySelector(‘#oyezAiqScoreBig’);
const tierTopEl = root.querySelector(‘#oyezAiqTierTop’);
const tierNoteEl = root.querySelector(‘#oyezAiqTierNote’);
const calcBtn = root.querySelector(‘#oyezAiqCalc’);
const copyBtn = root.querySelector(‘#oyezAiqCopy’);
const emailBtn = root.querySelector(‘#oyezAiqEmail’);
const resetBtn = root.querySelector(‘#oyezAiqReset’);
const results = root.querySelector(‘#oyezAiqResults’);
const tierEl = root.querySelector(‘#oyezAiqTier’);
const tierLongEl = root.querySelector(‘#oyezAiqTierLong’);
const meaningEl = root.querySelector(‘#oyezAiqMeaning’);
const meaningDescEl = root.querySelector(‘#oyezAiqMeaningDesc’);
const nextEl = root.querySelector(‘#oyezAiqNext’);
const roleEl = root.querySelector(‘#oyezAiqRole’);
const orgEl = root.querySelector(‘#oyezAiqOrg’);
function updateSelected(){
root.querySelectorAll(‘.opt’).forEach(opt=>{
const r = opt.querySelector(‘input[type=”radio”]’);
opt.classList.toggle(‘selected’, !!(r && r.checked));
});
}
function answeredCount(){
let n=0;
for(let i=1;i<=TOTAL;i++){
if(root.querySelector(`input[name="q${i}a"]:checked`)) n++;
}
return n;
}
function score(){
let s=0;
for(let i=1;i<=TOTAL;i++){
const picked = root.querySelector(`input[name="q${i}a"]:checked`);
if(picked) s += parseInt(picked.value,10);
}
return s;
}
function tierFromScore(s){
if(s<=15) return 'Foundational';
if(s<=30) return 'Operational';
return 'Audit-ready';
}
function packFor(tier){
const packs={
'Foundational':{
note:'Early-stage controls. Value exists, but you are exposed to silent errors and weak auditability.',
meaning:'Build the evidence layer',
meaningDesc:'Prioritise citations, traceability, and enforceable constraints before scaling.',
next:[
'Define permitted sources (domains/corpora) and enforce them in the system.',
'Log retrieval context (top-k, IDs, timestamps) for every response.',
'Add verification that can refuse or return supported partial answers.',
'Document scope (can/cannot), owners, and incident response basics.'
]
},
'Operational':{
note:'Deployable discipline exists, but consistency and enforcement may drift over time.',
meaning:'Stabilise & enforce',
meaningDesc:'Move from “documented” controls to tested, enforced, and measurable controls.',
next:[
'Make policy constraints enforceable (not just written).',
'Maintain change logs for models/prompts/data and audit them periodically.',
'Add failure-path testing for missing evidence and contradictions.',
'Separate evaluation by stage (retrieval vs reasoning vs compliance).'
]
},
'Audit-ready':{
note:'Strong governance + operations. Your focus is maintaining consistency as complexity grows.',
meaning:'Scale with confidence',
meaningDesc:'Standardise traces, strengthen monitoring, and keep evidence exportable.',
next:[
'Ensure logs are structured and exportable for audit/review.',
'Maintain alerting on refusal/verification trends and drift signals.',
'Run practiced incident drills with measurable remediation outcomes.',
'Keep high-stakes human review workflows defined and audited.'
]
}
};
return packs[tier];
}
function compute(){
updateSelected();
const ans = answeredCount();
const cov = Math.round((ans/TOTAL)*100);
const s = score();
bar.style.width = cov + '%';
statusEl.textContent = ans===0 ? 'Not scored' : (ans{ const li=document.createElement(‘li’); li.textContent=x; nextEl.appendChild(li); });
results.style.display=’block’;
copyBtn.disabled=false; emailBtn.disabled=false;
return {ans,cov,s,tier,pack,role:roleEl.value||’—’,org:orgEl.value||’—’};
}
function summaryText(state){
const lines=[];
lines.push(‘OYEZ — AI Adoption Readiness Questionnaire’);
lines.push(‘—————————————‘);
lines.push(`Role: ${state.role}`);
lines.push(`Company / Project: ${state.org}`);
lines.push(”);
lines.push(`Status: ${state.ans===TOTAL ? ‘Completed’ : ‘In progress’}`);
lines.push(`Coverage: ${state.cov}% (${state.ans}/${TOTAL})`);
lines.push(`Score: ${state.s}/45`);
lines.push(`Tier: ${state.tier}`);
lines.push(”);
lines.push(state.pack.note);
lines.push(”);
lines.push(‘Recommended next steps:’);
state.pack.next.forEach((n,i)=>lines.push(`${i+1}. ${n}`));
return lines.join(‘\n’);
}
root.addEventListener(‘change’, (e)=>{
if(e.target && e.target.matches(‘input[type=”radio”]’)) compute();
});
calcBtn.addEventListener(‘click’, (e)=>{ e.preventDefault(); compute(); });
copyBtn.addEventListener(‘click’, async (e)=>{
e.preventDefault();
const state = compute();
if(!state) return;
const text = summaryText(state);
try{
await navigator.clipboard.writeText(text);
copyBtn.textContent=’Copied’;
setTimeout(()=>copyBtn.textContent=’Copy Summary’, 900);
}catch(err){
const ta=document.createElement(‘textarea’);
ta.value=text; document.body.appendChild(ta);
ta.select(); document.execCommand(‘copy’);
document.body.removeChild(ta);
copyBtn.textContent=’Copied’;
setTimeout(()=>copyBtn.textContent=’Copy Summary’, 900);
}
});
emailBtn.addEventListener(‘click’, (e)=>{
e.preventDefault();
const state = compute();
if(!state) return;
const subject = encodeURIComponent(`Oyez — AI Adoption Readiness (${state.tier}, ${state.s}/45)`);
const body = encodeURIComponent(summaryText(state));
window.location.href = `mailto:?subject=${subject}&body=${body}`;
});
resetBtn.addEventListener(‘click’, (e)=>{
e.preventDefault();
root.querySelectorAll(‘input[type=”radio”]’).forEach(r=>r.checked=false);
roleEl.value=”; orgEl.value=”;
compute();
});
compute();
return true;
}
if(!init()){
let tries=0;
const t=setInterval(()=>{
tries++;
if(init() || tries>=50) clearInterval(t);
}, 100);
}
})();