Chirak

Store review triage (BG) v2

completed

Sort customer reviews of a Bulgarian online store by what the shop should do with them: thank the customer, fix a problem, look at both, or consider an idea. Public, read-only report built from the stored results.

Baseline macro-f1
94.0%
Final macro-f1
95.8%
Change
+1.8 pts

Baseline vs iterations

ModelAccuracyMacro-F1 JSON validityExact match
Baseline (base model) 94.0% 94.0% 100.0% 94.0%
Iteration 1 served 95.8% 95.8% 100.0% 95.8%

Target: macro-f1 at least 95%. Stopped: target met (0.958 >= 0.950).

Own tickets

533 of the shop's own tickets, masked and frozen as a separate slice. They came with labels made by people: the dataset authors Georgieva-Trifonova, Stefanova and Kalchev (Harvard Dataverse, doi:10.7910/DVN/TXIK9P, CC BY 4.0): the 182 test reviews of the MTEB release plus the 351 reviews of the check half of its train split. Neither the judge nor Chirak changed them. The tickets themselves are private to the run owner.

40% of the uploaded tickets were set aside for training by the split given in the upload: 348 went into a training file, 533 were kept for evaluation. 1 training tickets were left out because they repeated an evaluation ticket or shared a word 8-gram with one. The two parts never overlap.

A follow-up run trained on the training part: Store review triage (BG) v2 + own tickets.

ModelAccuracyMacro-F1 category
Base model 73.2% 60.8% 73.2%
Served adapter (iteration 1) 83.3% 70.0% 83.3%

Accuracy is on the primary field; the field columns are the accuracy of each field on its own.

Per-class results, baseline vs iteration 1

ClassSupport Base PBase RBase F1 PRF1F1 vs base
compliment 54 100% 94% 97% 100% 100% 100% +2.9 pts
complaint 54 95% 96% 95% 98% 94% 96% +0.8 pts
mixed 54 96% 87% 91% 94% 91% 92% +1.2 pts
suggestion 53 87% 98% 92% 91% 98% 95% +2.5 pts

Confusion matrix (Iteration 1, rows = expected, columns = predicted)

compliment complaint mixed suggestion __invalid_...
compliment 54 0 0 0 0
complaint 0 51 3 0 0
mixed 0 0 49 5 0
suggestion 0 1 0 52 0
__invalid__ 0 0 0 0 0

Leakage guard and frozen eval set

Eval items
215 (200 synthetic + 15 seed)
Frozen at
2026-10-15 10:06:57 UTC
Blind label check
10 of 273 eval candidates dropped because the generator, labelling the text blind with the student's prompt, disagreed with the target label. The kept items are the unambiguous ones, so this eval is cleaner and easier than an unfiltered one.
Eval SHA-256
4c96e45bb37fe2f4f948fd8cc1e8d6533ea147dbbf513b1e32ac575671696a21
Train setCandidatesDropped as near-copies of evalDrop rateDropped by label check
Iteration 1 1363 8 0.6% 68

Decisions log

After iteration 1 Stop rules: stop, target met (0.958 >= 0.950)

The model was not consulted: the stop rules ended the loop.

Training loss