REP Viewer PostgreSQL evidence · read only Sensory profiles

Repeated sensory measurement

A-EGN

Roasted 2026-09-16T15:27:37+07:00 · 125.0 g

Intensity 0–15 · perceptual strength

Export atomic observations

Cupping

3 individually identified assessments. Unknown and uncertain intensities remain unquantified.

Routine · 2026-09-17T15:00:00+07:00

Actual degas age0.9591 days82868.650978 seconds
AssessorHùng Võ Thanh
PresentationKNOWN · S821
ProtocolREP-CUP-V1 / 1.0.0
Protocol conformanceNONCONFORMING
CompletionCOMPLETEFormal gate: PASS
BowlBrim capacity mLWorking fill mLActual dose gActual g/L
B1142142856.34
B2————
B3————
Preparation conformance and recorded deviations

Formal completion alone does not establish matched conditions.

  • vessel_capacity_ml: UNKNOWN · None
  • vessel_top_diameter_mm: UNKNOWN · None
  • balance_precision_g: UNKNOWN · None
  • water_calcium_hardness_ppm: UNKNOWN · None
  • water_alkalinity_ppm: UNKNOWN · None
  • water_ph: UNKNOWN · None
  • tasting_rounds: UNKNOWN · None
  • vessel_identity: UNKNOWN · None
  • capacity_calibration: UNKNOWN · None
  • grinder_identity: UNKNOWN · None
  • grind_setting: UNKNOWN · None
  • grind_qualification_evidence: UNKNOWN · None
  • grind_qualification: UNKNOWN · UNKNOWN
  • water_chlorine: UNKNOWN · UNKNOWN
  • vessel_material: UNKNOWN · UNKNOWN
  • dry_fragrance_before_pour: UNKNOWN · None
  • wet_aroma_intact_crust: UNKNOWN · None
  • aroma_during_break: UNKNOWN · None
  • approximately_three_stirs: UNKNOWN · None
  • skimmed_after_break: UNKNOWN · None
  • liquoring_start_near_70c: UNKNOWN · None
  • continued_below_body_temperature: UNKNOWN · None
  • B1.capacity_ml: FAIL · 142
  • B1.vessel_identity: UNKNOWN · Coffee Cupping
  • B1.capacity_calibration: UNKNOWN · None
  • B2.capacity_ml: UNKNOWN · None
  • B2.dose_g: UNKNOWN · None
  • B2.break_seconds: UNKNOWN · None
  • B2.vessel_identity: UNKNOWN · None
  • B2.capacity_calibration: UNKNOWN · None
  • B2.ground_separately: UNKNOWN · Unknown
  • B3.capacity_ml: UNKNOWN · None
  • B3.dose_g: UNKNOWN · None
  • B3.break_seconds: UNKNOWN · None
  • B3.vessel_identity: UNKNOWN · None
  • B3.capacity_calibration: UNKNOWN · None
  • B3.ground_separately: UNKNOWN · Unknown
  • B2.actual_brew_ratio_g_l: UNKNOWN · None
  • B3.actual_brew_ratio_g_l: UNKNOWN · None
  • session: 1 bowl
{
  "approximately_three_stirs": null,
  "aroma_during_break": null,
  "bowls": [
    {
      "actual_dose_g": "8",
      "anomaly": null,
      "bowl_code": "B1",
      "break_elapsed_seconds": "300",
      "calibrated_capacity_ml": "142",
      "capacity_calibration": null,
      "ground_separately": true,
      "pour_observed_c": "93",
      "vessel_identity": "Coffee Cupping",
      "working_fill_volume_ml": "142"
    },
    {
      "actual_dose_g": null,
      "anomaly": null,
      "bowl_code": "B2",
      "break_elapsed_seconds": null,
      "calibrated_capacity_ml": null,
      "capacity_calibration": null,
      "ground_separately": null,
      "pour_observed_c": null,
      "vessel_identity": null,
      "working_fill_volume_ml": null
    },
    {
      "actual_dose_g": null,
      "anomaly": null,
      "bowl_code": "B3",
      "break_elapsed_seconds": null,
      "calibrated_capacity_ml": null,
      "capacity_calibration": null,
      "ground_separately": null,
      "pour_observed_c": null,
      "vessel_identity": null,
      "working_fill_volume_ml": null
    }
  ],
  "contamination_or_preparation_error": null,
  "continued_below_body_temperature": null,
  "dry_fragrance_before_pour": null,
  "liquoring_start_near_70c": null,
  "liquoring_start_observed_c": null,
  "operator_deviations": null,
  "skimmed_after_break": null,
  "tasting_rounds": null,
  "temperature_notes": null,
  "wet_aroma_intact_crust": null
}
{
  "balance_identity": null,
  "balance_precision_g": null,
  "burr_calibration_note": null,
  "capacity_calibration": null,
  "grind_qualification": "UNKNOWN",
  "grind_qualification_evidence": null,
  "grind_setting": null,
  "grinder_identity": null,
  "pour_target_c": 93.0,
  "vessel_capacity_ml": null,
  "vessel_identity": null,
  "vessel_material": "UNKNOWN",
  "vessel_note": null,
  "vessel_top_diameter_mm": null,
  "water_batch_source": null,
  "working_fill_volume_ml": null
}
{
  "alkalinity_ppm": null,
  "calcium_hardness_ppm": null,
  "chlorine": "UNKNOWN",
  "created_at": "2026-09-13T10:57:27.904232+07:00",
  "evidence": "chemistry not measured yet",
  "ph": null,
  "profile_name": "Family-RO",
  "source": "M\u00e1y l\u1ecdc RO",
  "version": "0.01",
  "water_profile_id": "9dcdef28-77c7-4eb9-b664-3595d5a70613"
}
{
  "airtight": true,
  "aliquot_identity": null,
  "dark": true,
  "exposure": "SEALED_ALIQUOT",
  "notes": "L\u1ea7n m\u1edf \u0111\u1ea7u ti\u00ean",
  "sealed_at": "2026-09-16 11:00:00+00:00",
  "stable_room_conditions": null
}

Randomized: False · Not recorded

Assessment 072efd4e-4eee-4d72-80fd-6f7d18b48677

Tasting conditions and timestamp evidence

Roast completion: 2026-09-16T15:58:51.349022+07:00. Sample tasting: Not recorded.

Deviations: 1 bowl

{
  "coffee_dose_g": null,
  "created_at": "2026-09-12T21:11:29.45401+07:00",
  "effective_date": "2026-09-12",
  "grind_specification": "Each bowl ground separately; pin grinder, setting and 70\u201375% passing 850 \u00b5m / US Mesh #20 qualification. No per-session sieve or mandatory purge mass.",
  "preparation_timing": "Dry fragrance after grind before pour; wet aroma on intact crust and during break. Pour target 93\u00b0C (90\u201396\u00b0C). Break target 240 seconds (180\u2013300), approximately three stirs, then skim.",
  "protocol_code": "REP-CUP-V1",
  "protocol_version_id": "ea080003-0001-5000-8000-000000000001",
  "repeatability_notes": "Cup the actual experimental roast. Three bowls are preparation replicates, never three scores. Record anomalies without silent exclusion. Actual degas is authoritative. Prefer sealed aliquots soon after cooling; retain repeated-bag-opening exposure explicitly. Formal sensory completeness and preparation conformance are independent.",
  "rules": {
    "aroma_sequence": [
      "DRY_AFTER_GRIND_BEFORE_POUR",
      "WET_INTACT_CRUST",
      "DURING_BREAK"
    ],
    "balance_precision_g_max": 0.1,
    "bowl_role": "PREPARATION_REPLICATES_ONE_INTEGRATED_ASSESSMENT",
    "break_seconds_max": 300,
    "break_seconds_min": 180,
    "break_stirs_approximate": 3,
    "break_target_seconds": 240,
    "coffee_ratio_g_per_l": 55.0,
    "continue_below_body_temperature": true,
    "degas_basis": "ACTUAL_ELAPSED_FROM_ROAST_COMPLETION",
    "degas_matching_tolerance": null,
    "dose_g_per_capacity_ml": 0.055,
    "dose_tolerance_g": 0.2,
    "double_blind_claim": false,
    "experimental_roast": "ACTUAL_REP_ROAST_NO_NORMALIZATION",
    "formal_bowl_count": 3,
    "formal_comparison_presentation_default": "BLIND",
    "formal_comparison_randomization_default": true,
    "grind_each_bowl_separately": true,
    "grind_passing_percent_max": 75,
    "grind_passing_percent_min": 70,
    "grind_sieve_micrometres": 850,
    "grind_us_mesh": 20,
    "intensity_max": 15,
    "intensity_min": 0,
    "known_presentation_permitted": true,
    "liquoring_start_target_c": 70,
    "liquoring_start_tolerance_c": null,
    "mandatory_purge_mass_g": null,
    "measurement_integration": "ASSESSMENT_ACROSS_ROUNDS",
    "pour_c_max": 96,
    "pour_c_min": 90,
    "pour_observation_required": false,
    "pour_target_c": 93,
    "quality_score": false,
    "session_max_samples": 6,
    "session_sieving_required": false,
    "skim_after_break": true,
    "storage_preferences": [
      "AIRTIGHT",
      "DARK",
      "STABLE_ROOM",
      "SAME_METHOD",
      "SEALED_ALIQUOTS_SOON_AFTER_COOLING"
    ],
    "tasting_rounds_min": 3,
    "vessel_capacity_basis": "CALIBRATED_TO_BRIM",
    "vessel_capacity_ml_max": 350,
    "vessel_capacity_ml_min": 200,
    "vessel_materials": [
      "TEMPERED_GLASS",
      "CERAMIC"
    ],
    "vessel_top_diameter_mm_max": 90,
    "vessel_top_diameter_mm_min": 75,
    "vessels_identical_within_session": true,
    "water_alkalinity_ppm_max": 70,
    "water_alkalinity_ppm_min": 40,
    "water_calcium_hardness_ppm_max": 175,
    "water_calcium_hardness_ppm_min": 50,
    "water_chlorine": "NONE",
    "water_ph_max": 8,
    "water_ph_min": 6,
    "water_same_batch_preferred": true,
    "water_same_profile_in_comparison": true
  },
  "status": "ACTIVE",
  "tasting_sequence": "Begin liquoring near 70\u00b0C. At least three rounds while cooling below body temperature. Record one integrated assessment; temperature-dependent impressions remain notes.",
  "version": "1.0.0",
  "vessel": "Identical tempered glass or ceramic, 200\u2013350 mL to brim, top diameter 75\u201390 mm; actual calibrated capacity traceable.",
  "water_amount_g": null,
  "water_specification": "Documented profile: chlorine none, calcium hardness 50\u2013175 ppm and alkalinity 40\u201370 ppm as CaCO3, pH 6\u20138. Same profile in formal comparison; same batch where practicable.",
  "water_temperature_c": 93
}
{
  "drop_source_index": 1249,
  "drop_source_time_sec": 1874.3490221,
  "method": "ARTISAN_RECORDING_START_PLUS_RAW_DROP_V1",
  "recording_started_at": "2026-09-16T08:27:37+00:00",
  "roastepoch": 1789547257,
  "snapshot_sha256": "0ad9c4bb97091974d1b2cef1fdf5f3ca3d60daa3cb8a143b90c96449224ac24a",
  "source_artifact_id": "249b751c-6bcc-5c2d-b914-bb7cff155f0b",
  "source_snapshot_id": "842ee989-d49c-508d-bc5c-6fbf02db7f51",
  "source_software_version": "4.2.0",
  "status": "AVAILABLE"
}
AttributeContextStateIntensityVocabulary / specificity
AftertasteAFTERTASTEPRESENT7.5Cupping Sections > AftertasteSCA_CVA · 103-2024
FragranceDRY_FRAGRANCEPRESENT7.5Cupping Sections > FragranceSCA_CVA · 103-2024
AcidityFLAVORPRESENT4Cupping Sections > AciditySCA_CVA · 103-2024
Alcohol / FermentedFLAVORABSENT0Alcohol/FermentedWCR_LEXICON_2_0 · 2.0 (2017)
CerealFLAVORUNCERTAIN—CerealWCR_LEXICON_2_0 · 2.0 (2017)
ChemicalFLAVORABSENT0ChemicalWCR_LEXICON_2_0 · 2.0 (2017)
CocoaFLAVORUNCERTAIN—CocoaWCR_LEXICON_2_0 · 2.0 (2017)
EarthyFLAVORABSENT0EarthyWCR_LEXICON_2_0 · 2.0 (2017)
FlavorFLAVORPRESENT7.5Cupping Sections > FlavorSCA_CVA · 103-2024
FloralFLAVORUNCERTAIN—FloralWCR_LEXICON_2_0 · 2.0 (2017)
FruityFLAVORPRESENT7.5FruityWCR_LEXICON_2_0 · 2.0 (2017)
Green / VegetativeFLAVORABSENT0Green/VegetativeWCR_LEXICON_2_0 · 2.0 (2017)
NuttyFLAVORUNCERTAIN—NuttyWCR_LEXICON_2_0 · 2.0 (2017)
RoastedFLAVORUNCERTAIN—RoastedWCR_LEXICON_2_0 · 2.0 (2017)
Sour/AcidFLAVORPRESENT4Sour/AcidWCR_LEXICON_2_0 · 2.0 (2017)
SpicesFLAVORUNCERTAIN—SpicesWCR_LEXICON_2_0 · 2.0 (2017)
Stale / PaperyFLAVORABSENT0Stale/PaperyWCR_LEXICON_2_0 · 2.0 (2017)
Sweet AromaticsFLAVORPRESENT7.5Sweet > Sweet AromaticsWCR_LEXICON_2_0 · 2.0 (2017)
FullnessMOUTHFEELPRESENT6Amplitude > Body/FullnessWCR_LEXICON_2_0 · 2.0 (2017)
MouthfeelMOUTHFEELPRESENT7Cupping Sections > MouthfeelSCA_CVA · 103-2024
ThicknessMOUTHFEELPRESENT6Mouthfeel > ThicknessWCR_LEXICON_2_0 · 2.0 (2017)
LongevityPERSISTENCEPRESENT5Amplitude > LongevityWCR_LEXICON_2_0 · 2.0 (2017)
AcidityTASTEPRESENT4Cupping Sections > AciditySCA_CVA · 103-2024
BitterTASTEPRESENT4Taste Basics > BitterWCR_LEXICON_2_0 · 2.0 (2017)
SweetnessTASTEPRESENT5Cupping Sections > SweetnessSCA_CVA · 103-2024
AromaWET_AROMAPRESENT7.5Cupping Sections > AromaSCA_CVA · 103-2024

Chua nhẹ, đắng nhẹ

Routine · 2026-09-17T15:00:00+07:00

Actual degas age0.9591 days82868.650978 seconds
AssessorHùng Võ Thanh
PresentationKNOWN · S835
ProtocolREP-CUP-V1 / 1.0.0
Protocol conformanceNOT_EVALUATED
CompletionDRAFTFormal gate: FAIL
Preparation conformance and recorded deviations

Formal completion alone does not establish matched conditions.

  • vessel_capacity_ml: UNKNOWN · None
  • vessel_top_diameter_mm: UNKNOWN · None
  • balance_precision_g: UNKNOWN · None
  • water_calcium_hardness_ppm: UNKNOWN · None
  • water_alkalinity_ppm: UNKNOWN · None
  • water_ph: UNKNOWN · None
  • tasting_rounds: UNKNOWN · None
  • vessel_identity: UNKNOWN · None
  • capacity_calibration: UNKNOWN · None
  • grinder_identity: UNKNOWN · None
  • grind_setting: UNKNOWN · None
  • grind_qualification_evidence: UNKNOWN · None
  • grind_qualification: UNKNOWN · UNKNOWN
  • water_chlorine: UNKNOWN · UNKNOWN
  • vessel_material: UNKNOWN · UNKNOWN
  • dry_fragrance_before_pour: UNKNOWN · None
  • wet_aroma_intact_crust: UNKNOWN · None
  • aroma_during_break: UNKNOWN · None
  • approximately_three_stirs: UNKNOWN · None
  • skimmed_after_break: UNKNOWN · None
  • liquoring_start_near_70c: UNKNOWN · None
  • continued_below_body_temperature: UNKNOWN · None
  • bowl_count: UNKNOWN · Unknown
  • session: 1 bát/mẩu
{}
{
  "balance_identity": null,
  "balance_precision_g": null,
  "burr_calibration_note": null,
  "capacity_calibration": null,
  "grind_qualification": "UNKNOWN",
  "grind_qualification_evidence": null,
  "grind_setting": null,
  "grinder_identity": null,
  "pour_target_c": 93.0,
  "vessel_capacity_ml": null,
  "vessel_identity": null,
  "vessel_material": "UNKNOWN",
  "vessel_note": null,
  "vessel_top_diameter_mm": null,
  "water_batch_source": null,
  "working_fill_volume_ml": null
}
{
  "alkalinity_ppm": null,
  "calcium_hardness_ppm": null,
  "chlorine": "UNKNOWN",
  "created_at": "2026-09-13T10:57:27.904232+07:00",
  "evidence": "chemistry not measured yet",
  "ph": null,
  "profile_name": "Family-RO",
  "source": "M\u00e1y l\u1ecdc RO",
  "version": "0.01",
  "water_profile_id": "9dcdef28-77c7-4eb9-b664-3595d5a70613"
}
{
  "airtight": true,
  "aliquot_identity": null,
  "dark": true,
  "exposure": "SEALED_ALIQUOT",
  "notes": "M\u1edf l\u1ea7n 1",
  "sealed_at": "2026-09-16 11:00:00+00:00",
  "stable_room_conditions": null
}

Randomized: False · Not recorded

Assessment 1d904b1e-fa10-4e27-9063-4de9decba73d

Tasting conditions and timestamp evidence

Roast completion: 2026-09-16T15:58:51.349022+07:00. Sample tasting: Not recorded.

Deviations: 1 bát/mẩu

{
  "coffee_dose_g": null,
  "created_at": "2026-09-12T21:11:29.45401+07:00",
  "effective_date": "2026-09-12",
  "grind_specification": "Each bowl ground separately; pin grinder, setting and 70\u201375% passing 850 \u00b5m / US Mesh #20 qualification. No per-session sieve or mandatory purge mass.",
  "preparation_timing": "Dry fragrance after grind before pour; wet aroma on intact crust and during break. Pour target 93\u00b0C (90\u201396\u00b0C). Break target 240 seconds (180\u2013300), approximately three stirs, then skim.",
  "protocol_code": "REP-CUP-V1",
  "protocol_version_id": "ea080003-0001-5000-8000-000000000001",
  "repeatability_notes": "Cup the actual experimental roast. Three bowls are preparation replicates, never three scores. Record anomalies without silent exclusion. Actual degas is authoritative. Prefer sealed aliquots soon after cooling; retain repeated-bag-opening exposure explicitly. Formal sensory completeness and preparation conformance are independent.",
  "rules": {
    "aroma_sequence": [
      "DRY_AFTER_GRIND_BEFORE_POUR",
      "WET_INTACT_CRUST",
      "DURING_BREAK"
    ],
    "balance_precision_g_max": 0.1,
    "bowl_role": "PREPARATION_REPLICATES_ONE_INTEGRATED_ASSESSMENT",
    "break_seconds_max": 300,
    "break_seconds_min": 180,
    "break_stirs_approximate": 3,
    "break_target_seconds": 240,
    "coffee_ratio_g_per_l": 55.0,
    "continue_below_body_temperature": true,
    "degas_basis": "ACTUAL_ELAPSED_FROM_ROAST_COMPLETION",
    "degas_matching_tolerance": null,
    "dose_g_per_capacity_ml": 0.055,
    "dose_tolerance_g": 0.2,
    "double_blind_claim": false,
    "experimental_roast": "ACTUAL_REP_ROAST_NO_NORMALIZATION",
    "formal_bowl_count": 3,
    "formal_comparison_presentation_default": "BLIND",
    "formal_comparison_randomization_default": true,
    "grind_each_bowl_separately": true,
    "grind_passing_percent_max": 75,
    "grind_passing_percent_min": 70,
    "grind_sieve_micrometres": 850,
    "grind_us_mesh": 20,
    "intensity_max": 15,
    "intensity_min": 0,
    "known_presentation_permitted": true,
    "liquoring_start_target_c": 70,
    "liquoring_start_tolerance_c": null,
    "mandatory_purge_mass_g": null,
    "measurement_integration": "ASSESSMENT_ACROSS_ROUNDS",
    "pour_c_max": 96,
    "pour_c_min": 90,
    "pour_observation_required": false,
    "pour_target_c": 93,
    "quality_score": false,
    "session_max_samples": 6,
    "session_sieving_required": false,
    "skim_after_break": true,
    "storage_preferences": [
      "AIRTIGHT",
      "DARK",
      "STABLE_ROOM",
      "SAME_METHOD",
      "SEALED_ALIQUOTS_SOON_AFTER_COOLING"
    ],
    "tasting_rounds_min": 3,
    "vessel_capacity_basis": "CALIBRATED_TO_BRIM",
    "vessel_capacity_ml_max": 350,
    "vessel_capacity_ml_min": 200,
    "vessel_materials": [
      "TEMPERED_GLASS",
      "CERAMIC"
    ],
    "vessel_top_diameter_mm_max": 90,
    "vessel_top_diameter_mm_min": 75,
    "vessels_identical_within_session": true,
    "water_alkalinity_ppm_max": 70,
    "water_alkalinity_ppm_min": 40,
    "water_calcium_hardness_ppm_max": 175,
    "water_calcium_hardness_ppm_min": 50,
    "water_chlorine": "NONE",
    "water_ph_max": 8,
    "water_ph_min": 6,
    "water_same_batch_preferred": true,
    "water_same_profile_in_comparison": true
  },
  "status": "ACTIVE",
  "tasting_sequence": "Begin liquoring near 70\u00b0C. At least three rounds while cooling below body temperature. Record one integrated assessment; temperature-dependent impressions remain notes.",
  "version": "1.0.0",
  "vessel": "Identical tempered glass or ceramic, 200\u2013350 mL to brim, top diameter 75\u201390 mm; actual calibrated capacity traceable.",
  "water_amount_g": null,
  "water_specification": "Documented profile: chlorine none, calcium hardness 50\u2013175 ppm and alkalinity 40\u201370 ppm as CaCO3, pH 6\u20138. Same profile in formal comparison; same batch where practicable.",
  "water_temperature_c": 93
}
{
  "drop_source_index": 1249,
  "drop_source_time_sec": 1874.3490221,
  "method": "ARTISAN_RECORDING_START_PLUS_RAW_DROP_V1",
  "recording_started_at": "2026-09-16T08:27:37+00:00",
  "roastepoch": 1789547257,
  "snapshot_sha256": "0ad9c4bb97091974d1b2cef1fdf5f3ca3d60daa3cb8a143b90c96449224ac24a",
  "source_artifact_id": "249b751c-6bcc-5c2d-b914-bb7cff155f0b",
  "source_snapshot_id": "842ee989-d49c-508d-bc5c-6fbf02db7f51",
  "source_software_version": "4.2.0",
  "status": "AVAILABLE"
}
AttributeContextStateIntensityVocabulary / specificity
AftertasteAFTERTASTENOT_ASSESSED—Cupping Sections > AftertasteSCA_CVA · 103-2024
FragranceDRY_FRAGRANCENOT_ASSESSED—Cupping Sections > FragranceSCA_CVA · 103-2024
Alcohol / FermentedFLAVORNOT_ASSESSED—Alcohol/FermentedWCR_LEXICON_2_0 · 2.0 (2017)
CerealFLAVORNOT_ASSESSED—CerealWCR_LEXICON_2_0 · 2.0 (2017)
ChemicalFLAVORNOT_ASSESSED—ChemicalWCR_LEXICON_2_0 · 2.0 (2017)
CocoaFLAVORNOT_ASSESSED—CocoaWCR_LEXICON_2_0 · 2.0 (2017)
EarthyFLAVORNOT_ASSESSED—EarthyWCR_LEXICON_2_0 · 2.0 (2017)
FlavorFLAVORNOT_ASSESSED—Cupping Sections > FlavorSCA_CVA · 103-2024
FloralFLAVORNOT_ASSESSED—FloralWCR_LEXICON_2_0 · 2.0 (2017)
FruityFLAVORNOT_ASSESSED—FruityWCR_LEXICON_2_0 · 2.0 (2017)
Green / VegetativeFLAVORNOT_ASSESSED—Green/VegetativeWCR_LEXICON_2_0 · 2.0 (2017)
NuttyFLAVORNOT_ASSESSED—NuttyWCR_LEXICON_2_0 · 2.0 (2017)
RoastedFLAVORNOT_ASSESSED—RoastedWCR_LEXICON_2_0 · 2.0 (2017)
Sour/AcidFLAVORNOT_ASSESSED—Sour/AcidWCR_LEXICON_2_0 · 2.0 (2017)
SpicesFLAVORNOT_ASSESSED—SpicesWCR_LEXICON_2_0 · 2.0 (2017)
Stale / PaperyFLAVORNOT_ASSESSED—Stale/PaperyWCR_LEXICON_2_0 · 2.0 (2017)
Sweet AromaticsFLAVORNOT_ASSESSED—Sweet > Sweet AromaticsWCR_LEXICON_2_0 · 2.0 (2017)
FullnessMOUTHFEELNOT_ASSESSED—Amplitude > Body/FullnessWCR_LEXICON_2_0 · 2.0 (2017)
MouthfeelMOUTHFEELNOT_ASSESSED—Cupping Sections > MouthfeelSCA_CVA · 103-2024
ThicknessMOUTHFEELNOT_ASSESSED—Mouthfeel > ThicknessWCR_LEXICON_2_0 · 2.0 (2017)
LongevityPERSISTENCENOT_ASSESSED—Amplitude > LongevityWCR_LEXICON_2_0 · 2.0 (2017)
AcidityTASTENOT_ASSESSED—Cupping Sections > AciditySCA_CVA · 103-2024
BitterTASTENOT_ASSESSED—Taste Basics > BitterWCR_LEXICON_2_0 · 2.0 (2017)
SweetnessTASTENOT_ASSESSED—Cupping Sections > SweetnessSCA_CVA · 103-2024
AromaWET_AROMANOT_ASSESSED—Cupping Sections > AromaSCA_CVA · 103-2024

Routine · 2026-09-17T15:00:00+07:00

Actual degas age0.9591 days82868.650978 seconds
AssessorHùng Võ Thanh
PresentationKNOWN · S835
ProtocolREP-CUP-V1 / 1.0.0
Protocol conformanceNOT_EVALUATED
CompletionDRAFTFormal gate: FAIL
Preparation conformance and recorded deviations

Formal completion alone does not establish matched conditions.

  • vessel_capacity_ml: UNKNOWN · None
  • vessel_top_diameter_mm: UNKNOWN · None
  • balance_precision_g: UNKNOWN · None
  • water_calcium_hardness_ppm: UNKNOWN · None
  • water_alkalinity_ppm: UNKNOWN · None
  • water_ph: UNKNOWN · None
  • tasting_rounds: UNKNOWN · None
  • vessel_identity: UNKNOWN · None
  • capacity_calibration: UNKNOWN · None
  • grinder_identity: UNKNOWN · None
  • grind_setting: UNKNOWN · None
  • grind_qualification_evidence: UNKNOWN · None
  • grind_qualification: UNKNOWN · UNKNOWN
  • water_chlorine: UNKNOWN · UNKNOWN
  • vessel_material: UNKNOWN · UNKNOWN
  • dry_fragrance_before_pour: UNKNOWN · None
  • wet_aroma_intact_crust: UNKNOWN · None
  • aroma_during_break: UNKNOWN · None
  • approximately_three_stirs: UNKNOWN · None
  • skimmed_after_break: UNKNOWN · None
  • liquoring_start_near_70c: UNKNOWN · None
  • continued_below_body_temperature: UNKNOWN · None
  • bowl_count: UNKNOWN · Unknown
  • session: 1 bát/mẩu
{}
{
  "balance_identity": null,
  "balance_precision_g": null,
  "burr_calibration_note": null,
  "capacity_calibration": null,
  "grind_qualification": "UNKNOWN",
  "grind_qualification_evidence": null,
  "grind_setting": null,
  "grinder_identity": null,
  "pour_target_c": 93.0,
  "vessel_capacity_ml": null,
  "vessel_identity": null,
  "vessel_material": "UNKNOWN",
  "vessel_note": null,
  "vessel_top_diameter_mm": null,
  "water_batch_source": null,
  "working_fill_volume_ml": null
}
{
  "alkalinity_ppm": null,
  "calcium_hardness_ppm": null,
  "chlorine": "UNKNOWN",
  "created_at": "2026-09-13T10:57:27.904232+07:00",
  "evidence": "chemistry not measured yet",
  "ph": null,
  "profile_name": "Family-RO",
  "source": "M\u00e1y l\u1ecdc RO",
  "version": "0.01",
  "water_profile_id": "9dcdef28-77c7-4eb9-b664-3595d5a70613"
}
{
  "airtight": true,
  "aliquot_identity": null,
  "dark": true,
  "exposure": "SEALED_ALIQUOT",
  "notes": "M\u1edf l\u1ea7n 1",
  "sealed_at": "2026-09-16 11:00:00+00:00",
  "stable_room_conditions": null
}

Randomized: False · Not recorded

Assessment a17f7fa7-9482-404c-8be5-8b6b5d26cdcf

Tasting conditions and timestamp evidence

Roast completion: 2026-09-16T15:58:51.349022+07:00. Sample tasting: Not recorded.

Deviations: 1 bát/mẩu

{
  "coffee_dose_g": null,
  "created_at": "2026-09-12T21:11:29.45401+07:00",
  "effective_date": "2026-09-12",
  "grind_specification": "Each bowl ground separately; pin grinder, setting and 70\u201375% passing 850 \u00b5m / US Mesh #20 qualification. No per-session sieve or mandatory purge mass.",
  "preparation_timing": "Dry fragrance after grind before pour; wet aroma on intact crust and during break. Pour target 93\u00b0C (90\u201396\u00b0C). Break target 240 seconds (180\u2013300), approximately three stirs, then skim.",
  "protocol_code": "REP-CUP-V1",
  "protocol_version_id": "ea080003-0001-5000-8000-000000000001",
  "repeatability_notes": "Cup the actual experimental roast. Three bowls are preparation replicates, never three scores. Record anomalies without silent exclusion. Actual degas is authoritative. Prefer sealed aliquots soon after cooling; retain repeated-bag-opening exposure explicitly. Formal sensory completeness and preparation conformance are independent.",
  "rules": {
    "aroma_sequence": [
      "DRY_AFTER_GRIND_BEFORE_POUR",
      "WET_INTACT_CRUST",
      "DURING_BREAK"
    ],
    "balance_precision_g_max": 0.1,
    "bowl_role": "PREPARATION_REPLICATES_ONE_INTEGRATED_ASSESSMENT",
    "break_seconds_max": 300,
    "break_seconds_min": 180,
    "break_stirs_approximate": 3,
    "break_target_seconds": 240,
    "coffee_ratio_g_per_l": 55.0,
    "continue_below_body_temperature": true,
    "degas_basis": "ACTUAL_ELAPSED_FROM_ROAST_COMPLETION",
    "degas_matching_tolerance": null,
    "dose_g_per_capacity_ml": 0.055,
    "dose_tolerance_g": 0.2,
    "double_blind_claim": false,
    "experimental_roast": "ACTUAL_REP_ROAST_NO_NORMALIZATION",
    "formal_bowl_count": 3,
    "formal_comparison_presentation_default": "BLIND",
    "formal_comparison_randomization_default": true,
    "grind_each_bowl_separately": true,
    "grind_passing_percent_max": 75,
    "grind_passing_percent_min": 70,
    "grind_sieve_micrometres": 850,
    "grind_us_mesh": 20,
    "intensity_max": 15,
    "intensity_min": 0,
    "known_presentation_permitted": true,
    "liquoring_start_target_c": 70,
    "liquoring_start_tolerance_c": null,
    "mandatory_purge_mass_g": null,
    "measurement_integration": "ASSESSMENT_ACROSS_ROUNDS",
    "pour_c_max": 96,
    "pour_c_min": 90,
    "pour_observation_required": false,
    "pour_target_c": 93,
    "quality_score": false,
    "session_max_samples": 6,
    "session_sieving_required": false,
    "skim_after_break": true,
    "storage_preferences": [
      "AIRTIGHT",
      "DARK",
      "STABLE_ROOM",
      "SAME_METHOD",
      "SEALED_ALIQUOTS_SOON_AFTER_COOLING"
    ],
    "tasting_rounds_min": 3,
    "vessel_capacity_basis": "CALIBRATED_TO_BRIM",
    "vessel_capacity_ml_max": 350,
    "vessel_capacity_ml_min": 200,
    "vessel_materials": [
      "TEMPERED_GLASS",
      "CERAMIC"
    ],
    "vessel_top_diameter_mm_max": 90,
    "vessel_top_diameter_mm_min": 75,
    "vessels_identical_within_session": true,
    "water_alkalinity_ppm_max": 70,
    "water_alkalinity_ppm_min": 40,
    "water_calcium_hardness_ppm_max": 175,
    "water_calcium_hardness_ppm_min": 50,
    "water_chlorine": "NONE",
    "water_ph_max": 8,
    "water_ph_min": 6,
    "water_same_batch_preferred": true,
    "water_same_profile_in_comparison": true
  },
  "status": "ACTIVE",
  "tasting_sequence": "Begin liquoring near 70\u00b0C. At least three rounds while cooling below body temperature. Record one integrated assessment; temperature-dependent impressions remain notes.",
  "version": "1.0.0",
  "vessel": "Identical tempered glass or ceramic, 200\u2013350 mL to brim, top diameter 75\u201390 mm; actual calibrated capacity traceable.",
  "water_amount_g": null,
  "water_specification": "Documented profile: chlorine none, calcium hardness 50\u2013175 ppm and alkalinity 40\u201370 ppm as CaCO3, pH 6\u20138. Same profile in formal comparison; same batch where practicable.",
  "water_temperature_c": 93
}
{
  "drop_source_index": 1249,
  "drop_source_time_sec": 1874.3490221,
  "method": "ARTISAN_RECORDING_START_PLUS_RAW_DROP_V1",
  "recording_started_at": "2026-09-16T08:27:37+00:00",
  "roastepoch": 1789547257,
  "snapshot_sha256": "0ad9c4bb97091974d1b2cef1fdf5f3ca3d60daa3cb8a143b90c96449224ac24a",
  "source_artifact_id": "249b751c-6bcc-5c2d-b914-bb7cff155f0b",
  "source_snapshot_id": "842ee989-d49c-508d-bc5c-6fbf02db7f51",
  "source_software_version": "4.2.0",
  "status": "AVAILABLE"
}
AttributeContextStateIntensityVocabulary / specificity
AftertasteAFTERTASTENOT_ASSESSED—Cupping Sections > AftertasteSCA_CVA · 103-2024
FragranceDRY_FRAGRANCENOT_ASSESSED—Cupping Sections > FragranceSCA_CVA · 103-2024
Alcohol / FermentedFLAVORNOT_ASSESSED—Alcohol/FermentedWCR_LEXICON_2_0 · 2.0 (2017)
CerealFLAVORNOT_ASSESSED—CerealWCR_LEXICON_2_0 · 2.0 (2017)
ChemicalFLAVORNOT_ASSESSED—ChemicalWCR_LEXICON_2_0 · 2.0 (2017)
CocoaFLAVORNOT_ASSESSED—CocoaWCR_LEXICON_2_0 · 2.0 (2017)
EarthyFLAVORNOT_ASSESSED—EarthyWCR_LEXICON_2_0 · 2.0 (2017)
FlavorFLAVORNOT_ASSESSED—Cupping Sections > FlavorSCA_CVA · 103-2024
FloralFLAVORNOT_ASSESSED—FloralWCR_LEXICON_2_0 · 2.0 (2017)
FruityFLAVORNOT_ASSESSED—FruityWCR_LEXICON_2_0 · 2.0 (2017)
Green / VegetativeFLAVORNOT_ASSESSED—Green/VegetativeWCR_LEXICON_2_0 · 2.0 (2017)
NuttyFLAVORNOT_ASSESSED—NuttyWCR_LEXICON_2_0 · 2.0 (2017)
RoastedFLAVORNOT_ASSESSED—RoastedWCR_LEXICON_2_0 · 2.0 (2017)
Sour/AcidFLAVORNOT_ASSESSED—Sour/AcidWCR_LEXICON_2_0 · 2.0 (2017)
SpicesFLAVORNOT_ASSESSED—SpicesWCR_LEXICON_2_0 · 2.0 (2017)
Stale / PaperyFLAVORNOT_ASSESSED—Stale/PaperyWCR_LEXICON_2_0 · 2.0 (2017)
Sweet AromaticsFLAVORNOT_ASSESSED—Sweet > Sweet AromaticsWCR_LEXICON_2_0 · 2.0 (2017)
FullnessMOUTHFEELNOT_ASSESSED—Amplitude > Body/FullnessWCR_LEXICON_2_0 · 2.0 (2017)
MouthfeelMOUTHFEELNOT_ASSESSED—Cupping Sections > MouthfeelSCA_CVA · 103-2024
ThicknessMOUTHFEELNOT_ASSESSED—Mouthfeel > ThicknessWCR_LEXICON_2_0 · 2.0 (2017)
LongevityPERSISTENCENOT_ASSESSED—Amplitude > LongevityWCR_LEXICON_2_0 · 2.0 (2017)
AcidityTASTENOT_ASSESSED—Cupping Sections > AciditySCA_CVA · 103-2024
BitterTASTENOT_ASSESSED—Taste Basics > BitterWCR_LEXICON_2_0 · 2.0 (2017)
SweetnessTASTENOT_ASSESSED—Cupping Sections > SweetnessSCA_CVA · 103-2024
AromaWET_AROMANOT_ASSESSED—Cupping Sections > AromaSCA_CVA · 103-2024

Drinking Enjoyment

0 separate real-use observations. Recipe context and personal impressions remain explicit.

Roast and publication provenance
{
  "batch_weight": 125.0,
  "batch_weight_unit": "g",
  "bean": "A-EGN",
  "bean_id": "03ebde44-a86e-5a86-a47d-9a611c2a6ad2",
  "charge_treatment": null,
  "execution_context": {
    "actual_batch_mass_g": "125",
    "actual_charge_bt_c": "165",
    "actual_minus_nominal_mass_g": "-25",
    "actual_minus_planned_charge_c": null,
    "artifact_nominal_mass_g": "150",
    "charge_evidence": null,
    "charge_status": "Unknown",
    "charge_treatment": null,
    "conformance_basis": "Measured differences only; no Charge or mass tolerance is qualified",
    "conformance_status": "Not assessed"
  },
  "machine_id": "5f30394c-8134-5029-8492-efe6a34717c7",
  "roast_date_time": "2026-09-16T15:27:37+07:00",
  "strategy_code": "SC-0003",
  "strategy_control_id": "f4835dcf-1a12-4015-a3d1-06890a837fec"
}
{
  "authority_state": "PUBLISHED_CURRENT",
  "dataset_contract_version": "REP_DATASET_VERSION_V1",
  "dataset_digest": "0e96198de7e01c3fc4797ad6e44ee3e92bd759562af122da7545e622bd3811b0",
  "membership_digest": "7a522c02ded95be3d7d020e31767058103cbe9db4797c1d7aca4270538f0b2b2",
  "public_contract_version": "REP_PUBLIC_DATASET_V1",
  "public_semantic_digest": "e0c31fede629560e5a599d7bc4f24819f37ea1d403d9999fd06f25e504f0842f",
  "published_at": "2026-10-20 23:45:45.989199+07:00",
  "reader_contract_version": "REP_DATASET_READER_CONTEXT_V1",
  "scientific_lineage_digest": "6f6128b8fcf177ffecb2e329156095d23c3c076d68462b19d563a457c16a32fb"
}