applied · Level 3

AI market research and defensible claims

A practical workbook for adult marketing teams: evidence classes, claim scope and accountable correction.

By Mickarle Sean Junior Wagstaff-Irons - Micky Irons

  • Level 3Building
  • 720 min
  • 8 chapters
  • Online course and PDF workbook
original illustrationapplied / 03

Read, practise and review

Your next step

Start this course online

Register your start, then work through the lessons and exercises at your own pace. You can download the PDF separately. Where a scored exam is available, you will find it after the lessons.

Register or resume your course

Mickai privately records this registration and sends its team a course-start notification. It records your intention to start, not proof of attendance or completion. Our course-start privacy notice explains the details and the 30-day resume cookie.

Follow the Mickai company page on LinkedIn

You can start learning without subscribing or following. Newsletter email confirmation and provider enrolment are recorded separately.

Start with the essentials

The short answer

Start with a research question and receiving decision. Keep observed research, synthetic records, hypotheses and assertions distinct; check source rights and intended use before processing. Match each claim to current evidence, disclose sample and comparison limits, and retain unsupported wording as held. Lark is fully fictional: its arithmetic, source register and knowledge assessment provide neither actual customers nor campaign approval.

What you will learn

  • Frame a question and receiving decision without inventing demand, customers or findings.
  • Classify all six Lark evidence kinds and keep processing purposes, source rights and provider questions separate.
  • Explain why 12 of 20 authored choices does not establish a population preference or conventional margin of error.
  • Trace exact claims to current sources and identify five distinct unsupported assertions with narrower teaching alternatives.
  • Correct version-dependent comparisons and rehearse stop, resume, source failure and inclusive expiry without restoring stale decisions.
  • Assemble a complete fictional campaign evidence dossier with human challenge, confidence reasons, explicit unknowns and held real release.

Who it is for

Adult marketing, brand, communications and customer insight teams. Synthetic stationery research only; no real customers, advertiser, mailing list, AI output, regulated-product claim or campaign action.

Before you start

  • Understand basic AI limitations and the difference between generated wording and evidence.
  • Understand privacy and data minimisation; actual customer processing is outside this workbook.
  • Optional offline lab uses Python 3.10+ standard library. The paper route needs no model, paid account, network or customer file.

Jurisdiction and study scope

These are selected reference pathways. Choose the relevant pathway before applying the exercises. This does not determine applicable law or provide worldwide coverage.

All pathway limits
  • Actual campaign applicability unresolved: Identify advertiser, product, audience, channel, territory, actual evidence and intended data uses before qualified review. Fictional claim IDs grant no real authority.
  • Scoped UK worked context: Selected CAP non-broadcast rules and nonbinding advice, CMA trader-consumer guidance, ICO DUAA-qualified guidance and limited IPO source-rights context. Operative DMCC and CDPA text were not retrieved; broadcast, special claims and platform requirements remain open.
  • Other territory or cross-border campaign: Historical FTC US policy and AAPOR professional disclosure practice are contextual sources, not worldwide clearance. EU, platform and product-specific applicability needs its own actual primary-source review.

Run the synthetic exercise

Download the exercise source, tests and instructions (ZIP)

No real records, external service or model is used by this exercise. Read the README before running it.

Owner-commissioned original teaching prepared with AI assistance. Lark evidence, sponsor wording and records are authored fiction. No actual customer research, model run, source licence, personal-data basis, practitioner endorsement or campaign approval is claimed.

Learn in your browser · Chapter 01 of 08

01

Research questions and evidence classes

Start with a decision and preserve the origin of every item before turning it into a finding.

A market question begins with a decision that somebody needs to make, rather than a statistic somebody hopes to publish. In the fictional Lark-Stationery-Insight-Training project, a sponsor wants to know whether a clearer pack-description concept merits actual research. The immediate decision is about preparing that research, not predicting national sales. Write the question, intended population, period, alternatives and receiving decision before asking for a summary. A useful first question is what evidence would be needed to investigate preference between descriptions A and B among a defined group. That wording leaves demand, buying behaviour and the value of the proposed concept open. Preference for a description is also different from purchasing a product.

Evidence classes answer the question of origin. They should travel with the material whenever it is shortened, sorted or copied into a slide. An observed finding would originate in a described actual study or measurement, with a traceable method and record. This course has no such study. A synthetic record is authored to teach a distinction. A supplied hypothetical model statement is wording designed for examination, rather than output generated during this course. A stakeholder assertion records what a fictional sponsor says. An assumption fills a reasoning gap provisionally. An unknown records the gap without filling it. These classes are useful because fluent presentation can otherwise make unlike material appear equally established.

Lark contains exactly six source cards with six distinct kinds. L-S01 is synthetic_sample_table: twenty authored row choices, twelve A and eight B. L-S02 is authored_model_hypothesis containing an unsupported 80% demand assertion. L-S03 is synthetic_benchmark with current authored 40/50-second records. L-S04 is synthetic_archived_benchmark containing obsolete 30/50-second records. L-S05 is hypothetical_rights_restriction, a metadata card describing unresolved permission. L-S06 is stakeholder_assertion, including a fabricated endorsement and universal permission assertion. Listing these cards does not turn them into interviews, run a model, read a restricted report or establish a licence. A title such as evidence inventory means an inventory of teaching material here.

A finding is a bounded statement derived from material through an explained method. A claim is wording that somebody might ask an audience to believe. The distinction is not that findings are always true and claims always doubtful. Both need scrutiny, but their scope and purpose differ. Twelve of twenty authored rows select A describes this worksheet accurately. Sixty per cent of UK buyers prefer A changes both the population and the evidence class. The arithmetic survives while the inference fails. A careful researcher asks which words made that jump. Here, UK buyers adds an unsupported target population, and prefer makes fictional choices sound like observations of people.

Origin is necessary but insufficient for deciding whether a statement is supported. A genuine external competitor fact, if later introduced with rights and context checked, might establish a price on a specified date. It would not establish what customers want or how a different pack performs. An authentic quote could express one person's view without estimating the frequency of that view. A properly labelled assumption can still be useful for planning a question. The working discipline is to identify what each item could support and what it cannot support. Do not rank every source on a single quality ladder and then allow its strongest label to authorise unrelated conclusions.

AAPOR's disclosure approach asks researchers to expose relevant methods, response counts, sampling frames, limitations and AI involvement. Its current served transparency material distinguishes human responses from AI-generated material. Use aapor-transparency as a professional disclosure reference, not UK legislation or an endorsement of this worksheet. Disclosure helps someone inspect an inference; it does not make the inference representative. The page has no displayed revision date in the reviewed register, so do not invent one. For Lark, the appropriate disclosure is especially direct: all twenty choices are authored, there are no human respondents, and no statistical population estimate has been established. A transparent fiction remains fiction.

Consider a worked contrast. An average paper brief says the sponsor needs proof that customers want the new description, then places the unsupported 80% sentence from L-S02 above a small source footnote. It has chosen an answer before defining the question. An elite paper brief records the sponsor's commercial interest, separates description preference from buying demand, labels L-S02 as challenge wording and asks what actual recruitment and measurement would be required. It preserves L-S01 as a synthetic worksheet rather than a pilot study. The elite version is useful because a colleague can disagree with its question, identify a missing population definition or suggest an alternative explanation without first dismantling a false finding.

The invented endorsement in L-S06 offers another diagnostic. Suppose a paper drafter paraphrases it as a customer calling A the best choice. That sentence is not a quotation from a participant and should not appear in a findings section. Preserve the sponsor assertion in the challenge record, identify the missing actual person, statement, context and use permission, and turn the commercial curiosity into a research question. Ask what people would understand by best and what task or preference the enquiry should investigate. Removing the fictional person's name alone would not repair the problem. It would leave a fabricated speaker and unsupported endorsement hidden inside an apparently anonymous summary.

Use a six-step evidence-class method before drafting a research brief. First name the receiving decision and its limits. Second state the question and intended population without assuming the answer. Third inventory every supplied item with its exact ID and kind. Fourth separate direct description, inference, stakeholder assertion and unknown. Fifth identify the new evidence needed for any proposed leap. Sixth write a bounded planning output and retain the rejected wording for challenge. Keeping the old wording is useful: a reviewer can see whether the repair removed the unsupported meaning or merely added a small caveat. This method can be done on paper before any permission to use an AI tool has been considered.

Confidence should refer to a specified proposition and its support. You can have clear arithmetic support for twelve divided by twenty while having no support for a national preference estimate. A model's confident language, an attractive chart or the sponsor's seniority does not change that separation. Write confidence reasons rather than an unexplained score: the narrow row count is supported by the supplied synthetic table; population inference remains unknown because no actual sampling occurred. Do not invent a probability that the campaign will succeed. The lab's fixed classifications describe seven exact teaching candidates, not evaluate the truth of arbitrary sentences entered by a learner.

The chapter's paper outcome is a question-led brief with an evidence inventory and explicit next decisions. It is not a campaign headline, research finding or permission to collect data. Separate the work still needed: actual research design, source rights, applicable personal-data decisions, provider review and eventual claims review. A useful next action might be to define the population more carefully rather than recruit immediately. Another might be to investigate whether description clarity is the relevant obstacle at all. The reason to retain unknowns is practical: they show where a proposed enquiry could change the commercial decision. When a summary contains no gaps, check whether the gaps were resolved or simply edited away.

  1. Name the planning decision and distinguish it from a sales or campaign decision.
  2. Define question, intended population, period and alternatives.
  3. Record L-S01 through L-S06 with their six exact evidence kinds.
  4. Separate description from inference, assertion and unknown.
  5. Name additional evidence needed for each unsupported leap.
  6. Retain original wording beside a bounded brief and challenge questions.
text · 6 lines
ROLE: Adult Lark research-brief drafter.
CONSTRAINTS: Synthetic teaching inventory only; no actual customers, respondents, model run, upload or campaign approval.
PROCESS: Frame the question and receiving decision; classify each source; separate description, inference, assertion and unknown.
VERIFICATION: Preserve all six IDs/kinds; confirm 12 A and 8 B among 20 authored rows; do not treat L-S02 or L-S06 as observed research.
OUTPUT SCHEMA: question; intendedPopulation; period; decision; sourceId; evidenceKind; supportedScope; unknown; nextEvidence; rejectedWording.
FAILURE MODES: Hold invented quotations, demand statistics and population conversion; do not infer permissions from a sponsor assertion. Paper pattern only, not an executed model prompt.

Keep origin attached to the research question

Classify material before allowing it to support a narrower or broader statement.

Frame the questionInventory sourcesPreserve originTest the inferenceBounded planning briefRetain the gap
Steps
  • Frame the question: Decision and population
  • Inventory sources: Six exact kinds
  • Preserve origin: Authored, assertion, unknown
  • Test the inference: What new meaning was added?
  • Bounded planning brief: No research finding
  • Retain the gap: Define actual next evidence
Relationships and conditions
  1. Frame the question to Inventory sources: List what exists
  2. Frame the question to Preserve origin: Ask where it came from
  3. Inventory sources to Test the inference: Keep IDs and kinds
  4. Preserve origin to Test the inference: Reject origin laundering
  5. Test the inference to Bounded planning brief: State only supported scope
  6. Test the inference to Retain the gap: Record missing actual evidence

Text equivalent: define the question, inventory the sources and preserve their origin. Test the scope of each inference. Produce a bounded planning brief while retaining missing actual evidence as a separate gap.

Try it yourself · Activity 01

45 minutes

Dismantle a demand-first brief

On paper, a fictional sponsor asks for a UK demand finding and offers L-S02 as an 80% statistic, L-S01 as twenty responses and L-S06 as a customer endorsement. Produce a planning brief using all six Lark cards. Do not invent a participant or a source.

  1. Define the actual planning decision, intended population and a question that could challenge the sponsor assumption.
  2. Create six source-ID/kind rows and identify what each can and cannot support.
  3. Repair the population statistic and endorsement without deleting their original wording.
  4. Success criteria: six accurate IDs/kinds; a question rather than a preset finding; authored-row arithmetic separated from population inference; fabricated endorsement retained as a rejected assertion; actual research and permission gaps explicit.

Which single word in your first draft would most easily turn authored teaching material into an apparent observation?

Worked answer

Ask whether, for a defined future research population and period, description A is clearer or preferred for a specified task compared with B, and whether that question is relevant to deciding if actual research merits preparation. L-S01 is synthetic_sample_table, L-S02 authored_model_hypothesis, L-S03 synthetic_benchmark, L-S04 synthetic_archived_benchmark, L-S05 hypothetical_rights_restriction and L-S06 stakeholder_assertion. Twelve of twenty authored rows choose A, but no UK preference estimate follows. L-S02 supplies no observed demand statistic; L-S06 supplies no actual customer endorsement or permission record. Preserve both original assertions beside those reasons. Keep L-S04 historical and L-S05 metadata-only. Ask what actual population, recruitment, questions, rights and data-handling decisions would be needed. These answers are paper expectations; compare them with separately attributed execution evidence before claiming observed results.

Scroll sideways to see every column.

Research questions and evidence classes · Table 1
Chapter review questionAnswer after your attempt
Why define a receiving decision before requesting a summary?It determines the question and necessary scope; otherwise a desired headline can choose the answer in advance.
What changes when 12/20 becomes a UK-buyer preference?The arithmetic is reused while fictional rows become human observations and an unsupported national population is introduced.
What do the six evidence kinds classify?The origin and teaching status of each card, not a universal quality score or actual research approval.
How can an assumption be useful without becoming a finding?Keep it labelled and use it to formulate a question whose answer could change the decision.
What does AAPOR transparency establish here?A professional disclosure reference; it neither endorses Lark nor makes a synthetic table representative.
Why preserve rejected wording?It lets a reviewer check whether the unsupported meaning was removed rather than hidden by a qualification.

Apply what you learned · Practice

Which wording preserves the origin of L-S01?

Explanation and answer

Twelve of twenty authored rows select A; no actual respondents or population estimate. The second option states the supplied count and its synthetic boundary; the others introduce unsupported people or inference.

Practice only. This does not count towards your exam or certificate.

Illustrated claim-proofing press with six source-kind cards, five held claims and two bounded internal teaching statements.
Six evidence kinds feed a fictional claim-proofing dossier. Five claims remain held; only two source-bounded worksheet statements are retained. Real campaign release stays HOLD.

Illustration description: Creator-produced editorial illustration, not a photograph or record of actual research. At left, six distinct source cards are labelled L-S01 synthetic_sample_table, L-S02 authored_model_hypothesis, L-S03 synthetic_benchmark, L-S04 synthetic_archived_benchmark, L-S05 hypothetical_rights_restriction and L-S06 stakeholder_assertion. A stylised mechanical proofing press and cream folio occupy the centre. At right, five labelled claims remain HOLD: C01 population inference, C02 invented demand evidence, C03 unsupported superlative, C04 fabricated endorsement, and C05 rights and purpose unknown. Two separate cards retain C06 fictional worksheet arithmetic and C07 version-bound authored comparison as bounded internal teaching statements, not approved public claims. The bottom rail states that this is an authored worksheet, with no actual customers or model run; real campaign release remains HOLD. The press is a visual metaphor, not instructions or a real deployed enforcement system.

Next chapter

Learn in your browser · Chapter 02 of 08

02

Permitted customer and market data

Separate availability, source rights, participation, personal-data decisions and provider handling before proposing use.

Permitted data is a relationship between material, purpose, actor and action. A team may be able to read a report while lacking permission to copy it into a commercial research dossier or send it to a provider. A person may agree to answer a research question without agreeing to advertising contact. A provider may process prompts to deliver a service while offering different conditions for retaining or training on them. These are different questions, and a single checkbox called approved data conceals them. In Lark, no actual customer information or restricted report is present. The practical task is to identify which decisions a real project would need before using either.

L-S05 is a hypothetical_rights_restriction card. It describes unresolved reuse, training and personal-data handling, rather than embedding a third-party document. The contract method list_evidence_inventory lists that metadata. It does not open a paywalled report, retrieve customer records or grant extraction permission. This distinction matters because an inventory can accurately record a problem without resolving it. In a real project, a missing document might prevent evaluation of the proposed research method as well as its rights. Record the absence honestly. Do not make up a plausible report passage to complete a source-linked summary, and do not treat a metadata card as documentary proof of the report's contents.

Separate four permission layers in a proposed marketing workflow. The source-rights layer asks about ownership, licence, applicable exceptions and contractual limits. The personal-data layer asks whether information relates to identifiable people and what lawful, transparent processing is justified. The participation layer asks what was explained and agreed for the study, including quotations and later uses. The provider layer asks who receives the material, for which service, retention, onward processing and training purposes. A decision at one layer can inform another but cannot replace it. Paying for access does not by itself answer all four. Nor does calling the activity research choose a lawful basis or settle commercial reuse rights.

Use ico-data-principles for its reviewed overview of purpose limitation, minimisation, accuracy, retention, security and accountability. Those obligations sit alongside lawfulness and transparency; accuracy alone is not permission. The source register records a current DUAA review notice and a March 2026 update concerning purpose-limitation material, rather than claiming every linked section has been refreshed. For this course, no real basis, special-category condition, transfer decision or retention period is selected. A sensible proposed data record states the decision still required and the person or function that must review it. It should not disguise an unresolved choice as a legal conclusion produced by the teaching exercise.

Minimisation starts from a specific analysis question. If the question concerns the clarity of two descriptions, full purchase histories, email addresses and free-text life stories may add risk without serving that question. This is a planning example, not a finding about actual respondents or a field list approved for a real study. Explain why each proposed field is necessary, whether a coarser or nonpersonal alternative can meet the purpose, and how it would be removed when no longer needed. The reviewed ico-ai-minimisation guidance rejects possible future usefulness as a reason to collect or keep more personal data. Its older update date and current DUAA review notice must remain visible in source notes.

A worksheet total is not an anonymity certificate. Removing names from comments can leave combinations of events, locations or unusual purchases that identify a person. Aggregating a very small group can also reveal information when another party knows who belongs to it. This chapter therefore asks about identifiability and disclosure rather than marking every spreadsheet anonymous. Lark's authored rows contain no actual people, so there is nothing here to de-identify or upload. For a real proposed study, retain review of the data itself, the receiving context and available additional information. Synthetic teaching data demonstrates the reasoning task without proving that a customer's chosen transformation would be adequate.

Participation and later contact deserve their own record. A research invitation, a privacy notice and a marketing message have different functions. Agreement to discuss a description does not automatically authorise promotional follow-up, provider training or publication of an identifiable quotation. The reviewed ico-direct-marketing guidance addresses activity and channel-specific planning, lawful basis and consent requirements, with a 28 April 2026 revision recorded. It does not approve any Lark contact or establish a universal rule that all research uses require marketing consent. Where consent is relied on, its specificity matters; merely acknowledging a privacy policy is not evidence of marketing consent. Leave actual channel decisions to the applicable reviewed process.

Source rights also matter when no personal data is involved. A publicly visible chart can be copyrighted, licensed for a limited audience or subject to other terms. Attribution helps identify where something came from but is not a general licence to copy. The selected ipo-source-rights guidance describes a UK text and data mining exception limited to noncommercial research with lawful access. The March 2026 government report separates existing exceptions from consultation options. The operative CDPA text was unavailable to the source reviewer, so this course does not resolve a commercial scraping or training question through statutory interpretation. A hypothetical commercial insight team should record the rights question and hold the intended reuse pending qualified review.

Compare two paper approaches to L-S05. The average analyst writes readable equals usable, assumes the sponsor has purchased everything, and proposes uploading the report to save summarising time. That approach invents both the document and its permission. The elite analyst keeps the source metadata in the inventory, marks the actual report absent, separates internal reading, quotation, provider processing and training as proposed actions, and records an unresolved rights and privacy decision for each relevant action. A source-bounded alternative is to draft the research questions without the report. The elite approach changes the working plan instead of adding a disclaimer to an upload whose necessary decisions remain missing.

A permission inventory should be an action matrix rather than a catalogue of reassuring words. For each proposed action, record the exact material, purpose, recipient, evidence of rights or agreement, personal-data questions, retention or deletion decision and unresolved reviewer. A field can say unknown, but it should specify what is unknown. For example, model-training permission unresolved differs from report not available for inspection. Keep the sponsor's L-S06 assertion that all inputs are licensed and consented beside the contradictory absence of records. The paper expectation for L-C05 is HOLD_RIGHTS_AND_PURPOSE_UNKNOWN. The fixed label teaches a supplied scenario; it is not a real determination that a particular licence is invalid.

The six-step permission method ends with a concrete hold or a bounded alternative, not an invented clearance. Inventory the material, split the intended actions, test the purpose and necessity of fields, identify the relevant rights and personal-data decisions, ask provider-specific questions, and record who must resolve each gap. A team can often continue with a synthetic worksheet or a source-free question brief while real processing remains held. Such progress is useful because it avoids making a commercial deadline the reason to skip review. Even if a later reviewer permits one action, preserve its limits: permission for one recipient or purpose does not silently extend to every tool, campaign, quotation or future training use.

  1. Inventory actual material separately from metadata-only cards and absent documents.
  2. Split reading, copying, quoting, provider processing, training and contact into distinct proposed actions.
  3. Justify each proposed field against the research question and consider less intrusive alternatives.
  4. Record source-rights, personal-data and participation decisions without selecting a real legal basis.
  5. Ask provider-specific recipient, retention, onward-use and training questions.
  6. Retain a concrete hold or bounded alternative and identify the reviewer needed for each gap.
text · 6 lines
ROLE: Adult Lark data-use planner.
CONSTRAINTS: L-S05 is metadata only; no actual report, customer data, contact, upload or permission selection.
PROCESS: Split each proposed action and examine purpose, necessary fields, source rights, participation and provider handling separately.
VERIFICATION: Preserve L-S05 hypothetical_rights_restriction and L-S06 stakeholder_assertion; check whether a claimed permission record actually exists in the supplied materials.
OUTPUT SCHEMA: sourceId; proposedAction; purpose; proposedFields; recipient; permissionEvidence; privacyQuestion; retentionQuestion; reviewerNeeded; holdOrAlternative.
FAILURE MODES: Do not equate access, payment, visibility or attribution with unrestricted reuse; do not treat research participation as marketing or training permission. Paper planning pattern only.

Permission follows a specific proposed action

An inventory supports questions about use; it does not grant the rights or authority being queried.

Identify materialSplit the actionsCheck necessary fieldsReview separate layersHold unresolved useChoose bounded work
Steps
  • Identify material: Metadata is not a report
  • Split the actions: Read, copy, process, contact
  • Check necessary fields: Purpose before quantity
  • Review separate layers: Rights, privacy, participation
  • Hold unresolved use: No upload or campaign
  • Choose bounded work: Synthetic planning remains possible
Relationships and conditions
  1. Identify material to Split the actions: Name the recipient and purpose
  2. Identify material to Check necessary fields: Ask which fields are needed
  3. Split the actions to Review separate layers: Identify the permission question
  4. Check necessary fields to Review separate layers: Reduce unnecessary exposure
  5. Review separate layers to Hold unresolved use: Unresolved decisions remain held
  6. Review separate layers to Choose bounded work: Continue without restricted material

Text equivalent: identify the material, then split proposed actions and necessary fields. Review rights, privacy and participation questions separately. Hold unresolved real uses and choose bounded synthetic planning where appropriate.

Try it yourself · Activity 02

50 minutes

Build an action-level permission inventory

A fictional sponsor proposes uploading a purchased market report and contacting its interviewees. In Lark, only L-S05 metadata and the unsupported L-S06 permission assertion exist. On paper, identify the missing decisions and a useful alternative without pretending the report or interviewees are available.

  1. Create separate action rows for internal reading, quotation, provider processing, model training and promotional contact.
  2. For each action name material availability, purpose, recipient and the relevant unanswered rights, participation or personal-data question.
  3. Propose a minimum-field research plan or a synthetic planning alternative.
  4. Success criteria: metadata/report distinction; five distinct action rows; no basis or licence invented; participation/contact/training separated; concrete holds and named review needs; a bounded next task.

Which permission layer did your draft initially collapse into a general statement that the data was approved?

Worked answer

L-S05 is hypothetical_rights_restriction metadata, not the report. L-S06 is stakeholder_assertion, not documentary permission. Internal reading needs the actual report and access terms; quotation needs intended extract, rights and context; provider processing needs recipient and processing terms plus relevant personal-data review; training needs a separately examined purpose and permission; promotional contact needs actual channel-specific privacy and contact decisions, not an assumed list of interviewees. No actual report, interviewee or contact exists. Hold all proposed real uses with those unresolved questions. Continue by preparing description-clarity questions and a proposed field-necessity table using synthetic examples. Do not select a real lawful basis or retention period. The paper L-C05 outcome stays HOLD_RIGHTS_AND_PURPOSE_UNKNOWN, without claiming legal adjudication.

Scroll sideways to see every column.

Permitted customer and market data · Table 2
Chapter review questionAnswer after your attempt
Why is L-S05 not a licence document?It is an authored metadata card describing unresolved permissions; the actual report and relevant rights evidence are absent.
What is the difference between access and reuse?Access concerns obtaining or reading material; reuse concerns a particular copying, publication, processing or training action and its conditions.
Why begin minimisation with the question?A field can only be necessary relative to a purpose; possible future usefulness is not enough.
Why does name removal not settle identifiability?Context, unusual details and combinations with other information can still identify someone.
What does research participation leave undecided?Later marketing contact, identifiable quotation, provider processing and training may require separate decisions.
What can continue while real-data use is held?A synthetic or source-free planning brief that states its limits and does not conceal the unresolved permissions.

Apply what you learned · Practice

The sponsor says the report was purchased, but only L-S05 metadata is supplied. What should the analyst do?

Explanation and answer

Separate proposed actions, retain unresolved rights/privacy questions and hold real use. The card records a permission problem; payment and participation do not establish every proposed action.

Practice only. This does not count towards your exam or certificate.

Next chapter

Learn in your browser · Chapter 03 of 08

03

Sampling bias and synthetic respondents

Preserve numerator, denominator and method before deciding what a percentage can mean.

A sample connects a research question to a set of observations through a method. Before interpreting a percentage, ask who was meant to be studied, who could be reached, who was invited, who answered and how their answers were recorded. These are different groups. The target population states whose preferences the enquiry concerns. The sampling frame is the practical list or route used to reach possible participants. Recruitment determines who is invited and encouraged to respond. Nonresponse concerns those who do not provide usable answers. Without that chain, a number may describe a convenient collection of records while telling little about the wider market that a sponsor has in mind.

L-S01 deliberately interrupts that chain. Its twenty row choices are authored teaching material: twelve A and eight B. They are described as a fictional purposive worksheet, but no actual purposive recruitment happened. There are no invitations, respondents, interview dates or fieldwork records behind the rows. Twelve divided by twenty equals 0.6, or 60%. That calculation establishes a proportion of fictional row choices, not a measure of demand and not a population estimate. Do not invent a recruitment method to make the table look complete. A missing actual method belongs in the limitations field, even when the classroom table supplies exactly enough values for an arithmetic exercise.

Selection bias concerns systematic differences between the people represented and those relevant to the question. A proposed research plan might reach regular stationery buyers through one store while missing occasional buyers, organisations or people who use alternative channels. That is a planning illustration, not an additional Lark source or a claim about real shoppers. Ask whether the frame could omit groups whose needs or preferences matter to the decision. It is possible to recruit many people from a narrow frame and still preserve the same omission. Increasing a count cannot by itself repair a mismatch between the recruitment route and the intended population. The necessary repair is methodological, not merely numerical.

Question wording can also change the meaning of a response. Asking which description is clearer differs from asking which product someone would buy. Asking whether a new description is better after presenting only its advantages can encourage an answer that says more about the prompt than the market. In a real proposed study, examine wording, order, available alternatives and the context in which the choice is made. In Lark, do not infer those details from an A/B row. The table records the supplied authored choice only. A synthesis that adds willingness to pay, purchase intention or satisfaction has introduced variables that the teaching record does not contain.

Nonresponse is not a blank to be filled with a guessed preference. In actual research planning, ask whether nonresponders could differ from respondents and how incomplete records would be treated. Distinguish invitations, attempted contacts, completed human responses and analysed records. These denominators answer different questions. Lark has exactly twenty authored choices with no missing rows in its supplied table, so it cannot demonstrate an observed response rate. Calling twelve the response count and twenty the invitation count would change the fixture's meaning. Twelve is the authored A-choice numerator and twenty is the authored row denominator. Preserve their roles whenever a chart or headline compresses the calculation.

Synthetic respondents are useful for rehearsing a questionnaire, challenging an analyst's assumptions or exploring possible interpretations. They are not people expressing a preference. An imagined persona can expose a question the team forgot to ask, but cannot show how common that concern is among customers. Repeating a persona prompt or requesting thousands of fictional answers may produce more text without supplying any additional human observations. This course runs no such model. Its authored rows and supplied hypothetical summary already let you practise identifying that boundary. An AI-generated percentage, if encountered later, needs its origin disclosed and must not be quietly combined with human responses in a single participant count.

AAPOR's reviewed transparency elements call for disclosure of frames, methods, completed human responses, limitations and AI use. The source aapor-transparency does not judge the rigor of a disclosed study or confer certification on a table. It also distinguishes conventional sampling precision from model-dependent estimates for nonprobability work. Some real methods can report uncertainty under defined modelling assumptions and validation; this chapter does not declare every nonprobability interval impossible. Lark has no actual sampling or validated model, so a conventional margin of error is not justified for these fictional rows. A formula applied to twenty invented choices would add an appearance of empirical precision without supplying the missing study.

The average paper analyst sees twelve A choices, writes a 60% market preference, and asks for a larger synthetic set to make the claim more persuasive. The elite analyst reports the same arithmetic with a different evidential meaning: twelve of twenty authored rows select A, with no actual respondents or population estimate. The elite version names missing target-population and recruitment decisions, refuses a conventional margin of error, and treats synthetic scenarios as tools for improving the research plan. It does not pretend that a modest-looking caveat such as sample may vary repairs the word market. The scope of the main statement must change with the source, rather than remaining broad beneath a footnote.

A good sampling note records what could change the interpretation. For a proposed real study, list the target group, frame, recruitment mode, eligibility criteria, timing, question wording, missing-data treatment and known exclusions. Mark which fields are planned and which are supported by actual records. Then ask whether the result could guide the receiving decision at the proposed level of generality. A local description test might inform wording development without forecasting national demand. A prevalence claim would need a different justification. The practical goal is not to demand one universal research design for every marketing question, but to make the relationship between method and intended claim explicit enough to challenge.

The six-step denominator method keeps that relationship visible. Identify the source class, specify numerator and denominator, check what a row represents, inspect the frame and recruitment information that actually exists, separate uncertainty from unsupported inference, and draft a bounded statement with further research questions. In the approved contract, inspect_sample(expected_version,expected_day) is intended to return the 12/20 worksheet calculation during eligible teaching days. The result remains a finite teaching inspection, not statistical validation. Version and day checks control which supplied record may be treated as current inside that exercise. They do not authenticate people, establish representativeness or confer permission to contact anybody.

Time is part of a sample description as well as an evidence-control field. Preferences in an actual study could depend on season, purchasing context or a changed description. Lark's day 1 through day 3 window is a synthetic currentness rule, not a research retention period or a finding about how long preferences stay stable. On teaching day 4 the contract expects stale evidence to be held. Rewriting the date or generating more fictional rows is not a replacement study. The strongest classroom outcome is a modest but complete explanation of what was counted, what it can support, what is unknown and which new method would be needed before making a real market assertion.

  1. Identify the evidence class and whether any actual human sampling occurred.
  2. State the numerator, denominator and meaning of one record.
  3. Preserve the supplied row count without inventing invitations or missing responses.
  4. List target-population, frame, recruitment and wording information actually present or absent.
  5. Separate supported arithmetic from population inference and any claimed precision.
  6. Draft a bounded statement and define real research questions needed for wider claims.
text · 6 lines
ROLE: Adult Lark sampling-note editor.
CONSTRAINTS: L-S01 contains 20 authored choices, not human respondents; no model or recruitment run.
PROCESS: Identify row meaning, numerator, denominator, missing sampling information and intended claim scope.
VERIFICATION: Recalculate 12/20=60%; keep eight B choices; retain synthetic_sample_table and current teaching version/day without inventing fieldwork.
OUTPUT SCHEMA: sourceId; evidenceKind; numerator; denominator; rowMeaning; targetPopulationUnknowns; frameUnknowns; wordingUnknowns; boundedStatement; unsupportedInference.
FAILURE MODES: Do not pool fictional and human counts, invent a response rate, infer UK demand or attach a conventional margin of error. This is a paper note pattern.

Count records without inventing a population

Arithmetic can be exact while the broader market interpretation remains unsupported.

Identify row meaningKeep the denominatorInspect method gapsSeparate inferenceWrite the narrow resultPlan actual research
Steps
  • Identify row meaning: Authored choices, not people
  • Keep the denominator: 12 A, 8 B, 20 rows
  • Inspect method gaps: No actual frame or recruitment
  • Separate inference: 60% rows, no market estimate
  • Write the narrow result: No conventional margin of error
  • Plan actual research: Population and method unresolved
Relationships and conditions
  1. Identify row meaning to Keep the denominator: Calculate the supplied proportion
  2. Identify row meaning to Inspect method gaps: Ask how observations would arise
  3. Keep the denominator to Separate inference: Preserve record meaning
  4. Inspect method gaps to Separate inference: Do not fill absent fieldwork
  5. Separate inference to Write the narrow result: Report authored-row scope
  6. Separate inference to Plan actual research: Identify additional method decisions

Text equivalent: identify that each row is an authored choice, then count twelve A and eight B among twenty rows. Inspect absent real sampling information. Separate exact arithmetic from unsupported market inference, write the narrow result and retain actual research questions.

Try it yourself · Activity 03

45 minutes

Repair the synthetic sample inference

On paper, repair this authored challenge: Twenty respondents demonstrate that 60% of UK buyers prefer A, and a bigger synthetic sample will confirm it. Use L-S01 exactly and prepare a sampling note for a proposed future study.

  1. Recalculate A and B proportions and identify what numerator and denominator represent.
  2. Mark every unsupported human, population or confirmation claim in the original wording.
  3. List missing target-population, frame, recruitment, timing and question details without inventing them.
  4. Success criteria: 12/20=60% and 8/20=40% authored choices; no actual respondents; no UK estimate or conventional margin of error; synthetic expansion rejected as empirical confirmation; a coherent proposed research method question.

Which missing method detail would most affect the level of generality you wanted to claim?

Worked answer

Twelve of twenty authored rows select A, or 60%; eight select B, or 40%. The denominator is fictional choices, not invitations or people. Respondents, UK buyers and confirm add unsupported meanings. A larger synthetic set would not supply human observations or fix a missing sampling frame. Retain the original challenge and write: In this authored worksheet, 12 of 20 fictional rows select A; no actual respondents or population estimate. No conventional margin of error is justified. A future real study needs an intended population, recruitment frame, mode, eligibility, dates, exact A/B wording, context and treatment of incomplete responses. Decide whether description preference is the right question rather than inferring purchase demand. The inspect_sample paper expectation is only a bounded teaching calculation during eligible version/day context.

Scroll sideways to see every column.

Sampling bias and synthetic respondents · Table 3
Chapter review questionAnswer after your attempt
Why is 20 not a participant count in Lark?It counts authored row choices; no humans were recruited or observed.
What separates a target population from a sampling frame?The population is the intended group; the frame is the practical list or route from which recruitment can occur.
Why may a larger narrow sample preserve bias?It can reproduce the same systematic exclusions instead of correcting the frame or recruitment method.
Why cannot Lark produce a response rate?It has no invitation or contact denominator; its rows are authored choices only.
Does this chapter prohibit all model-based nonprobability uncertainty estimates?No. Such real estimates need defined methods, assumptions and validation; none exists for this fictional worksheet.
What does the day 3 boundary establish?A synthetic evidence-currentness rule inside the exercise, not a legal retention period or the lifetime of actual market preferences.

Apply what you learned · Practice

A colleague doubles the number of fictional choices to make the national preference claim stronger. What is the methodological problem?

Explanation and answer

Synthetic expansion supplies no actual human observations or repair to an absent sampling frame. More authored records do not establish the population or actual research method needed for a national inference.

Practice only. This does not count towards your exam or certificate.

Next chapter

Learn in your browser · Chapter 04 of 08

04

Source-led synthesis

Connect each statement to current supplied support, an explicit transformation and the limits a reviewer needs to challenge it.

Source-led synthesis starts from inspectable material and builds a statement outward. It does not start from a polished paragraph and search for references that seem to support it. In Lark, a useful synthesis has a chain: source ID, evidence kind, precise supplied value or passage, version and teaching day, transformation, bounded finding, proposed claim and unresolved limitation. A broken link tells the reader what needs checking. A source list at the end is insufficient if nobody can tell which source supports which part of the summary. The practical aim is a draft that another analyst can reconstruct, challenge and revise without relying on the first analyst's memory or a model's fluent tone.

Extraction and inference have different responsibilities. Extraction preserves something explicitly present, such as A taking forty seconds in the current authored record. Calculation transforms supplied values by a stated method, such as subtracting forty from fifty and dividing by fifty. Inference adds a conclusion, such as the concept being likely to succeed in a market. The first two can be checked within the supplied worksheet; the last requires evidence that Lark does not provide. Do not call every transformation an extraction. A summary can be useful and concise while identifying exactly where its reasoning adds meaning. That boundary is especially important when drafting claims that will later undergo separate substantiation review.

A locator should make the relevant support findable rather than merely display a familiar publisher name. For these teaching cards, identify L-S01's authored choice count or L-S03's current A/B task values and record the version. Do not invent a page number, quotation or document title beyond what is supplied. In a real dossier, the appropriate locator might be a report section, table, line range or dated field record, with rights to use it considered separately. The reviewed aapor-transparency material supports disclosure of methods and limitations; it does not support Lark's numerical values. Those values originate in the synthetic contract. Keep contextual guidance and case evidence in different roles.

Currentness changes what a source can support. L-S04 retains an old authored A thirty/B fifty table, while L-S03 supplies the current version-one A forty/B fifty comparison. Both sources can be described accurately, but only the current card belongs in the current bounded comparison. The archived pair would calculate forty per cent less time relative to B; selecting it because the number is more attractive would conceal supersession. A document is not false simply because it is archived. Its permitted evidential role is historical. Preserve it with that role instead of deleting it, quietly merging it with current values or treating the most favourable result as the latest finding.

The current comparison is a useful small audit. In version one, B minus A is fifty minus forty, or ten seconds. Relative to B's fifty seconds, ten divided by fifty is twenty per cent less time. State the denominator and same-task synthetic scope. This does not establish a rate-based advantage, a preference, actual trial performance or national superiority. Version two changes current A to forty-five while B remains fifty. Five divided by fifty is ten per cent less time. A retained twenty per cent sentence after that change would no longer describe the current comparison, even if its grammar, citation ID and explanatory caveat were unchanged. Source-led synthesis includes rechecking transformations after source change.

A contradiction should become a visible issue, not a silent editorial choice. L-S02's unsupported hypothetical eighty per cent demand assertion differs in subject and origin from L-S01's sixty per cent of authored A choices. They are not two survey estimates to average. L-S06's permission assertion conflicts with absent rights evidence and the unresolved L-S05 card. That is a permission gap, not a statistical uncertainty that can be reduced by counting more rows. Record the exact kind of disagreement and its consequence for the proposed statement. Distinguishing these failures prevents an apparently balanced summary from giving invented demand or permission claims the same standing as bounded worksheet arithmetic.

Confidence reasons belong to the statement being assessed. For the narrow version-one comparison, a reason can say that the supplied current values and denominator support the arithmetic within the synthetic record. It cannot say the team is ninety-five per cent certain that customers will buy the concept. For the population claim, the reason is a missing empirical sampling basis rather than low model confidence. For the rights claim, the reason is unresolved permission evidence rather than a probability of permission. Keeping those reasons explicit helps a reviewer decide which further work could change the result. An unexplained high, medium or low label can obscure very different evidence problems.

The average paper synthesis selects the archived thirty-second value, repeats L-S02's demand sentence and appends all six IDs as a bibliography. It looks well sourced while the relevant chain is broken. The elite synthesis separates current comparison, archived context, hypothetical demand wording, fabricated endorsement and rights unknowns. It shows the current forty/fifty arithmetic and retains the rejected demand and permission wording in a challenge record. It says what each cited item does, rather than using the number of sources as a sign of credibility. The elite result can be shorter than the average one: its value comes from accurate connections, not from lengthy prose or an impressive set of references.

Use a six-step synthesis method. Select the question and receiving decision. Extract exact supplied support with source kind and locator. Mark current, historical and unavailable material. Perform and expose any necessary transformation. Compare the proposed statement's meaning with the support and record contradictions. Finally draft the narrow finding, its confidence reason and its unresolved next decision. Draft original and repaired wording side by side so the reviewer can see what changed. Do not allow a rewrite to remove the qualifiers that define the finding. In this case, authored, relative to B and no actual trial are part of the meaning, rather than decorative caution that can be deleted to fit a headline.

The approved finite methods are dependencies, not shortcuts to real authority. On paper, inspect_sample and calculate_bounded_comparison precede the current corresponding assessments of L-C06 and L-C07. The register requires all seven current assessments and both inspections; it should not omit the five held candidates to present a cleaner narrative. Changing version or advancing teaching day invalidates dependent work, and day four makes the time-bounded records stale. This chapter predicts those contract behaviours only. An actual execution report is required before reporting reads, passing tests or exported runtime records. A TEACHING_DOSSIER remains a teaching document with realCampaignStatus=HOLD, not a public claim release.

Data restraint applies to synthesis as well as collection. A drafter does not need to invent personal anecdotes to make a finding vivid or include full customer comments when a narrower, permitted description would serve the actual purpose. The reviewed ico-ai-minimisation guidance supports examining relevant features and unnecessary personal data, within its DUAA review limits. It does not decide the source-rights or statistical adequacy of a marketing summary. In Lark, no actual personal data exists. The final source-led note should be honest about that absence, the synthetic origin of the values and the unresolved real research and permission work. A faithful worksheet summary can improve planning while leaving the campaign and wider market assertions held.

  1. Start from the question and receiving decision, not the desired headline.
  2. Extract supplied support with exact source ID, kind and a findable value or passage locator.
  3. Separate current, archived, hypothetical and unavailable material.
  4. Expose calculations with numerator, denominator and evidence scope.
  5. Test each proposed meaning against support and record contradictions or gaps.
  6. Preserve original/repaired wording, confidence reasons and real-release limits.
text · 6 lines
ROLE: Adult Lark source-led synthesis editor.
CONSTRAINTS: Six synthetic cards only; no invented citations, actual respondents, model output, rights or campaign approval.
PROCESS: Link source to extracted support, transformation, bounded finding and proposed claim; retain contradictions and original wording.
VERIFICATION: L-S03 version 1 A 40 / B 50 means 20% less time relative to B; version 2 A 45 / B 50 means 10%; L-S04 is archived; L-S02/L-S06 cannot become observed findings.
OUTPUT SCHEMA: sourceId; evidenceKind; locator; version; teachingDay; currentness; extractedSupport; transformation; boundedFinding; proposedClaim; confidenceReason; unresolvedIssue; originalWording.
FAILURE MODES: Hold attractive archived substitutions, fabricated citations, averaged unlike evidence, stale arithmetic and omitted held claims. Paper drafting pattern only, not runtime output.

Build a reconstructable source-to-claim chain

Currentness and meaning are checked before a bounded finding is written.

Read supplied supportCheck currentnessIdentify transformationTest claim entailmentWrite bounded findingRecord unresolved issue
Steps
  • Read supplied support: ID, kind and locator
  • Check currentness: Version, day, archived role
  • Identify transformation: Extraction, arithmetic, inference
  • Test claim entailment: No stronger meaning than support
  • Write bounded finding: Reason and limits retained
  • Record unresolved issue: Original wording remains visible
Relationships and conditions
  1. Read supplied support to Check currentness: Preserve source version
  2. Read supplied support to Identify transformation: Name what reasoning adds
  3. Check currentness to Test claim entailment: Exclude archived substitutions
  4. Identify transformation to Test claim entailment: Expose inference gaps
  5. Test claim entailment to Write bounded finding: Keep supported narrow meaning
  6. Test claim entailment to Record unresolved issue: Retain contradictions and unknowns

Text equivalent: read supplied support with ID, kind and locator. Check currentness and identify extraction, arithmetic or added inference. Test whether the claim exceeds support. Write a bounded finding and retain contradictions, original wording and unresolved issues.

Try it yourself · Activity 04

55 minutes

Repair the attractive but unsupported synthesis

On paper, repair an authored challenge summary that repeats 80% demand, uses archived A 30 / B 50 to suggest current 40% less time, and says all inputs are cleared. Work at version 1/day 1, then explain the version 2/day 1 revision and day 4 hold. Use all six source roles without pretending that a model produced the summary.

  1. Create source-to-finding rows with ID, kind, precise supplied support, currentness and limitation.
  2. Separate extraction, arithmetic and unsupported inference; retain the original challenge wording.
  3. Write two narrow worksheet statements and identify demand, endorsement, superlative and rights gaps.
  4. Success criteria: L-S03 rather than L-S04 for current comparison; 20% at version 1 and 10% at version 2 relative to B;12/20 authored-row scope; no invented research/permission; explicit stale day 4 and held real campaign.

Could another analyst reconstruct every number and every limitation in your repaired note from its source chain?

Worked answer

At version 1/day 1, L-S01 supports twelve of twenty authored choices selecting A, or 60%, with no actual respondents or population estimate. L-S03 supports A 40 / B 50 and (50-40)/50=20% less time relative to B, in authored matched records with no actual trial or market comparison. L-S04 is historical 30/50 and cannot support the current 40% statement. L-S02 is unsupported hypothetical demand wording; L-S06 is a stakeholder assertion, not an actual endorsement or licence; L-S05 records unresolved rights metadata. Preserve rejected originals beside these reasons. At version 2/day 1, replace the current comparison with A 45 / B 50 and 10% less time and require fresh dependent checks on paper. Day 4 is beyond the day 3 inclusive expiry, so current sample/comparison use is held. No inference about real demand, privacy clearance or campaign release follows.

Scroll sideways to see every column.

Source-led synthesis · Table 4
Chapter review questionAnswer after your attempt
Why is a bibliography alone inadequate?It does not identify which supplied passage or value supports each specific statement and transformation.
What distinguishes extraction from inference?Extraction preserves supplied information; inference adds meaning that requires its own evidential justification.
What role does L-S04 retain?Historical context with obsolete 30/50 values, not support for the current comparison.
Why should L-S02 and L-S01 not be averaged?They concern different meanings and origins; an unsupported demand assertion is not another survey estimate.
What changes under version 2?Current A becomes 45/B 50, so the relative time reduction is 10% and prior comparison-dependent work needs rechecking.
What does a bounded confidence reason establish?Why a specified narrow teaching statement is supported; it is not a fabricated probability of demand, permission or campaign success.

Apply what you learned · Practice

Which current version 1 synthesis preserves the supported comparison?

Explanation and answer

In authored matched records A 40 / B 50 means 20% less time relative to B; no actual trial or market comparison. The final option retains current values, denominator and synthetic scope; the others substitute archived evidence or add unsupported meanings.

Practice only. This does not count towards your exam or certificate.

Next chapter

Learn in your browser · Chapter 05 of 08

05

Claim substantiation and review

Connect the likely meaning of a claim to support held before any proposed distribution.

A claim register begins with the statement a reader is likely to understand. Lark's fictional sponsor wants a launch headline, while the available material describes authored worksheets. These are different decisions. Before editing a headline, write its exact words, the intended audience and the likely objective meaning. Identify what it says about a product, a population, a comparison and an event. A qualification cannot rescue a headline if it denies the headline's central meaning. Preserving the original wording makes this mismatch reviewable instead of letting a polished revision hide the unsupported starting point.

Support must address that meaning. Twelve selected rows in a twenty-row worksheet support a count within that worksheet. They do not show that UK buyers prefer a product, that demand exists or that someone purchased it. Likewise, a pair of authored task times can support a calculation about those two records. They cannot establish a market ranking. The central failure is moving silently from a small evidence object to a much larger claim. Ask what additional population, period, behaviour or comparator the claim introduces, then look for evidence of each addition.

Separate three review questions. Is the evidence actually present and accurately represented? Does it support the proposed meaning within its stated limits? Is its intended use permitted and appropriately reviewed? A favourable answer to one is insufficient for the others. The L-S05 card describes unresolved hypothetical report rights without containing a report. Even excellent real research would not automatically establish a licence to copy its materials or contact its participants. Conversely, permission to access a source would not make a statistic representative. Keep support and permission in separate register fields so neither disappears behind a single green label.

Use a six-step substantiation method. First freeze the original material claim. Second identify the implied population, denominator, comparison, period and evidence event. Third attach exact source IDs, their kinds, current versions and relevant limitations. Fourth check whether those sources address every material part, including contradictions and absent support. Fifth choose hold, a precisely narrower teaching statement, or further research, preserving the reasons. Sixth record a proposed owner, review trigger and real release boundary. The output is a traceable reasoning record, rather than a judgement that an advertisement complies with every applicable rule.

The paper exercise contains five unsupported assertions: 60% of UK buyers prefer A; AI research proves 80% demand; A is the UK's fastest stationery choice; a customer endorses A as the best; and all inputs are licensed and consented for every use. Each introduces something absent from its source. The first invents a population inference, the second treats hypothetical wording as research, the third expands two records to the market, the fourth invents a customer, and the fifth invents permission. Keep five separate reasons. A generic unsupported label makes it harder to commission the right next investigation.

Confidence should describe the reasoning, not imitate a measurement. For the narrow 12/20 teaching statement, the arithmetic can be independently checked and the synthetic origin is explicit. That supports confidence in faithful transcription and calculation within the supplied worksheet. It provides no confidence interval for market preference and no measured probability of legal acceptance. For the five claims, uncertainty is not a low percentage that can be rounded upward. The required evidence is absent. Record the missing support directly, including whether the gap concerns authenticity, sampling, objective performance, rights or the actual interpretation of a claim.

An average instruction asks the assistant to make the findings persuasive and soften anything risky. That can preserve an unsupported implication while surrounding it with reassuring words. A better worked request asks a claim reviewer to compare exact meanings with supplied sources and retain rejected wording. The proposed response marks L-C01 held and offers L-C06 as a separate internal worksheet description. It does not rewrite UK buyers as our buyers, since no customers exist. It does not keep the word demand beside a synthetic percentage. The improvement is a changed evidence boundary that a colleague can inspect, not a smoother tone.

cap-misleading-code covers selected UK non-broadcast advertising rules. Its documentary-support and qualification requirements inform the teaching method, but this course does not determine actual advertising applicability. cap-substantiation is nonbinding AdviceOnline interpretation, with its displayed September 2026 date retained in the source record. An intended opinion can be understood objectively in context. Do not treat every best phrase identically or assume a testimonial substantiates objective performance. The actual product, presentation, medium and audience still need review. Special environmental, health, financial and other sector claims require additional evidence and applicable standards outside this stationery exercise.

cma207-commercial-practices explains selected UK trader-consumer rules and states that factual product claims need evidence. Its discussion also warns that true information can mislead through presentation and affect transactional decisions. This is useful when reviewing a technically correct number whose prominent wording implies real customers. The legal average consumer is not the twenty worksheet rows or a convenient focus group. The source review retrieved regulator guidance, while operative DMCC text retrieval failed. Keep that distinction visible and leave statutory interpretation and real campaign decisions with appropriately qualified reviewers, rather than claiming a local Python decision is law.

Under the finite contract, assess_claim accepts only seven fixed claim IDs. Five have predefined held reasons. L-C06 needs a current prior sample inspection, and L-C07 needs the matching comparison inspection. These are explicit dependencies that keep a source calculation beside the wording it supports. The method does not analyse arbitrary advertising language or detect deception in a new sentence. A learner should predict what will be held before execution, then record actual observed results separately if the lab is run. A scripted decision cannot establish a real respondent, research event, licence or competent advertising review.

A challenge meeting should test the weakest necessary link. Ask the proposer of a population claim how the target population and recruitment support it. Ask the proposer of a customer quote where the original statement and permitted use are recorded. Ask the proposer of a superiority claim which competitors and meaningful features were compared. Record an unanswered question as unanswered. Do not ask for a more confident model explanation when the missing object is actual evidence. A proposed owner can organise that work, but a fictional name in the dossier is neither authenticated identity nor authority to publish.

The useful final decision is specific about what can proceed. Internal teaching analysis can retain two bounded statements and the five held claims as challenge material. Real distribution remains held because research, rights, privacy, channel and jurisdiction questions are unresolved. Preserve the rejected headline, the narrowed statement and the reasoning connecting them. A reviewer should reconstruct both what the worksheet establishes and what it does not. This discipline prevents a correct calculation, a complete register or an attractive presentation from being mistaken for permission to make a public commercial claim.

Scroll sideways to see every column.

Claim substantiation and review · Table 5
Elite prompt componentRequired instruction
RoleClaim substantiation organiser.
ConstraintsInvented Lark evidence only; no real customers, model, research, licence or release.
ProcessMap exact claim meanings to current sources and identify five different material gaps.
VerificationRetain originals, denominator, implied population, source kinds and permission unknowns.
Output schemaClaim/source IDs; original/narrow wording; scope; version/day; hold reason; confidence rationale; expiry/recheck; unknowns.
Failure modesReject invented people/events, omitted held claims, stale evidence and access treated as permission.

Claim substantiation and review evidence path

Keep source meaning and unresolved authority visible through the decision.

Original assertionSource and limitsMaterial gapNarrow statementHuman challenge
Steps
  • Original assertion: Likely meaning and implied population.
  • Source and limits: Kinds, denominator, current version and unknown support.
  • Material gap: Population, event, comparison or permission missing.
  • Narrow statement: Separate teaching wording, original retained.
  • Human challenge: Proposed owner and real release HOLD.
Relationships and conditions
  1. Original assertion to Source and limits: Identify exact scope
  2. Source and limits to Material gap: Expose missing support
  3. Material gap to Narrow statement: Preserve current context
  4. Narrow statement to Human challenge: Retain held real use

Text equivalent: Original assertion: Likely meaning and implied population.. Source and limits: Kinds, denominator, current version and unknown support.. Material gap: Population, event, comparison or permission missing.. Narrow statement: Separate teaching wording, original retained.. Human challenge: Proposed owner and real release HOLD. Real use remains held.

Try it yourself · Activity 05

60 minutes

Write a five-claim substantiation challenge

The fictional sponsor presents L-C01 through L-C05 as a ready campaign. Mark each unsupported material assertion, explain the missing evidence and propose a bounded internal alternative where the worksheet actually supports one.

  1. Success criteria: retain five exact original assertions and five different missing-support reasons.
  2. Use current source kinds, denominator and purpose; invent no respondents, endorsements or permission.
  3. Offer L-C06/07 only as separate teaching statements and keep real campaign release held.

Which apparently minor edit would leave a material population or authenticity implication unchanged?

Worked answer

L-C01 is held for absent population inference; L-C02 for nonexistent demand research; L-C03 for absent market comparison; L-C04 for fabricated customer endorsement; L-C05 for unresolved rights and purposes. L-S01 supports only 12 of 20 fictional rows,60%, with no actual respondents. L-S03 supports the current authored comparison when inspected. Preserve the five originals, six source kinds and qualifications. Neither narrower statement is public-advertising approval.

Scroll sideways to see every column.

Claim substantiation and review · Table 6
Chapter review questionAnswer after your attempt
Why freeze original wording?To preserve likely meaning and make the rejected assertion traceable.
What does 12/20 support?An authored-row count, not UK buyer preference.
Is a licence the same as support?No. Permission and evidential support are separate.
Can a small-print denial repair any headline?Selected CAP rules say qualifications must not contradict the central meaning.
What is confidence here?A reasoned description of finite support, not a market probability or legal certainty.
Does assess_claim judge new text?No. Seven fixed IDs and explicit dependencies only.

Apply what you learned · Practice

A sponsor calls 12/20 a UK-buyer finding. What should the register do?

Explanation and answer

Hold the population claim; retain only an authored-row count. The supplied rows establish no people or population inference.

Practice only. This does not count towards your exam or certificate.

Next chapter

Learn in your browser · Chapter 06 of 08

06

Comparisons, testimonials and verification

Keep measures, authenticity and the reader's ability to verify a comparison distinct.

A comparison has a direction, a denominator and a scope. In Lark's version-one authored benchmark, A takes forty seconds and B takes fifty for the same fictional pack-description task. The reduction relative to B is ten divided by fifty, or twenty percent less time. This statement concerns two supplied numbers, not an actual trial. Saying twenty percent faster changes the measure and invites a different interpretation. At one task per completion, the corresponding rate ratio would use fifty divided by forty, producing twenty-five percent more tasks per unit time. Do not replace one measure with the other without explaining the change.

A useful comparison starts before calculating. Define the task, alternatives, conditions, start and end points, measure, exclusions and planned reporting. Equivalent purpose matters: a prototype that omits a necessary check can appear quicker while completing a different task. The Lark cards say the benchmark records are matched and authored; they contain no participant recruitment or actual timing protocol. Retain those limitations. For a future study, propose a method that preserves the same necessary steps and examines quality as well as time. A single favourable measure should not conceal errors, incomplete work or a different outcome.

Use a six-step comparison method. First identify the alternatives and same-purpose task. Second check whether sources describe comparable conditions and the required outcome. Third select the metric and the stated reference denominator before seeing the attractive headline. Fourth compute independently and retain the underlying values, version and dates. Fifth provide enough methodological detail for a reader to understand the limited assertion and challenge it. Sixth retain failures, rights questions and exclusions, and decide whether the result warrants further research. This method supports a bounded comparison record, not a ranking of every supplier or product in a market.

Verifiability and substantiation are related but different. An accessible explanation of an unsupported comparison does not make its evidence adequate. Strong evidence without an identifiable basis may also be difficult for a reader to check. cap-comparison-verifiability describes products, dates, methods and results as potentially necessary information, with a clear accessible signpost. A generic website link can leave the relevant comparison impossible to identify. In the paper exercise, put the original task values and calculation directly beside the assertion. Do not invent a public verification page, imply confidential material has been released or treat a source link as clearance.

An archived table can be completely legible and still be the wrong comparison. L-S04 contains the obsolete thirty-versus-fifty record. Its difference would be forty percent relative to fifty, but that arithmetic does not restore current relevance. The current version-one benchmark is forty versus fifty. The archive should remain as documentary history, labelled superseded, rather than being quietly deleted or selected because it yields a larger advantage. Keep current and archived source IDs separate. A reviewer should be able to ask which exact record supports a headline without searching through several similarly named charts or trusting a latest label.

Testimonials need an authentic event before they can be edited. The fictional sponsor's endorsement in L-S06 has no customer behind it. Making the wording modest, changing the name or adding an illustrative label cannot turn it into a genuine quotation. Keep it as an invented challenge and hold L-C04. For a future real endorsement, investigate original words, speaker identity, permitted context and use, incentives, relevant dates and what can reasonably be inferred. A speaker's honest opinion is not itself documentary proof of an objective performance claim. Authenticity, publication permission and claim support remain separate questions.

Consider a worked editing proposal. An average prompt asks for a customer quote and the strongest comparison line using the fastest available table. It fabricates the speaker and cherry-picks history. An elite request produces no testimonial; it explicitly records absent authenticity and permission. It selects L-S03 for the current calculation, names B as the denominator, and describes L-S04 only as superseded history. Its proposed text repeats no actual trial or market comparison beside the authored values. That text is suitable challenge material for the internal dossier only, rather than an approved commercial message or a simulated customer experience.

Opinion findings can be legitimate when their study and claim are properly bounded. cap-substantiation does not ban surveys, and this chapter should not imply that subjective responses are worthless. An opinion question can support an accurately described opinion result when the actual evidence, sampling and interpretation warrant it. What it cannot automatically support is an objective fastest or best-performance claim. Lark has no human responses at all. The worksheet's twelve selections therefore remain authored row choices. Keeping that distinction prevents a useful general principle about survey evidence being used to disguise synthetic respondents as an actual recruited sample.

The US ftc-prior-substantiation statement offers a contextual comparison about holding a reasonable basis before dissemination and possessing the advertised level of support. Its historical November 1984 date remains distinct from the October 2026 retrieval. It is not UK law, a worldwide advertising rule or evidence that Lark has a US nexus. Later support is not a substitute for having the required support when making the objective claim, while the statement describes discretionary enforcement uses of later evidence. Do not flatten that nuance into automatic permission or a universal retrospective cure for unsupported advertising.

Verification must be usable by the intended audience. A chart whose numbers are available only as tiny image text can frustrate a reader trying to check the comparison. Provide underlying values, units, denominator and limitations as plain selectable text or an appropriate accessible table. A human challenge route should let someone identify the claim and report a contradictory source without needing to accept the marketing conclusion first. These are proposed editorial and service practices. No real verification page, assistive-technology evaluation, contact route or access acceptance is supplied by the finite exercise or the existence of a source URL.

calculate_bounded_comparison requires the current expected version and day in an active teaching state. The contract uses the current authored A and B values and returns the explicitly scoped reduction. It does not offer arbitrary metrics or measure live performance. assess_claim then needs that matching prior inspection for L-C07. A caller cannot choose archived values or have missing evidence inspected silently on its behalf. Prediction and execution remain separate: calculate the expected twenty percent on paper, then record the actual method output only after running the lab. No passing test or observed model behaviour is implied by the prediction.

A good review concludes by retaining both the limited finding and the larger unanswered question. The two authored records support a teaching calculation, while actual task performance, meaningful quality, market scope, source rights and publication context remain unresolved. The invented endorsement stays visibly rejected, including the reason it cannot be repaired through wording alone. Give the next research owner a testable proposal with alternatives and measures, not a preselected favourable answer. Comparison work is valuable when it narrows inference and makes challenge possible, even when it produces no publishable advantage or usable testimonial.

Scroll sideways to see every column.

Comparisons, testimonials and verification · Table 7
Elite prompt componentRequired instruction
RoleComparison and authenticity reviewer.
ConstraintsTwo current authored alternatives only; no genuine customer, real trial or publication authority.
ProcessSelect same-task L-S03, separate L-S04 history and the invented endorsement, calculate and expose unknowns.
VerificationCompute difference/B independently; retain units, version, method limits and authenticity gap.
Output schemaCurrent values; denominator; bounded wording; archive status; quote authenticity/permission questions; verification details; hold.
Failure modesReject rate/time substitution, fastest-in-market inference, fabricated quote and generic-link clearance.

Comparisons, testimonials and verification evidence path

Keep source meaning and unresolved authority visible through the decision.

Matched purposeValues and denominatorCurrent sourceVerify meaningEndorsement gap
Steps
  • Matched purpose: Two authored alternatives and same stated task.
  • Values and denominator: A40, B50; difference divided by B.
  • Current source: L-S03, not superseded L-S04.
  • Verify meaning: Readable values, units, method and limitations.
  • Endorsement gap: No actual customer or permission.
Relationships and conditions
  1. Matched purpose to Values and denominator: Identify exact scope
  2. Values and denominator to Current source: Expose missing support
  3. Current source to Verify meaning: Preserve current context
  4. Verify meaning to Endorsement gap: Retain held real use

Text equivalent: Matched purpose: Two authored alternatives and same stated task.. Values and denominator: A40, B50; difference divided by B.. Current source: L-S03, not superseded L-S04.. Verify meaning: Readable values, units, method and limitations.. Endorsement gap: No actual customer or permission. Real use remains held.

Try it yourself · Activity 06

60 minutes

Repair a comparison and invented testimonial

The sponsor chooses obsolete A30/B50, writes fastest in Britain and supplies a made-up customer quote. Produce a current version-one comparison note with an authenticity and verification checklist.

  1. Success criteria: use L-S03 and compute(50-40)/50=20% less time relative to B.
  2. Retain L-S04 as history and hold the market superlative and invented endorsement.
  3. Name verification details and actual authenticity/permission questions without creating a public page.

Where could a reader confuse a correct time reduction with a different performance or market claim?

Worked answer

Use current authored A40/B50 same-task records:20% less time relative to B, no actual trial or market comparison. L-S04 is obsolete; its 40% difference cannot support current wording. Hold the UK-fastest claim and invented endorsement. Verification needs alternatives, values, units, denominator, dates/version, method and limitations. A real quote requires authentic original words, speaker/context, permitted use and appropriate claim support. No actual page, customer or approval exists.

Scroll sideways to see every column.

Comparisons, testimonials and verification · Table 8
Chapter review questionAnswer after your attempt
What is the reduction denominator?B's 50 seconds, the stated reference.
Is 20% less time the same measure as 20% faster?No. Rate and elapsed-time measures use different calculations.
Can L-S04 support current comparison?No. It is superseded history.
Can modest wording authenticate a made-up quote?No. The customer event is absent.
Does a generic link establish verifiability?Not when the comparison basis remains unidentified.
What is FTC's scope here?A historical US policy comparison, not UK or worldwide clearance.

Apply what you learned · Practice

Which wording matches authored A40/B50 records?

Explanation and answer

A uses 20% less time relative to B in these authored records; no actual trial. Only the scoped elapsed-time reduction is supported by these authored numbers.

Practice only. This does not count towards your exam or certificate.

Twenty fictional rows show twelve A and eight B; separate version-one and version-two time comparisons show twenty and ten percent less time relative to B, with the archived source excluded.
Keep the denominator and source version visible: 12/20 fictional rows is 60%. Version 1 A40/B50 is 20% less time relative to B; version 2 A45/B50 is 10%. Archived A30/B50 is excluded from current comparisons.

Illustration description: Three panels describe different, explicitly authored quantities. The first displays twenty row tiles in reading order: L-R01 through L-R12 select A and L-R13 through L-R20 select B. Twelve of twenty is sixty percent of these fictional rows, with no actual respondents or population estimate. The second panel labels L-S03 version 1 and shows A forty seconds versus B fifty seconds for the same authored task; subtract forty from fifty and divide by the B baseline fifty to obtain twenty percent less time. The third panel labels L-S03 version 2 and shows A forty-five seconds versus B fifty seconds; five divided by fifty is ten percent less time. The two versions are alternative current contexts, not simultaneous current measurements; a version change requires fresh checks. A bottom strip labels L-S04 A thirty/B fifty as archived, current false, and excluded, so it cannot improve the current comparison. Evidence is time-bounded through teaching day three inclusive; day four is stale, with no renewal route. No actual timed trial, market claim, model, respondent, statistical confidence interval or advertising approval is depicted.

Next chapter

Learn in your browser · Chapter 07 of 08

07

Currentness, corrections and human challenge

Rebuild decisions after changes while preserving history and unanswered questions.

Currentness is a relationship between a claim and the evidence supporting it now. A register created yesterday can retain correct historical arithmetic while being unsuitable for today's proposed wording. Lark version two changes the authored A time from forty to forty-five seconds, with B still fifty. The reduction becomes five divided by fifty, or ten percent. The earlier twenty-percent calculation is not a calculation error about version one; it is stale if used as the current version-two comparison. Preserve that distinction in corrections so a reviewer understands both what changed and which earlier statement was bounded correctly.

Use a six-step change method. First capture the triggering change, source failure or unresolved objection. Second stop the affected analytical work and mark dependent claims and exports stale. Third retain the earlier wording, evidence IDs, version, day and documentary copies. Fourth establish the current source and whether it is still usable for the proposed purpose. Fifth redo inspections, all required assessments and the complete register in the current context. Sixth record the revised statement, unresolved questions and decision boundary. Restarting work is a new evidence check, rather than an instruction to display the old green result again.

The lab has a deliberately small calendar. Day one is the initial teaching day; the synthetic sample and current benchmark expire after day three inclusive. They are usable on day three and stale on days four and five. These are fixture rules, not legal retention periods or research freshness standards for every industry. A real plan needs review triggers derived from its study, product, market, methods and intended use. Do not teach the example's three-day period as a required advertising review interval. More importantly, no Lark method renews the evidence simply by moving the date or changing a label.

change_evidence_version accepts only a forward move from one to two, with a repeated current version producing NO_CHANGE and rollback rejected. advance_teaching_day similarly advances only through the supported days, with repeat and rollback handled separately. A genuine change clears dependent inspections, assessments, register and current export. Familiar numbers are not proof that dependencies survived. The sample count happens to remain twelve of twenty under the proposed version change, but its earlier inspection is still invalidated. Recheck context, not just whether a calculated value looks unchanged, because a complete dossier binds several sources and a current decision.

stop_work records a bounded plain-text reason and clears dependent state. It stops this fictional teaching workflow, not an external campaign or account. A useful reason identifies the affected claim, the uncertain evidence and the next question. For example, current benchmark source unavailable; retain comparison hold pending a valid current source. A slogan such as quality review supplies too little context. The finite reason field is mutable memory and not a secure incident log. A real operational stop would need actual authority, publication controls, communications and records management that this exercise does not implement.

resume_work checks the current expected version and day. In an unexpired context, resumption makes teaching work active but does not restore inspections or decisions. Fresh checks are required. If already stopped, expired resume leaves it stopped with HOLD_STALE_EVIDENCE; a stale resume call does not itself set an already active process to stopped. This difference is useful in a paper drill: the team cannot solve an evidence expiry problem by announcing that the meeting has resumed. Record which current evidence would be required outside the fixture before any real reconsideration. The finite implementation has no replacement-source approval or renewal route, and no mode can supply actual customers, rights clearance or campaign authority.

A worked incident starts with a version-one paper dossier containing the two bounded statements. The sponsor proposes version two but asks to keep the larger percentage. An average prompt changes the version label and leaves the headline. An elite correction request retains the original statement as historical, recalculates the current difference and rebuilds source links after invalidation. Its draft ten-percent wording remains an authored-record description. It also keeps L-C05 held, because changing performance data supplies neither licence nor consent. A correction in one evidence class must not be used as evidence that unrelated gaps have been resolved.

Known validation failures handled inside methods clear the relevant downstream current register or export. This contract boundary is different from Python rejecting a missing or unknown keyword before entering the method body. That pre-body TypeError leaves prior state unchanged. A rehearsal should distinguish those paths rather than promising that every failed call erases every result. Likewise, old exported copies remain documentary copies when current state changes. Mark their context and restrict reliance through the review process; do not claim the process has deleted a saved file, recalled a distributed message or revoked an external person's access.

Human challenge should be possible without specialist coding knowledge. A reviewer might ask whether the twenty rows are people, whether fastest means all competitors, whether the endorsement exists or which task the times describe. Provide exact original wording and source limitations so the question can be answered directly. Record disagreements without turning dissent into another invented statistic. Proposed ownership must include the ability to obtain evidence and retain a hold; a name that cannot challenge the sponsor adds little. No role string in Lark verifies a real identity, competence, independence or appointment as an authorised campaign reviewer.

ico-data-principles links accuracy with purpose, minimisation, retention, security and accountability within its selected personal-data scope. Its visible DUAA review notice remains a qualification, not a reason to stop thinking about accuracy. The March 2026 update concerns the purpose-limitation page; it does not establish that every linked topic has been rewritten. A correction plan involving actual customer data would require appropriate review of the concrete processing and basis. Lark contains none. The three-day synthetic expiry and a memory reset are therefore teaching state controls, not personal-data deletion or proof of a compliant retention schedule.

Currentness also affects a reader's ability to verify a comparison. cap-comparison-verifiability describes useful information such as dates, methods and results. A current-looking signpost pointing to an old basis can mislead a reader about what was compared. Maintain a clear historical record and a distinct current description if future publication becomes authorised. If the source cannot be provided because of unresolved rights, note that conflict rather than inventing access. These are paper governance proposals. No public correction, research participant notification, verification page or actual incident response has occurred because a learner completed the drill.

Finish the drill with a handover another colleague can challenge. It should show the trigger, the earlier context, what was invalidated, the fresh checks expected, revised bounded wording and remaining held claims. Record any execution separately from the paper prediction, including failures and skips if the lab is actually run. A new process starts version one, day one and active, without inspections, assessments or a register; that is a reset of mutable memory, not a durable restoration. The lesson is to make the next decision depend on current evidence while preserving the history needed to understand the previous one.

Scroll sideways to see every column.

Currentness, corrections and human challenge · Table 9
Elite prompt componentRequired instruction
RoleCorrection drill organiser.
ConstraintsFictional current context only; no real incident, account stop, deletion or campaign approval.
ProcessCapture trigger, preserve history, stop affected work, check current context, redo dependencies and record a correction.
VerificationCompute version-two difference/B; check inclusive expiry and old-copy versus current-state distinction.
Output schemaTrigger; earlier version/day/wording; stop reason; invalidated dependencies; fresh checks; correction; unknowns; held release.
Failure modesReject relabelled old calculations, reinstated decisions, expiry renewal and TypeError treated as a validated in-method hold.

Currentness, corrections and human challenge evidence path

Keep source meaning and unresolved authority visible through the decision.

TriggerStop and preserveCurrent evidenceFresh assessmentBounded correction
Steps
  • Trigger: Version, day, source failure or challenge.
  • Stop and preserve: Earlier wording/context retained; dependencies cleared.
  • Current evidence: Expiry and expected context checked.
  • Fresh assessment: Both inspections and all seven claims rebuilt.
  • Bounded correction: Current wording, unknowns and real campaign HOLD.
Relationships and conditions
  1. Trigger to Stop and preserve: Identify exact scope
  2. Stop and preserve to Current evidence: Expose missing support
  3. Current evidence to Fresh assessment: Preserve current context
  4. Fresh assessment to Bounded correction: Retain held real use

Text equivalent: Trigger: Version, day, source failure or challenge.. Stop and preserve: Earlier wording/context retained; dependencies cleared.. Current evidence: Expiry and expected context checked.. Fresh assessment: Both inspections and all seven claims rebuilt.. Bounded correction: Current wording, unknowns and real campaign HOLD. Real use remains held.

Try it yourself · Activity 07

60 minutes

Rehearse a version and expiry incident

A day-two version-one dossier is followed by version two. The sponsor wants to retain 20%, then proposes resuming on day four. Write the correction and stop record without claiming actual execution.

  1. Success criteria: retain version-one wording as historical; version-two current arithmetic is 10% relative to B.
  2. Explain fresh dependencies after change/resume and stale day-four evidence, with no renewal.
  3. Keep rights and campaign holds; distinguish old-copy survival from current export validity.

Which correction shortcut could make old arithmetic look current without obtaining any current evidence?

Worked answer

Paper expectation: on day two, stop with a specific reason and preserve the version-one 20% record as historical. Call change_evidence_version(2); this changes evidence but does not reactivate stopped work. While day two is unexpired, explicitly call resume_work(2, 2), then freshly inspect the current sample and A45/B50 comparison with matching version/day, assess all seven claims and rebuild the register. Current reduction is 10%. For the later expiry drill, stop again before advancing to day four. resume_work(2, 4) then returns HOLD_STALE_EVIDENCE and leaves this already stopped process stopped; no method renews expiry. L-C05 and real release remain held. Old exports persist; memory invalidation is not deletion or recall. Record actual results separately, distinguishing a handled validation failure from Python pre-body TypeError.

Scroll sideways to see every column.

Currentness, corrections and human challenge · Table 10
Chapter review questionAnswer after your attempt
When does evidence expire?After day 3 inclusive; days 4 and 5 are stale.
Does resume reinstate a register?No. Unexpired resume clears dependencies and requires fresh checks.
What happens to old copies?They persist with their original context, without current authority.
Does version two supply a real study?No. It changes an authored value only.
Does every failed Python call clear state?No. Pre-body signature TypeError leaves state unchanged; handled failures follow their contract.
What is a fresh process?Initial version 1/day 1/active memory without inspections or a register, not durable recovery.

Apply what you learned · Practice

Version two changes A to 45; B remains 50. What correction is needed?

Explanation and answer

Use 10% less time for current authored records and rebuild dependencies. Current source values and dependencies must be rebuilt; the fixture supplies no renewal or external deletion.

Practice only. This does not count towards your exam or certificate.

Next chapter

Learn in your browser · Chapter 08 of 08

08

Campaign evidence dossier

Assemble the complete source-linked decision package while real campaign release remains held.

The campaign evidence dossier is a decision package, not a collection of reassuring documents. A colleague should discover the proposed decision, the exact claim, its support, its permission limits and the consequences of proceeding without asking the author to translate it. Lark's question is whether a clearer pack-description concept merits actual research. It does not ask which public headline to launch. State that question first and retain the choice between an unsupported promotional headline, a bounded internal research summary and holding further work pending actual evidence. Only the internal teaching summary is supported within this exercise; real campaign release remains held.

The dossier needs an evidence inventory before the claim register. Its six cards have six distinct kinds: a synthetic sample table, an authored model hypothesis, a synthetic benchmark, a synthetic archived benchmark, a hypothetical rights restriction and a stakeholder assertion. Their kinds explain what sort of support they can supply. Listing a hypothesis is not reporting a model run. Listing restricted-report metadata is not reading a report. Listing a sponsor assertion is not obtaining a customer statement. Keep the original limitations visible beside the source reference so a later summary cannot quietly turn an inventory of problems into a catalogue of completed research.

Describe the sample exactly. L-S01 has twenty authored row IDs, with twelve selecting A and eight B. The supplied ordering places A in L-R01 through L-R12 and B in L-R13 through L-R20. This is a fictional purposive worksheet, without humans, recruitment, nonresponse observations or a measured population. Twelve divided by twenty equals sixty percent of these rows. No conventional margin of error or market preference follows. aapor-transparency practice supports disclosing human response counts, frames, AI use and limitations, but does not endorse a study's rigour. The dossier must describe zero actual respondents plainly instead of suggesting transparent methods establish representativeness.

Retain all seven claims, including the five holds. A register with only the two acceptable worksheet descriptions would conceal the original decision pressure and leave a reviewer unable to see what was rejected. L-C01 lacks population support; L-C02 lacks the research behind demand; L-C03 lacks market-wide performance; L-C04 lacks any authentic customer endorsement; L-C05 lacks rights and purpose evidence. L-C06 and L-C07 are bounded teaching statements conditional on the current inspections. Record the exact original, linked source IDs and kinds, scope, confidence reason, expiry, recheck trigger and unresolved use questions for every row, rather than assigning a general approval badge.

Build the package through six steps. First freeze the purpose and excluded real activities. Second inventory sources, methods, origins and permission unknowns. Third trace each material assertion to a current source or explicit gap. Fourth independently check the arithmetic, denominator and limitations, preserving contradictory and obsolete records. Fifth compare editorial alternatives and record the human challenge and next research proposal. Sixth export a current complete teaching dossier while retaining real release hold. Under the contract, a complete register needs both current inspections and all seven assessments. Completeness is about documentary coverage; it does not convert the five absent evidence objects into findings.

The original paper research proposal should investigate actual adult understanding of the pack description before anyone writes a demand headline. Define the target population, inclusion and exclusion decisions, recruitment approach, sample limitations, neutral questions and how confusion or disagreement would be recorded. A second strand could compare the same necessary task under matched conditions and report completion quality as well as time. Do not preselect respondents who like A or treat faster completion as purchase demand. Specify what actual evidence would permit a narrower future claim, leaving the population-wide claim held unless a justified study supports that inference.

Rights and privacy remain a separate workstream. The L-S05 card is metadata only; its hypothetical report is absent. A real proposal should identify the source owner, intended excerpts, commercial reuse, provider upload, training, retention, export and deletion terms before processing. ipo-source-rights describes a limited noncommercial research exception with lawful access, not a commercial scraping licence. Its older guidance was cross-read with a March 2026 report; consultation options are not enacted permission here, and operative CDPA retrieval failed. A source citation or public visibility cannot resolve the missing licence and contract questions in L-C05.

Participation, personal-data processing and marketing contact should also be considered separately. ico-direct-marketing discusses purpose and basis, informed specific consent where relied on and activity-dependent electronic marketing requirements. Agreeing to a research interview does not automatically authorise promotional contact or a model provider's training use. ico-ai-minimisation says relevant necessary fields matter; possible later usefulness does not retrospectively justify collection or retention. Applicable processing and the actual channel need review, with DUAA notices retained. In Lark no personal records, participants, uploads or contacts exist, so the dossier identifies unanswered questions rather than selecting a real lawful basis or claiming consent.

The worked capstone begins with an average instruction to turn the six sources into a persuasive campaign with a customer quote and one strong percentage. It would convert gaps into evidence and hide the archive problem. The elite request asks for a complete internal evidence dossier with rejected claims preserved and no distribution. The proposed response retains twelve of twenty as an authored count, computes twenty percent less time only for version one, rejects the fabricated quote and keeps permission unresolved. Its next action is a reviewed research proposal, not a mailing list, advertising account task, publication instruction or claim that customers have been consulted.

The complete dossier also needs useful human challenge arrangements. Propose a research practitioner to question the frame and inference, a claim reviewer to question likely meaning and support, and rights/privacy reviewers to examine actual intended use. These are proposed responsibilities, with real appointments and authority still open. Provide readable text and tables, an explicit source version and a way to record disagreement. If a challenge cannot be answered, retain it in the package. A neat export is not a sovereignty demonstration: source ownership, provider processing, terms, retention, export and effective exit require actual organisational decisions and evidence beyond a copied JSON object.

Plan the incident before presenting the result. A version change, expiry, source failure or stop clears current dependencies. On version two the comparison becomes ten percent; on day four the relevant evidence is stale and no renewal exists. Rechecking all claims matters even when five decisions remain held and the sample percentage stays familiar. export_dossier returns a defensive teaching copy only for a fresh complete register. Saved older copies continue to exist, and a fresh process resets initial memory. These contract expectations must be compared with actual execution separately; the paper dossier is not a passing runtime test or evidence that a real campaign has stopped.

The final presentation should make the distinction between knowledge and performance easy to understand. Explain the two calculations, the five unsupported assertions, source permissions and the proposed next research without claiming professional approval. The linked official assessment is a twenty-question knowledge draw with a strict above-eighty-percent rule: sixteen correct fails and seventeen passes. Public exam availability depends on the completed checked release; written practice and this capstone are ungraded and not assessed by that MCQ score. Preserve Mickai's proposed help with organising source records, digitisation and human control as an engagement option, without claiming a deployed research capability, certified product, customer result or licence clearance.

Scroll sideways to see every column.

Campaign evidence dossier · Table 11
Source ID and evidence kindComplete paper inventory contentCurrentness and intended-use limits
L-S01 synthetic_sample_tableTwenty authored rows in a fictional purposive worksheet; no actual respondents.Internal teaching only; every real use unresolved. Days 1 through 3 inclusive; stale afterwards.
L-S02 authored_model_hypothesisSupplied hypothetical summary says 80% of UK buyers want the concept; no supporting research. Supplied original: AI research proves 80% demand.Internal teaching only; every real use unresolved. No null expiry or inventory entry supplies a licence, actual research or permission.
L-S03 synthetic_benchmarkAuthored matched task times for only two fictional prototypes; no actual timed trial. Version 1: A40/B50; version 2: A45/B50; same authored pack-description task.Internal teaching only; every real use unresolved. Days 1 through 3 inclusive; stale afterwards.
L-S04 synthetic_archived_benchmarkObsolete authored benchmark superseded by the current record; historical only. Historical A30/B50, current=false.Internal teaching only; every real use unresolved. No null expiry or inventory entry supplies a licence, actual research or permission.
L-S05 hypothetical_rights_restrictionMetadata only: hypothetical report reuse/training rights and personal-data handling unresolved. No actual report or personal record.Internal teaching only; every real use unresolved. No null expiry or inventory entry supplies a licence, actual research or permission.
L-S06 stakeholder_assertionFictional sponsor invents an endorsement and asserts every input is licensed and consented for every use; no proof.Internal teaching only; every real use unresolved. No null expiry or inventory entry supplies a licence, actual research or permission.

Scroll sideways to see every column.

Campaign evidence dossier · Table 12
Authored row IDFictional worksheet choice
L-R01A
L-R02A
L-R03A
L-R04A
L-R05A
L-R06A
L-R07A
L-R08A
L-R09A
L-R10A
L-R11A
L-R12A
L-R13B
L-R14B
L-R15B
L-R16B
L-R17B
L-R18B
L-R19B
L-R20B

Scroll sideways to see every column.

Campaign evidence dossier · Table 13
Claim ID and exact originalSource IDs and kindsPaper expected decision and confidence reasonExpiry/recheck and actual unknowns
L-C01: 60% of UK buyers prefer A.L-S01; synthetic_sample_tableHOLD_POPULATION_INFERENCE. Population support absent; no actual sampling.Underlying current sample/benchmark expires after day 3 inclusive. Recheck every version/day/source change/challenge/stop. Actual research, licence, purpose, privacy, product/channel/jurisdiction and campaign review unresolved.
L-C02: AI research proves 80% demand.L-S02; authored_model_hypothesisHOLD_FABRICATED_EVIDENCE. No research behind the supplied demand wording.Recheck every version/day/source change/challenge/stop. Actual research, licence, purpose, privacy, product/channel/jurisdiction and campaign review unresolved.
L-C03: A is the UK's fastest stationery choice.L-S03, L-S04; synthetic_benchmark, synthetic_archived_benchmarkHOLD_UNSUPPORTED_SUPERLATIVE. Two records do not establish market-wide superiority.Underlying current sample/benchmark expires after day 3 inclusive. Recheck every version/day/source change/challenge/stop. Actual research, licence, purpose, privacy, product/channel/jurisdiction and campaign review unresolved.
L-C04: A customer endorses A as the best.L-S06; stakeholder_assertionHOLD_FABRICATED_ENDORSEMENT. No authentic customer event or permitted endorsement.Recheck every version/day/source change/challenge/stop. Actual research, licence, purpose, privacy, product/channel/jurisdiction and campaign review unresolved.
L-C05: All inputs are licensed and consented for every use.L-S05, L-S06; hypothetical_rights_restriction, stakeholder_assertionHOLD_RIGHTS_AND_PURPOSE_UNKNOWN. Rights, purposes and consent evidence absent.Recheck every version/day/source change/challenge/stop. Actual research, licence, purpose, privacy, product/channel/jurisdiction and campaign review unresolved.
L-C06: In this authored worksheet, 12 of 20 fictional rows select A: 60%; no actual respondents or population estimate.L-S01; synthetic_sample_tableBOUNDED_TEACHING_STATEMENT. Finite authored-row arithmetic only, not inferential precision.Underlying current sample/benchmark expires after day 3 inclusive. Recheck every version/day/source change/challenge/stop. Actual research, licence, purpose, privacy, product/channel/jurisdiction and campaign review unresolved.
L-C07: In these authored matched records, A is 40 seconds and B 50: A uses 20% less time relative to B; no actual trial or market comparison.L-S03; synthetic_benchmarkBOUNDED_TEACHING_STATEMENT. Finite current authored values and B denominator only.Underlying current sample/benchmark expires after day 3 inclusive. Recheck every version/day/source change/challenge/stop. Actual research, licence, purpose, privacy, product/channel/jurisdiction and campaign review unresolved.

Scroll sideways to see every column.

Campaign evidence dossier · Table 14
Dossier workstreamComplete fictional proposal and held decision
Purpose/editorial alternativesLark-Stationery-Insight-Training: investigate whether clearer pack descriptions merit actual adult research. Reject unsupported promotional headline; retain bounded internal summary as teaching; hold real campaign pending actual evidence.
Actual research question and methodPropose neutral comparison of description A and B: What information does each description communicate? What remains unclear? Record disagreements and confusion. Define actual population/frame/recruitment, inclusion/exclusion, nonresponse and limitations with a research practitioner before recruiting. No predetermined preference rate or invented responses.
Actual task comparisonPropose matched required pack-description task with defined start/end, consistent instructions and completion-quality/error observations alongside time. Specify exclusions before results. Sample size and inference need actual justified design; no population precision supplied here.
Source/provider/rightsProposed rights owner identifies source holder, excerpts, commercial reuse, provider upload/training, storage/jurisdiction, retention, export and effective exit. L-S05 is metadata only: no actual report read or uploaded. IPO guidance/report does not clear commercial copying; operative CDPA review remains open.
Privacy/contactProposed privacy owner reviews actual roles, purpose, minimal fields, basis, retention, objections and channel-specific contact requirements. Research participation is not automatic marketing consent or provider training permission. ICO DUAA notices and concrete processing review remain open.
Human challenge and accessProposed research, claim and rights/privacy reviewers remain to be appointed; actual release owner and authority are unresolved. Provide readable text/tables and preserve source-linked objections. Propose written or assisted challenge routes based on actual needs; no phone or interface is claimed usable for everyone.
Currentness/incidentVersion 1/day 1 paper package. Inclusive expiry day 3; change/day/source failure/challenge/stop triggers current checks. Preserve earlier originals; version 2 calculation 10%; fresh dependencies after unexpired resume; no expiry renewal, saved-copy deletion or campaign recall.
Knowledge and practical boundariesLinked official exam, available after checked release:20-question MCQ draw, strictly above 80%,16 fails; 17 passes. Capstone/written tasks ungraded; no practical competence, professional credential or real advertising approval.
Export and actual factsPaper expected defensive TEACHING_DOSSIER only after both current inspections and all seven assessments. actualCustomerResearch=false, actualModelRun=false, populationInferenceValidated=false, rightsCleared=false, privacyApproved=false, campaignReleaseAuthorised=false; realCampaignStatus=HOLD. No observed runtime result is claimed by this paper package.

Scroll sideways to see every column.

Campaign evidence dossier · Table 15
Elite prompt componentRequired instruction
RoleCampaign evidence dossier compiler.
ConstraintsOriginal synthetic Lark material; no actual customer, model, research, licence, contact or distribution.
ProcessInventory six kinds, inspect both calculations, retain all seven claims, compare editorial alternatives and propose actual research.
VerificationCheck every original/source link, denominator, context, archive exclusion, expiry and real release hold.
Output schemaQuestion; inventory; sample limits; seven-row register; confidence/expiry; research/rights/privacy/provider plan; challenges; current teaching scope.
Failure modesReject invented findings, omitted held rows, fictional consent, stale arithmetic, export as sovereignty proof and exam as professional approval.

Campaign evidence dossier evidence path

Keep source meaning and unresolved authority visible through the decision.

Purpose and sourcesSeven claimsArithmetic and historyResearch and rights planCurrent teaching export
Steps
  • Purpose and sources: Six distinct kinds and original limitations.
  • Seven claims: Five held; two bounded teaching statements.
  • Arithmetic and history: 12/20; current benchmark; archive separate.
  • Research and rights plan: Actual evidence, permission and qualified review unresolved.
  • Current teaching export: Fresh complete register; real release HOLD.
Relationships and conditions
  1. Purpose and sources to Seven claims: Identify exact scope
  2. Seven claims to Arithmetic and history: Expose missing support
  3. Arithmetic and history to Research and rights plan: Preserve current context
  4. Research and rights plan to Current teaching export: Retain held real use

Text equivalent: Purpose and sources: Six distinct kinds and original limitations.. Seven claims: Five held; two bounded teaching statements.. Arithmetic and history: 12/20; current benchmark; archive separate.. Research and rights plan: Actual evidence, permission and qualified review unresolved.. Current teaching export: Fresh complete register; real release HOLD. Real use remains held.

Try it yourself · Activity 08

90 minutes

Present the complete Lark campaign dossier

Use the inventory and full seven-row register to present a version-one/day-one internal dossier. Compare the unsupported headline, bounded teaching summary and hold pending research. Rehearse version two and expiry.

  1. Success criteria: retain six distinct source kinds, twenty authored rows and all seven original claims, including five separate holds.
  2. Show 12/20=60%, current (50-40)/50=20%, archive excluded and version-two expectation 10%.
  3. Include sampling limits, confidence reasons, expiry/recheck, proposed owners, source/provider/privacy questions and real release HOLD.
  4. Separate the ungraded paper capstone, actual runtime evidence and linked knowledge examination.

Could a reviewer identify every missing evidence object without relying on your oral explanation?

Worked answer

Choose the source-bounded internal summary as teaching material. Twelve of twenty authored rows select A:60%, with no people or population estimate. Authored A40/B50 uses 20% less time relative to B, with no actual trial or market comparison. Preserve five unsupported originals as held, six kinds and L-S04 history. Proposed research, rights/privacy/provider and human challenge remain to be completed for real use. A teaching export needs fresh current inspections and all seven assessments, with all actual flags false and realCampaignStatus HOLD. Version two requires 10% arithmetic and fresh dependencies; day four is stale with no renewal. The capstone is ungraded and confers no campaign or professional acceptance.

Scroll sideways to see every column.

Campaign evidence dossier · Table 16
Chapter review questionAnswer after your attempt
Why keep the five held rows?They preserve original decision pressure and exact missing support.
How many actual respondents exist?Zero; twenty authored rows only.
Are there six source kinds?Yes, with six distinct original evidential limits.
Does a complete register mean release?No. It is a teaching dossier; real campaign remains held.
Does export establish sovereign control?No. Source/provider/processing/exit rights require actual decisions and evidence.
Does seventeen correct certify practical skill?No. It satisfies a prospective knowledge threshold only; written/capstone work are ungraded.

Apply what you learned · Practice

Which final package matches the capstone scope?

Explanation and answer

Seven teaching rows: five holds, two bounded statements and real release HOLD. Completeness preserves the held claims and absent actual approvals; it does not clear a real campaign.

Practice only. This does not count towards your exam or certificate.

Scroll sideways to see every column.

Campaign evidence dossier · Table 17
Supplementary questionAnswer after your attempt
Can a disclaimer rescue every headline?No. Selected CAP rules say qualifications must not contradict central meaning. Interpretation and applicability require actual-context review.
Can I turn a sponsor suggestion into a modest testimonial?Not a genuine endorsement. L-S06 has no customer event; editing cannot supply authenticity or permitted use.
Why distinguish less time from faster?Elapsed-time reduction uses its stated baseline. For 40 versus 50 seconds, the reduction is 20%; the equal-task rate ratio would be 25% more. These are different measures and no actual trial.
Does linking a source clear a comparison?No. Support and usable verification detail are separate. A generic link can leave the comparison basis unidentified.
Can the teaching expiry be renewed?No. Day 3 is inclusive; days 4 and 5 are stale. No Lark method supplies replacement evidence or renews expiry.
Does resume restore the old register?No. Unexpired resume requires fresh checks; expired resume remains held. Saved earlier copies persist as earlier documents.
Does dossier export prove sovereign control?No. It is a defensive teaching copy. Actual source rights, provider processing, retention, basis and effective exit need organisational evidence and qualified decisions.
What does the linked exam assess?A prospective 20-question knowledge draw. Strictly above 80% means 16 correct fails and 17 passes. The private route is unavailable; written practice and capstone are ungraded without professional qualification.
  • Brief: receiving decision, question, proposed population and period, without an assumed demand finding.
  • Evidence inventory: all six IDs, kinds, locators, current/historical status and unresolved source permissions.
  • Sample: all twenty original authored rows, 12/20=60%, zero actual respondents, no population estimate or conventional margin of error.
  • Claim register: all seven original claims with source kinds, five individual hold reasons and two qualified worksheet statements.
  • Currentness: version/day, inclusive day-three expiry, review triggers, stopped/resumed state and fresh dependencies.
  • Correction: original rejected wording retained alongside bounded alternatives; no invented endorsement, rights record or customer event.
  • Future research: frame, recruitment, wording, absent users, observations and uncertainty questions; no actual study claimed.
  • Use proposal: source rights, participation, processing basis, contact purpose, provider training/retention and exit remain separate.
  • Human challenge: proposed owner, ability to reject and stop, disagreement record, source failure and non-AI manual fallback.
  • Handover: paper predictions separate from attributed execution evidence; all real factual flags false and campaign HOLD.
text · 31 lines
# Lark Claim Ledger

An original finite adult marketing-research worksheet. Seven exact authored claims are assessed against six distinct synthetic evidence kinds. This is not an AI model, general truth detector, campaign tool or approval system. There are no actual respondents, customer records, restricted reports, uploads, contacts, accounts or external actions.

## Run locally

Keep exactly four learner files together: README.md, fixture.json, lark_lab.py, test_lark_lab.py. Python 3.10 or later, standard library only. Run `python -B -X utf8 lark_lab.py` for the complete JSON demo and `python -B -X utf8 -m unittest -v test_lark_lab` for author checks. No installation, network or model account is required. Learner tests use the platform tempfile default; optional LARK_TEST_TEMP selects an existing writable directory. Creator TEMP/TMP settings are external and learners do not need M:.

## Work through the exact methods

Import Lark and CLAIM_IDS from lark_lab, and create `l = Lark()`. Start at version 1, teaching day 1, active state. `l.list_evidence_inventory()` returns all six metadata cards. The unresolved-rights card contains no actual third-party document and gives no permission to extract one.

`l.inspect_sample(1, 1)` inspects twenty authored fictional rows, twelve A/eight B: 60% of these rows, zero actual human responses, no population estimate or margin of error. `l.calculate_bounded_comparison(1, 1)` compares only the two authored current task records: A40 seconds versus B50, (50-40)/50=20% less time relative to B. This is not a rate improvement, observed trial or all-market comparison. The archived A30/B50 record remains obsolete and excluded from the calculation.

Run `l.assess_claim(cid, 1, 1)` for each ID in CLAIM_IDS. Five exact claims retain holds for population inference, fabricated demand, unsupported superlative, fabricated endorsement and rights/purpose uncertainty. L-C06 and L-C07 require the caller's prior current sample and comparison checks respectively; the method does not inspect on the caller's behalf. They return BOUNDED_TEACHING_STATEMENT only with explicit fictional limitations. There is no arbitrary text argument or semantic deception classifier.

`l.build_claim_register(1, 1)` needs both inspections and all seven current assessments. It retains five holds and two bounded teaching statements, exact original/current wording, source IDs and kinds, support reasons, expiry/recheck trigger and unresolved questions. Confidence rationale describes the finite support, never a statistical probability or legal certainty. `l.export_dossier(1, 1)` requires that register and returns a separate TEACHING_DOSSIER copy. Both bounded statements remain internal teaching material, never public advertising permission. Every analytical result keeps realCampaignStatus HOLD and actualCustomerResearch, actualModelRun, populationInferenceValidated, rightsCleared, privacyApproved and campaignReleaseAuthorised false.

## Change and stop

`l.change_evidence_version(2)` is the only forward version change. It replaces current A40 with A45, B50 unchanged: the fresh comparison is10% less time. The L-C07 original20% wording remains documentary history beside the current10% wording. A version change clears inspections, assessments and register; repeat-current is NO_CHANGE and rollback is rejected. Old returned exports remain old copies.

`l.advance_teaching_day(new_day)` advances monotonically through days1–5. Day3 is inclusive; days4/5 are stale. Any real advance clears current work; repeated current day is NO_CHANGE. No renewal method exists and changing version never extends day3 expiry. These are teaching days, not legal retention dates or real permission records.

`l.stop_work('Evidence needs review')` clears work and marks the local teaching process stopped. Reason must be a nonblank plain-text string of at most300 characters. It does not stop any external system. `l.resume_work(current_version, current_day)` requires matching context and unexpired teaching evidence, clears all work and demands fresh checks. A stopped process remains stopped if expired. Metadata listing is still possible while stopped; analytical work is held.

Validation of exposed IDs, exact integer context, version/day transition and stopped/stale context occurs before fixture reads. The fixed fixture path is next to this module; there is no caller path. Exact nested fields, types, values, IDs, provenance and duplicate JSON keys are checked against the code-owned baseline. Fixture errors are held, not successful evidence. Failures inside a method clear the downstream current register; failed sample/comparison checks also clear the respective inspection and dependent assessment, and a failed known claim retry removes that assessment. Rebuilding cannot omit held claims. Missing or unknown arguments that raise Python TypeError before the method body instead leave existing state unchanged; those errors are not recorded holds.

Returned copies cannot change stored results. Internal Python attributes are ordinary mutable memory, not authenticated ownership, secure storage or durable enforcement. A fresh Python process resets version1/day1/active with no checks or register. It does not erase exported files or recall prior copies. Author tests include an actual copied-package subprocess reset; they are not independent lab approval.

Real advertiser/product/channel/audience/jurisdiction, recruitment and research evidence, privacy basis/consent where applicable, source licences, provider terms and qualified campaign review remain open. A synthetic sample is not a customer population; public visibility is not source-right permission; a teaching check never authorises advertising. No marketing contact, campaign, social post, email, targeting or provider processing is performed.

json · 264 lines
{
  "project": "Lark-Stationery-Insight-Training",
  "purpose": "claim-evidence-teaching",
  "initialVersion": 1,
  "initialDay": 1,
  "expiryDay": 3,
  "cards": [
    {
      "id": "L-S01",
      "kind": "synthetic_sample_table",
      "description": "Twenty authored rows in a fictional purposive worksheet; no actual respondents.",
      "provenance": "Lark original authored synthetic teaching material",
      "purpose": "internal-teaching-only",
      "permissions": "Unresolved for every real use",
      "expiryDay": 3,
      "limitations": [
        "Authored synthetic evidence only: no actual customers, respondents or model.",
        "Internal teaching statements are not public advertising approval.",
        "No population inference, statistical confidence interval or actual trial.",
        "Rights, privacy, product, platform and jurisdiction decisions remain unresolved.",
        "Mutable process memory is not authenticated ownership or durable enforcement."
      ],
      "rows": [
        {
          "rowId": "L-R01",
          "choice": "A"
        },
        {
          "rowId": "L-R02",
          "choice": "A"
        },
        {
          "rowId": "L-R03",
          "choice": "A"
        },
        {
          "rowId": "L-R04",
          "choice": "A"
        },
        {
          "rowId": "L-R05",
          "choice": "A"
        },
        {
          "rowId": "L-R06",
          "choice": "A"
        },
        {
          "rowId": "L-R07",
          "choice": "A"
        },
        {
          "rowId": "L-R08",
          "choice": "A"
        },
        {
          "rowId": "L-R09",
          "choice": "A"
        },
        {
          "rowId": "L-R10",
          "choice": "A"
        },
        {
          "rowId": "L-R11",
          "choice": "A"
        },
        {
          "rowId": "L-R12",
          "choice": "A"
        },
        {
          "rowId": "L-R13",
          "choice": "B"
        },
        {
          "rowId": "L-R14",
          "choice": "B"
        },
        {
          "rowId": "L-R15",
          "choice": "B"
        },
        {
          "rowId": "L-R16",
          "choice": "B"
        },
        {
          "rowId": "L-R17",
          "choice": "B"
        },
        {
          "rowId": "L-R18",
          "choice": "B"
        },
        {
          "rowId": "L-R19",
          "choice": "B"
        },
        {
          "rowId": "L-R20",
          "choice": "B"
        }
      ]
    },
    {
      "id": "L-S02",
      "kind": "authored_model_hypothesis",
      "description": "Supplied hypothetical summary says 80% of UK buyers want the concept; no supporting research.",
      "provenance": "Lark original authored synthetic teaching material",
      "purpose": "internal-teaching-only",
      "permissions": "Unresolved for every real use",
      "expiryDay": null,
      "limitations": [
        "Authored synthetic evidence only: no actual customers, respondents or model.",
        "Internal teaching statements are not public advertising approval.",
        "No population inference, statistical confidence interval or actual trial.",
        "Rights, privacy, product, platform and jurisdiction decisions remain unresolved.",
        "Mutable process memory is not authenticated ownership or durable enforcement."
      ],
      "text": "AI research proves 80% demand."
    },
    {
      "id": "L-S03",
      "kind": "synthetic_benchmark",
      "description": "Authored matched task times for only two fictional prototypes; no actual timed trial.",
      "provenance": "Lark original authored synthetic teaching material",
      "purpose": "internal-teaching-only",
      "permissions": "Unresolved for every real use",
      "expiryDay": 3,
      "limitations": [
        "Authored synthetic evidence only: no actual customers, respondents or model.",
        "Internal teaching statements are not public advertising approval.",
        "No population inference, statistical confidence interval or actual trial.",
        "Rights, privacy, product, platform and jurisdiction decisions remain unresolved.",
        "Mutable process memory is not authenticated ownership or durable enforcement."
      ],
      "versions": {
        "1": {
          "A": 40,
          "B": 50
        },
        "2": {
          "A": 45,
          "B": 50
        }
      },
      "task": "Same authored pack-description task"
    },
    {
      "id": "L-S04",
      "kind": "synthetic_archived_benchmark",
      "description": "Obsolete authored benchmark superseded by the current record; historical only.",
      "provenance": "Lark original authored synthetic teaching material",
      "purpose": "internal-teaching-only",
      "permissions": "Unresolved for every real use",
      "expiryDay": null,
      "limitations": [
        "Authored synthetic evidence only: no actual customers, respondents or model.",
        "Internal teaching statements are not public advertising approval.",
        "No population inference, statistical confidence interval or actual trial.",
        "Rights, privacy, product, platform and jurisdiction decisions remain unresolved.",
        "Mutable process memory is not authenticated ownership or durable enforcement."
      ],
      "times": {
        "A": 30,
        "B": 50
      },
      "current": false
    },
    {
      "id": "L-S05",
      "kind": "hypothetical_rights_restriction",
      "description": "Metadata only: hypothetical report reuse/training rights and personal-data handling unresolved. No actual report or personal record.",
      "provenance": "Lark original authored synthetic teaching material",
      "purpose": "internal-teaching-only",
      "permissions": "Unresolved for every real use",
      "expiryDay": null,
      "limitations": [
        "Authored synthetic evidence only: no actual customers, respondents or model.",
        "Internal teaching statements are not public advertising approval.",
        "No population inference, statistical confidence interval or actual trial.",
        "Rights, privacy, product, platform and jurisdiction decisions remain unresolved.",
        "Mutable process memory is not authenticated ownership or durable enforcement."
      ]
    },
    {
      "id": "L-S06",
      "kind": "stakeholder_assertion",
      "description": "Fictional sponsor invents an endorsement and asserts every input is licensed and consented for every use; no proof.",
      "provenance": "Lark original authored synthetic teaching material",
      "purpose": "internal-teaching-only",
      "permissions": "Unresolved for every real use",
      "expiryDay": null,
      "limitations": [
        "Authored synthetic evidence only: no actual customers, respondents or model.",
        "Internal teaching statements are not public advertising approval.",
        "No population inference, statistical confidence interval or actual trial.",
        "Rights, privacy, product, platform and jurisdiction decisions remain unresolved.",
        "Mutable process memory is not authenticated ownership or durable enforcement."
      ]
    }
  ],
  "claims": [
    {
      "id": "L-C01",
      "originalWording": "60% of UK buyers prefer A.",
      "sourceIds": [
        "L-S01"
      ],
      "scriptedDecision": "HOLD_POPULATION_INFERENCE"
    },
    {
      "id": "L-C02",
      "originalWording": "AI research proves 80% demand.",
      "sourceIds": [
        "L-S02"
      ],
      "scriptedDecision": "HOLD_FABRICATED_EVIDENCE"
    },
    {
      "id": "L-C03",
      "originalWording": "A is the UK's fastest stationery choice.",
      "sourceIds": [
        "L-S03",
        "L-S04"
      ],
      "scriptedDecision": "HOLD_UNSUPPORTED_SUPERLATIVE"
    },
    {
      "id": "L-C04",
      "originalWording": "A customer endorses A as the best.",
      "sourceIds": [
        "L-S06"
      ],
      "scriptedDecision": "HOLD_FABRICATED_ENDORSEMENT"
    },
    {
      "id": "L-C05",
      "originalWording": "All inputs are licensed and consented for every use.",
      "sourceIds": [
        "L-S05",
        "L-S06"
      ],
      "scriptedDecision": "HOLD_RIGHTS_AND_PURPOSE_UNKNOWN"
    },
    {
      "id": "L-C06",
      "originalWording": "In this authored worksheet, 12 of 20 fictional rows select A: 60%; no actual respondents or population estimate.",
      "sourceIds": [
        "L-S01"
      ],
      "scriptedDecision": "BOUNDED_TEACHING_STATEMENT"
    },
    {
      "id": "L-C07",
      "originalWording": "In these authored matched records, A is 40 seconds and B 50: A uses 20% less time relative to B; no actual trial or market comparison.",
      "sourceIds": [
        "L-S03"
      ],
      "scriptedDecision": "BOUNDED_TEACHING_STATEMENT"
    }
  ]
}

python · 227 lines
"""Lark: seven code-owned claim decisions over authored teaching evidence."""
import copy
import json
from pathlib import Path

FLAGS = dict(actualCustomerResearch=False, actualModelRun=False,
             populationInferenceValidated=False, rightsCleared=False,
             privacyApproved=False, campaignReleaseAuthorised=False)
LIMITS = ["Authored synthetic evidence only: no actual customers, respondents or model.",
          "Internal teaching statements are not public advertising approval.",
          "No population inference, statistical confidence interval or actual trial.",
          "Rights, privacy, product, platform and jurisdiction decisions remain unresolved.",
          "Mutable process memory is not authenticated ownership or durable enforcement."]
UNKNOWNS = ['actual research', 'population/frame/recruitment', 'source rights',
            'lawful basis and consent where applicable', 'provider terms',
            'product/audience/channel/jurisdiction', 'qualified review and campaign decision']
CLAIM_IDS = tuple(f'L-C{i:02}' for i in range(1, 8))

def _baseline():
    kinds = ['synthetic_sample_table', 'authored_model_hypothesis', 'synthetic_benchmark',
             'synthetic_archived_benchmark', 'hypothetical_rights_restriction', 'stakeholder_assertion']
    descriptions = [
        'Twenty authored rows in a fictional purposive worksheet; no actual respondents.',
        'Supplied hypothetical summary says 80% of UK buyers want the concept; no supporting research.',
        'Authored matched task times for only two fictional prototypes; no actual timed trial.',
        'Obsolete authored benchmark superseded by the current record; historical only.',
        'Metadata only: hypothetical report reuse/training rights and personal-data handling unresolved. No actual report or personal record.',
        'Fictional sponsor invents an endorsement and asserts every input is licensed and consented for every use; no proof.']
    cards = [dict(id=f'L-S{i+1:02}', kind=kind, description=descriptions[i],
                  provenance='Lark original authored synthetic teaching material',
                  purpose='internal-teaching-only', permissions='Unresolved for every real use',
                  expiryDay=3 if i in (0, 2) else None,
                  limitations=list(LIMITS)) for i, kind in enumerate(kinds)]
    cards[0]['rows'] = [dict(rowId=f'L-R{i+1:02}', choice='A' if i < 12 else 'B') for i in range(20)]
    cards[1]['text'] = 'AI research proves 80% demand.'
    cards[2]['versions'] = {'1':dict(A=40,B=50), '2':dict(A=45,B=50)}
    cards[2]['task'] = 'Same authored pack-description task'
    cards[3]['times'] = dict(A=30,B=50)
    cards[3]['current'] = False
    originals = ['60% of UK buyers prefer A.', 'AI research proves 80% demand.',
                 "A is the UK's fastest stationery choice.", 'A customer endorses A as the best.',
                 'All inputs are licensed and consented for every use.',
                 'In this authored worksheet, 12 of 20 fictional rows select A: 60%; no actual respondents or population estimate.',
                 'In these authored matched records, A is 40 seconds and B 50: A uses 20% less time relative to B; no actual trial or market comparison.']
    links = [['L-S01'],['L-S02'],['L-S03','L-S04'],['L-S06'],['L-S05','L-S06'],['L-S01'],['L-S03']]
    reasons = ['HOLD_POPULATION_INFERENCE','HOLD_FABRICATED_EVIDENCE',
               'HOLD_UNSUPPORTED_SUPERLATIVE','HOLD_FABRICATED_ENDORSEMENT',
               'HOLD_RIGHTS_AND_PURPOSE_UNKNOWN','BOUNDED_TEACHING_STATEMENT','BOUNDED_TEACHING_STATEMENT']
    claims = [dict(id=cid, originalWording=originals[i], sourceIds=links[i], scriptedDecision=reasons[i])
              for i, cid in enumerate(CLAIM_IDS)]
    return dict(project='Lark-Stationery-Insight-Training', purpose='claim-evidence-teaching',
                initialVersion=1, initialDay=1, expiryDay=3, cards=cards, claims=claims)

def _pairs(pairs):
    obj = {}
    for key,value in pairs:
        if key in obj:
            raise ValueError('duplicate JSON key')
        obj[key] = value
    return obj

def _exact(actual, expected):
    if type(actual) is not type(expected): return False
    if isinstance(expected,dict):
        return actual.keys() == expected.keys() and all(_exact(actual[k],v) for k,v in expected.items())
    if isinstance(expected,list):
        return len(actual)==len(expected) and all(_exact(a,b) for a,b in zip(actual,expected))
    return actual == expected

class Lark:
    def __init__(self):
        self.version = 1
        self.day = 1
        self.active = True
        self.stop_reason = ''
        self._clear()

    def _clear(self):
        self._sample = self._comparison = self._register = None
        self._assessments = {}

    def _out(self,status,**values):
        return copy.deepcopy(dict(status=status,evidenceVersion=self.version,teachingDay=self.day,
                                  realCampaignStatus='HOLD',limitations=LIMITS,**FLAGS,**values))

    def _hold(self,reason):
        self._register = None
        return self._out(reason if reason.startswith('HOLD_') else 'HOLD',reason=reason)

    def _context(self,version,day,active=True,fresh=True):
        if type(version) is not int or version != self.version: return 'INVALID_VERSION'
        if type(day) is not int or day != self.day: return 'INVALID_DAY'
        if active and not self.active: return 'HOLD_STOPPED'
        if fresh and self.day > 3: return 'HOLD_STALE_EVIDENCE'
        return None

    def _load(self):
        try:
            data=json.loads(Path(__file__).with_name('fixture.json').read_text(encoding='utf-8'),object_pairs_hook=_pairs)
            return data if _exact(data,_baseline()) else None
        except (OSError,ValueError,RecursionError):
            return None

    def list_evidence_inventory(self):
        data=self._load()
        return copy.deepcopy(data['cards']) if data else self._hold('INVALID_FIXTURE')

    def inspect_sample(self,expected_version,expected_day):
        self._sample = self._register = None
        self._assessments.pop('L-C06',None)
        reason=self._context(expected_version,expected_day)
        if reason: return self._hold(reason)
        data=self._load()
        if not data: return self._hold('INVALID_FIXTURE')
        card=data['cards'][0]
        denominator=len(card['rows'])
        numerator=sum(r['choice']=='A' for r in card['rows'])
        result=self._out('SYNTHETIC_SAMPLE_INSPECTION',sourceIds=['L-S01'],evidenceKinds=[card['kind']],
                         numerator=numerator,denominator=denominator,percent=100*numerator/denominator,
                         actualHumanResponses=0,populationEstimate=None,marginOfError=None,
                         expiryDay=3,scope=card['description'])
        self._sample=copy.deepcopy(result)
        return result

    def calculate_bounded_comparison(self,expected_version,expected_day):
        self._comparison = self._register = None
        self._assessments.pop('L-C07',None)
        reason=self._context(expected_version,expected_day)
        if reason: return self._hold(reason)
        data=self._load()
        if not data: return self._hold('INVALID_FIXTURE')
        card=data['cards'][2]; times=card['versions'][str(self.version)]
        result=self._out('SYNTHETIC_COMPARISON_INSPECTION',sourceIds=['L-S03'],evidenceKinds=[card['kind']],
                         Aseconds=times['A'],Bseconds=times['B'],numerator=times['B']-times['A'],
                         denominator=times['B'],percentLessTime=100*(times['B']-times['A'])/times['B'],
                         task=card['task'],excludedArchivedSource='L-S04',expiryDay=3,
                         scope='Two authored matched records only; no actual trial, rate or all-market claim.')
        self._comparison=copy.deepcopy(result)
        return result

    def assess_claim(self,claim_id,expected_version,expected_day):
        self._register=None
        if type(claim_id) is not str or claim_id not in CLAIM_IDS: return self._hold('UNKNOWN_CLAIM_ID')
        self._assessments.pop(claim_id,None)
        reason=self._context(expected_version,expected_day)
        if reason: return self._hold(reason)
        if claim_id=='L-C06' and not self._sample: return self._hold('HOLD_MISSING_SAMPLE_INSPECTION')
        if claim_id=='L-C07' and not self._comparison: return self._hold('HOLD_MISSING_COMPARISON_INSPECTION')
        data=self._load()
        if not data: return self._hold('INVALID_FIXTURE')
        claim=next(c for c in data['claims'] if c['id']==claim_id)
        status=claim['scriptedDecision']; wording=claim['originalWording']
        if claim_id=='L-C07' and self.version==2:
            wording=wording.replace('40 seconds','45 seconds').replace('20%','10%')
        cards=[card for card in data['cards'] if card['id'] in claim['sourceIds']]
        result=self._out(status,claimId=claim_id,originalWording=claim['originalWording'],
                         currentWording=wording,revisedWording=wording if status=='BOUNDED_TEACHING_STATEMENT' else None,
                         decision=status,reason=status,sourceIds=claim['sourceIds'],
                         evidenceKinds=[card['kind'] for card in cards],provenance=[card['provenance'] for card in cards],
                         confidenceRationale='Exact supplied arithmetic and narrow fictional scope only; no statistical confidence interval.'
                         if status=='BOUNDED_TEACHING_STATEMENT' else 'No supplied support for this exact scope; retain the stated unknown.',
                         scope='Internal authored teaching statement only; real publication held.',expiryDay=3,
                         recheckTrigger='Any version/day/fixture change, expiry, stop or failed dependent check.',unknowns=UNKNOWNS)
        self._assessments[claim_id]=copy.deepcopy(result)
        return result

    def build_claim_register(self,expected_version,expected_day):
        self._register=None
        reason=self._context(expected_version,expected_day)
        if reason: return self._hold(reason)
        if not self._sample or not self._comparison: return self._hold('HOLD_MISSING_INSPECTIONS')
        if set(self._assessments)!=set(CLAIM_IDS): return self._hold('HOLD_INCOMPLETE_ASSESSMENTS')
        if not self._load(): return self._hold('INVALID_FIXTURE')
        result=self._out('CLAIM_REGISTER',claims=[self._assessments[cid] for cid in CLAIM_IDS],
                         holdCount=5,boundedStatementCount=2,sample=self._sample,comparison=self._comparison,
                         expiryDay=3,unknowns=UNKNOWNS)
        self._register=copy.deepcopy(result)
        return result

    def change_evidence_version(self,new_version):
        if type(new_version) is not int or new_version not in (1,2) or new_version<self.version:
            return self._hold('INVALID_VERSION_TRANSITION')
        if new_version==self.version: return self._out('NO_CHANGE')
        if not self._load(): return self._hold('INVALID_FIXTURE')
        self.version=new_version; self._clear()
        return self._out('VERSION_CHANGED')

    def advance_teaching_day(self,new_day):
        if type(new_day) is not int or not self.day<=new_day<=5: return self._hold('INVALID_DAY_TRANSITION')
        if new_day==self.day: return self._out('NO_CHANGE')
        if not self._load(): return self._hold('INVALID_FIXTURE')
        self.day=new_day; self._clear()
        return self._out('DAY_ADVANCED',expiryDay=3)

    def stop_work(self,reason):
        if type(reason) is not str or not reason.strip() or len(reason)>300 or any(ord(ch)<32 for ch in reason):
            return self._hold('INVALID_STOP_REASON')
        self.active=False; self.stop_reason=reason; self._clear()
        return self._out('WORK_STOPPED',reason=reason)

    def resume_work(self,expected_version,expected_day):
        reason=self._context(expected_version,expected_day,active=False)
        if reason: return self._hold(reason)
        if not self._load(): return self._hold('INVALID_FIXTURE')
        self.active=True; self.stop_reason=''; self._clear()
        return self._out('WORK_RESUMED',freshChecksRequired=True)

    def export_dossier(self,expected_version,expected_day):
        reason=self._context(expected_version,expected_day)
        if reason: return self._hold(reason)
        if not self._register: return self._hold('HOLD_NO_CURRENT_REGISTER')
        data=self._load()
        if not data: return self._hold('INVALID_FIXTURE')
        return self._out('TEACHING_DOSSIER',project=data['project'],purpose=data['purpose'],
                         evidenceInventory=data['cards'],register=self._register,unknowns=UNKNOWNS)

def demo():
    lab=Lark()
    inventory=lab.list_evidence_inventory()
    sample=lab.inspect_sample(1,1)
    comparison=lab.calculate_bounded_comparison(1,1)
    decisions=[lab.assess_claim(cid,1,1) for cid in CLAIM_IDS]
    register=lab.build_claim_register(1,1)
    return dict(inventory=inventory,sample=sample,comparison=comparison,decisions=decisions,
                register=register,dossier=lab.export_dossier(1,1))

if __name__=='__main__': print(json.dumps(demo(),indent=2))

python · 247 lines
"""Lark author verification; not independent approval or real research."""
import json
import os
from pathlib import Path
import shutil
import subprocess
import sys
import tempfile
import unittest
from unittest.mock import patch
import lark_lab as lab

class LarkTests(unittest.TestCase):
    def setUp(self): self.l=lab.Lark()

    def ready(self):
        v,d=self.l.version,self.l.day
        self.l.inspect_sample(v,d); self.l.calculate_bounded_comparison(v,d)
        for cid in lab.CLAIM_IDS: self.l.assess_claim(cid,v,d)
        return self.l.build_claim_register(v,d)

    def hold(self,result):
        self.assertTrue(result['status'].startswith('HOLD'))
        self.assertEqual(result['realCampaignStatus'],'HOLD')
        for flag in lab.FLAGS: self.assertIs(result[flag],False)

    def test_six_distinct_kinds_and_no_actual_report(self):
        cards=self.l.list_evidence_inventory()
        self.assertEqual(len(cards),6); self.assertEqual(len({c['kind'] for c in cards}),6)
        self.assertEqual(cards[4]['kind'],'hypothetical_rights_restriction')
        self.assertNotIn('rows',cards[4]); self.assertIn('No actual report',cards[4]['description'])

    def test_fictional_sample_exact_denominator(self):
        r=self.l.inspect_sample(1,1)
        self.assertEqual((r['numerator'],r['denominator'],r['percent']),(12,20,60))
        self.assertEqual(r['actualHumanResponses'],0)
        self.assertIsNone(r['populationEstimate']); self.assertIsNone(r['marginOfError'])

    def test_comparison_not_rate_or_archive(self):
        r=self.l.calculate_bounded_comparison(1,1)
        self.assertEqual((r['Aseconds'],r['Bseconds'],r['numerator'],r['denominator'],r['percentLessTime']),(40,50,10,50,20))
        self.assertEqual(r['sourceIds'],['L-S03']); self.assertEqual(r['excludedArchivedSource'],'L-S04')

    def test_five_exact_unsupported_decisions_without_fabrication(self):
        statuses=['HOLD_POPULATION_INFERENCE','HOLD_FABRICATED_EVIDENCE','HOLD_UNSUPPORTED_SUPERLATIVE','HOLD_FABRICATED_ENDORSEMENT','HOLD_RIGHTS_AND_PURPOSE_UNKNOWN']
        for cid,status in zip(lab.CLAIM_IDS,statuses):
            r=self.l.assess_claim(cid,1,1); self.assertEqual(r['status'],status)
            self.assertIsNone(r['revisedWording']);self.hold(r)

    def test_all_seven_current_assessments_preserved(self):
        r=self.ready()
        self.assertEqual((r['holdCount'],r['boundedStatementCount']),(5,2))
        self.assertEqual([c['claimId'] for c in r['claims']],list(lab.CLAIM_IDS))
        self.assertTrue(all('confidenceRationale' in c and 'unknowns' in c and c['expiryDay']==3 for c in r['claims']))

    def test_no_inspection_on_callers_behalf(self):
        with patch.object(self.l,'_load',side_effect=AssertionError('unexpected file read')):
            self.hold(self.l.assess_claim('L-C06',1,1));self.hold(self.l.assess_claim('L-C07',1,1))

    def test_comparison_does_not_supply_sample(self):
        self.l.calculate_bounded_comparison(1,1);self.hold(self.l.assess_claim('L-C06',1,1))

    def test_sample_does_not_supply_comparison(self):
        self.l.inspect_sample(1,1);self.hold(self.l.assess_claim('L-C07',1,1))

    def test_build_without_inspections(self): self.hold(self.l.build_claim_register(1,1))

    def test_subsets_cannot_hide_held_claims(self):
        self.l.inspect_sample(1,1);self.l.calculate_bounded_comparison(1,1)
        for cid in ('L-C06','L-C07'):self.l.assess_claim(cid,1,1)
        self.hold(self.l.build_claim_register(1,1))

    def test_unknown_claim_before_io(self):
        with patch.object(self.l,'_load',side_effect=AssertionError('unexpected file read')):
            for cid in ('L-C08','A is lawful',None,True,['L-C01']):self.hold(self.l.assess_claim(cid,1,1))

    def test_bad_context_before_io(self):
        with patch.object(self.l,'_load',side_effect=AssertionError('unexpected file read')):
            for v,d in ((True,1),(1,True),(1.0,1),(1,1.0),('1',1),(1,'1'),(2,1),(1,2),(0,1)):
                self.hold(self.l.inspect_sample(v,d));self.hold(self.l.calculate_bounded_comparison(v,d))
                self.hold(self.l.assess_claim('L-C01',v,d));self.hold(self.l.build_claim_register(v,d))
                self.hold(self.l.export_dossier(v,d))

    def test_bad_version_mutation_before_io(self):
        with patch.object(self.l,'_load',side_effect=AssertionError('unexpected read')):
            for v in (True,2.0,'2',None,3,0):self.hold(self.l.change_evidence_version(v))
        self.assertEqual(self.l.version,1)

    def test_bad_day_mutation_before_io(self):
        with patch.object(self.l,'_load',side_effect=AssertionError('unexpected read')):
            for d in (False,2.0,'2',0,6,None):self.hold(self.l.advance_teaching_day(d))
        self.assertEqual(self.l.day,1)

    def test_version_two_arithmetic_and_documentary_original(self):
        self.ready();old=self.l.export_dossier(1,1);self.l.change_evidence_version(2)
        self.hold(self.l.export_dossier(2,1));r=self.ready()
        self.assertEqual(r['comparison']['percentLessTime'],10)
        row=r['claims'][-1];self.assertIn('20%',row['originalWording']);self.assertIn('10%',row['currentWording'])
        self.assertIn('45 seconds',row['currentWording']);self.assertEqual(old['register']['comparison']['percentLessTime'],20)

    def test_version_rollback_rejected_before_io(self):
        self.l.change_evidence_version(2)
        with patch.object(self.l,'_load',side_effect=AssertionError('unexpected read')):self.hold(self.l.change_evidence_version(1))
        self.assertEqual(self.l.version,2)

    def test_day_rollback_rejected_before_io(self):
        self.l.advance_teaching_day(3)
        with patch.object(self.l,'_load',side_effect=AssertionError('unexpected read')):self.hold(self.l.advance_teaching_day(2))
        self.assertEqual(self.l.day,3)

    def test_repeated_context_no_change(self):
        self.ready();self.assertEqual(self.l.change_evidence_version(1)['status'],'NO_CHANGE')
        self.assertEqual(self.l.advance_teaching_day(1)['status'],'NO_CHANGE')
        self.assertEqual(self.l.export_dossier(1,1)['status'],'TEACHING_DOSSIER')

    def test_day_change_requires_all_fresh_work(self):
        self.ready();self.l.advance_teaching_day(2);self.hold(self.l.export_dossier(1,2))
        self.l.inspect_sample(1,2);self.hold(self.l.build_claim_register(1,2))
        self.assertEqual(self.ready()['status'],'CLAIM_REGISTER')

    def test_inclusive_day_three_is_usable(self):
        self.l.advance_teaching_day(3);r=self.ready()
        self.assertEqual(r['status'],'CLAIM_REGISTER');self.assertEqual(r['expiryDay'],3)

    def test_day_four_expiry_before_io(self):
        self.ready();self.l.advance_teaching_day(4)
        with patch.object(self.l,'_load',side_effect=AssertionError('unexpected read')):
            for fn in (self.l.inspect_sample,self.l.calculate_bounded_comparison,self.l.build_claim_register,self.l.export_dossier):
                self.assertEqual(fn(1,4)['status'],'HOLD_STALE_EVIDENCE')
            self.assertEqual(self.l.assess_claim('L-C01',1,4)['status'],'HOLD_STALE_EVIDENCE')

    def test_no_renewal_method_or_new_version_extends_expiry(self):
        self.assertFalse(hasattr(self.l,'renew_permissions'))
        self.l.advance_teaching_day(4);self.l.change_evidence_version(2)
        self.assertEqual(self.l.inspect_sample(2,4)['status'],'HOLD_STALE_EVIDENCE')

    def test_stop_blocks_checks_before_io_and_old_copy_remains(self):
        self.ready();old=self.l.export_dossier(1,1);self.l.stop_work('Evidence requires challenge')
        with patch.object(self.l,'_load',side_effect=AssertionError('unexpected read')):
            self.hold(self.l.inspect_sample(1,1));self.hold(self.l.assess_claim('L-C01',1,1));self.hold(self.l.export_dossier(1,1))
        self.assertEqual(old['status'],'TEACHING_DOSSIER')

    def test_resume_needs_fresh_checks(self):
        self.ready();self.l.stop_work('Review');self.assertEqual(self.l.resume_work(1,1)['status'],'WORK_RESUMED')
        self.hold(self.l.export_dossier(1,1));self.hold(self.l.build_claim_register(1,1));self.assertEqual(self.ready()['status'],'CLAIM_REGISTER')

    def test_expired_resume_stays_stopped(self):
        self.l.stop_work('Review');self.l.advance_teaching_day(4)
        self.assertEqual(self.l.resume_work(1,4)['status'],'HOLD_STALE_EVIDENCE');self.assertFalse(self.l.active)

    def test_invalid_resume_context_keeps_stopped(self):
        self.l.stop_work('Review')
        with patch.object(self.l,'_load',side_effect=AssertionError('unexpected read')):self.hold(self.l.resume_work(2,1))
        self.assertFalse(self.l.active)

    def test_reason_validation_before_io(self):
        with patch.object(self.l,'_load',side_effect=AssertionError('unexpected read')):
            for reason in ('','   ',True,'x'*301,'line\nbreak',None):self.hold(self.l.stop_work(reason))
        self.assertTrue(self.l.active)

    def test_prebody_typeerror_keeps_existing_register(self):
        self.ready()
        with self.assertRaises(TypeError):self.l.assess_claim('L-C01',1,1,accept=True)
        with self.assertRaises(TypeError):self.l.inspect_sample()
        self.assertEqual(self.l.export_dossier(1,1)['status'],'TEACHING_DOSSIER')

    def test_known_failed_sample_retry_invalidates(self):
        self.ready();self.hold(self.l.inspect_sample(1,2));self.hold(self.l.export_dossier(1,1))
        self.hold(self.l.assess_claim('L-C06',1,1))

    def test_known_failed_comparison_retry_invalidates(self):
        self.ready();self.hold(self.l.calculate_bounded_comparison(True,1));self.hold(self.l.export_dossier(1,1))
        self.hold(self.l.assess_claim('L-C07',1,1))

    def test_known_claim_retry_clears_assessment_and_register(self):
        self.ready();self.hold(self.l.assess_claim('L-C06',2,1));self.hold(self.l.export_dossier(1,1))
        self.hold(self.l.build_claim_register(1,1))

    def test_failed_register_and_export_retry_not_success(self):
        self.ready();self.hold(self.l.build_claim_register(1,2));self.hold(self.l.export_dossier(1,1))
        self.ready();self.hold(self.l.export_dossier(2,1));self.hold(self.l.export_dossier(1,1))

    def test_fixture_json_failures_not_swallowed(self):
        for text in ('{broken','{"project":"x","project":"y"}','NaN','[]'):
            with patch.object(Path,'read_text',return_value=text):self.hold(self.l.inspect_sample(1,1))

    def test_duplicate_ids_types_extra_fields_and_value_drift(self):
        variants=[]
        d=lab._baseline();d['cards'][1]['id']='L-S01';variants.append(d)
        d=lab._baseline();d['claims'][1]['id']='L-C01';variants.append(d)
        d=lab._baseline();d['cards'][0]['rows'][1]['rowId']='L-R01';variants.append(d)
        d=lab._baseline();d['initialVersion']=True;variants.append(d)
        d=lab._baseline();d['expiryDay']=4;variants.append(d)
        d=lab._baseline();d['cards'][0]['rows'][0]['choice']='B';variants.append(d)
        d=lab._baseline();d['cards'][2]['versions']['1']['A']=30;variants.append(d)
        d=lab._baseline();d['cards'][2]['versions']['1']['B']=50.0;variants.append(d)
        d=lab._baseline();d['cards'][3]['current']=True;variants.append(d)
        d=lab._baseline();d['cards'][4]['permissions']='Licensed for all uses';variants.append(d)
        d=lab._baseline();d['cards'][1]['kind']='observed_customer_research';variants.append(d)
        d=lab._baseline();d['acceptCampaign']=True;variants.append(d)
        for d in variants:
            with patch.object(Path,'read_text',return_value=json.dumps(d)):self.hold(self.l.calculate_bounded_comparison(1,1))

    def test_failed_dependency_read_clears_export(self):
        self.ready()
        with patch.object(Path,'read_text',side_effect=OSError('fixture unavailable')):self.hold(self.l.export_dossier(1,1))
        self.hold(self.l.export_dossier(1,1))

    def test_mutating_card_copy_cannot_promote_evidence(self):
        cards=self.l.list_evidence_inventory();cards[1]['kind']='observed_customer_research';cards[4]['permissions']='All uses'
        fresh=self.l.list_evidence_inventory();self.assertEqual(fresh[1]['kind'],'authored_model_hypothesis')
        self.assertIn('Unresolved',fresh[4]['permissions'])

    def test_mutating_inspection_copy_cannot_change_counts(self):
        s=self.l.inspect_sample(1,1);s['denominator']=12
        self.l.calculate_bounded_comparison(1,1)
        for cid in lab.CLAIM_IDS:self.l.assess_claim(cid,1,1)
        self.assertEqual(self.l.build_claim_register(1,1)['sample']['denominator'],20)

    def test_mutating_assessment_register_and_export_copies(self):
        self.ready();a=self.l.assess_claim('L-C05',1,1);a['rightsCleared']=True;a['sourceIds'].clear()
        r=self.l.build_claim_register(1,1);r['claims'].pop();r['sample']['percent']=100
        b=self.l.export_dossier(1,1);b['campaignReleaseAuthorised']=True;b['register']['claims'][0]['decision']='APPROVED'
        fresh=self.l.export_dossier(1,1);self.assertFalse(fresh['campaignReleaseAuthorised'])
        self.assertEqual(len(fresh['register']['claims']),7);self.assertEqual(fresh['register']['sample']['percent'],60)
        self.assertEqual(fresh['register']['claims'][0]['decision'],'HOLD_POPULATION_INFERENCE')

    def test_fixture_read_failure_does_not_change_version_or_day(self):
        with patch.object(Path,'read_text',side_effect=OSError('absent')):
            self.hold(self.l.change_evidence_version(2));self.hold(self.l.advance_teaching_day(2))
        self.assertEqual((self.l.version,self.l.day),(1,1))

    def test_list_metadata_while_stopped_not_actual_read_permission(self):
        self.l.stop_work('Review');cards=self.l.list_evidence_inventory()
        self.assertEqual(len(cards),6);self.assertIn('Unresolved',cards[4]['permissions']);self.hold(self.l.inspect_sample(1,1))

    def test_real_new_process_reset_and_old_export_survival(self):
        self.ready();old=self.l.export_dossier(1,1);self.l.change_evidence_version(2);self.l.advance_teaching_day(4);self.l.stop_work('Expired')
        with tempfile.TemporaryDirectory(dir=os.environ.get('LARK_TEST_TEMP')) as temp:
            dest=Path(temp)
            for name in ('lark_lab.py','fixture.json'):shutil.copyfile(Path(__file__).with_name(name),dest/name)
            script="import json; from lark_lab import Lark; l=Lark();print(json.dumps({'version':l.version,'day':l.day,'active':l.active,'export':l.export_dossier(1,1)}))"
            run=subprocess.run([sys.executable,'-B','-X','utf8','-c',script],cwd=dest,env=os.environ.copy(),capture_output=True,text=True,check=True)
            d=json.loads(run.stdout);self.assertEqual((d['version'],d['day'],d['active']),(1,1,True));self.hold(d['export'])
        self.assertEqual(old['status'],'TEACHING_DOSSIER');self.assertEqual(old['teachingDay'],1)

if __name__=='__main__':unittest.main(verbosity=2)

Assessment options

Keep learning

The complete workbook

Eight original chapters teach question framing, permitted data, sampling, source-led synthesis, substantiation, comparisons and corrections. Worked examples and an original finite offline Lark lab retain twenty authored rows, six evidence kinds and all seven claim candidates. The campaign evidence dossier supports human challenge while actual research, permissions and release remain unresolved.

  1. 01
    Research questions and evidence classes

    Start with a decision and preserve the origin of every item before turning it into a finding.

    Read here · 1 exercise
  2. 02
    Permitted customer and market data

    Separate availability, source rights, participation, personal-data decisions and provider handling before proposing use.

    Read here · 1 exercise
  3. 03
    Sampling bias and synthetic respondents

    Preserve numerator, denominator and method before deciding what a percentage can mean.

    Read here · 1 exercise
  4. 04
    Source-led synthesis

    Connect each statement to current supplied support, an explicit transformation and the limits a reviewer needs to challenge it.

    Read here · 1 exercise
  5. 05
    Claim substantiation and review

    Connect the likely meaning of a claim to support held before any proposed distribution.

    Read here · 1 exercise
  6. 06
    Comparisons, testimonials and verification

    Keep measures, authenticity and the reader's ability to verify a comparison distinct.

    Read here · 1 exercise
  7. 07
    Currentness, corrections and human challenge

    Rebuild decisions after changes while preserving history and unanswered questions.

    Read here · 1 exercise
  8. 08
    Campaign evidence dossier

    Assemble the complete source-linked decision package while real campaign release remains held.

    Read here · 1 exercise

Also inside: a 10-point checklist, a glossary of 12 terms and 12 questions and answers to test yourself. 8 hands-on exercises, each with a worked answer at the back where the workbook gives one.

The PDF is free. We ask for your name and email before downloading. Read the privacy notice at the download form. Free to download and use for personal learning, study groups and inside your own team. Please do not resell the workbooks or republish them as your own. Link people to trust-agent.ai instead.

Get your free PDF workbook

Enter your name and email, then download the complete workbook. This form also works without JavaScript.

We privately record your name, email and request IP for this download. Read our privacy notice and retention policy.

Visit Mickai on LinkedIn

Newsletter confirmation does not affect your download. Following Mickai on LinkedIn is optional; this site does not verify followers.

Test yourself

Questions and answers

Can AI wording become a market finding if it sounds plausible?

Plausibility is not evidence of customers, demand or observations. Preserve the wording as a hypothesis or challenge item and identify the actual research needed. L-S02 is authored hypothetical wording, not an executed model result.

Does correct 12/20 arithmetic support a UK-buyer claim?

It supports 60% of the supplied authored row choices. It provides no actual respondents, recruitment frame or national population estimate. Retain numerator, denominator and source class.

Is a fictional sponsor assertion useful?

Yes, as a labelled assertion to challenge and convert into a question. It cannot stand in for a finding, endorsement, licence or consent record.

Does purchasing a report permit every AI use?

No unrestricted permission follows from payment alone. Review the proposed reading, copying, quotation, processing and training actions against actual rights and terms. L-S05 contains only hypothetical metadata, not a report or licence.

Does research participation permit later promotional contact?

Do not infer that. Participation, quotation, marketing contact and provider training are distinct uses. Actual activity, channel, personal-data and rights decisions require applicable review; this course selects none.

Does removing names establish anonymity?

No. Other details and combinations can still identify someone in a receiving context. Lark contains no actual people; it demonstrates planning questions rather than validating de-identification.

Can a larger synthetic sample establish demand?

More fictional records do not supply human observations or correct an absent sampling frame. Synthetic scenarios can help rehearse questions, but must remain separate from actual respondent counts.

Why is no conventional margin of error reported here?

The twenty rows are authored, with no actual sampling or validated modelling basis. Real nonprobability precision methods require defined assumptions and validation; this course neither supplies those nor prohibits every such method.

Can an archived benchmark support the current comparison?

L-S04 retains historical 30/50 values. Current version 1 uses L-S03 at 40/50, giving 20% less time relative to B; version 2 uses 45/50,giving 10%. Preserve the archived role rather than choosing its more attractive number.

Does a faithful synthesis clear a campaign?

No. A source-linked teaching note can preserve arithmetic and limitations while actual research, rights, privacy, jurisdiction and release decisions remain unresolved. All Lark real approval flags remain false and the real campaign remains held.

Does the worksheet percentage measure customer demand?

No.60% describes 12 of 20 authored rows, with zero actual respondents and no validated population inference.

Can accurate information still mislead?

Its presentation can imply a different population, event or comparison. Selected CMA guidance discusses that risk; actual context and qualified review remain open.

Write as you go

My notes

Use this scratchpad for your own notes, working or answers as you read. Notes are saved in this browser on this device. Downloading makes a local copy; it does not send your notes to Mickai.

Learn → Practise → Demonstrate

Ready to put it into practice?

Take the scored exam when you feel ready. You do not need to download the workbook first. A score strictly above 80% earns a named, dated Mickai certificate with a verification page.

Take the official exam

Your name and email are collected at exam start. Certificates record an assessment result, not an accredited qualification or verified identity.

Learn the language

Key terms

Receiving decision
The choice a research question is intended to inform; it must not predetermine the desired finding.
Evidence class
A description of origin and meaning, such as observed research, authored synthetic records, hypothesis or assertion.
Synthetic respondent
An invented or generated record, not a participating human or a validated representative of a population.
Sampling frame
The actual set from which people could be recruited for a study, distinct from the intended population.
Population inference
A conclusion about a wider group that requires appropriate design and evidence beyond a fictional table.
Claim substantiation
Support appropriate to a claim and its likely meaning; a fluent summary or correct arithmetic alone can be inadequate.

6 of the workbook's 12 terms. The complete glossary is in the workbook.

Follow the evidence

Sources and checks

Facts last checked: .

These workbooks use AI assistance. See how the workbooks are made.

  1. CAP Code section 3: Misleading advertisingCommittee of Advertising Practice / ASA
  2. SubstantiationCAP Executive
  3. Comparisons: VerifiabilityCAP Executive
  4. Unfair commercial practices (CMA207)Competition and Markets Authority
  5. A guide to the data protection principlesInformation Commissioner's Office
  6. Guidance on AI and data protection: security and data minimisationInformation Commissioner's Office
  7. Direct marketing guidance and Plan direct marketingInformation Commissioner's Office
  8. Transparency InitiativeAmerican Association for Public Opinion Research
  9. FTC Policy Statement Regarding Advertising SubstantiationFederal Trade Commission
  10. Exceptions to copyright; Report on Copyright and Artificial IntelligenceIntellectual Property Office / DSIT / DCMS

Created by Mickarle Sean Junior Wagstaff-Irons - Micky Irons with the Mickai team. Published by Mickai LTD. Last updated 1 October 2026.

NextKeep going

Where to go next