The report you write first, and fill in when the window closes
A report written after a run describes the run. A report written before it and filled in afterwards marks the run. The difference is entirely in when the fields were chosen, and it is the cheapest integrity control a campaign has.
Plan sheet
- Written before
- Objective, measures, method, baseline, thresholds, verdict rules.
- Written after
- Observed figures, gate outcomes, deviations, verdict, next-run changes.
- Why
- Fields chosen before the answer is known cannot be chosen to fit the answer.
- Length
- One page. A report nobody reads is a report that changes nothing.
Draft the closing report before the run starts, with its objective, measures, method, baseline and verdict rules filled in and its result lines blank. Fill in the blanks when the window closes. That ordering is the whole technique, and it works for one reason: fields chosen before the answer is known cannot be chosen to fit the answer, which is what happens to every report written from scratch afterwards.
Why the order of writing decides the honesty
A report written after a run starts from the record and works backwards to a framing that fits it. That is not a character flaw, it is what happens when a person looks at data and then decides what to say about it. The strong hours become the story, the weak ones become context, and the objective quietly becomes whatever the run turned out to satisfy.
Writing the report first removes the degrees of freedom that make this possible. The measure is fixed. The surface is fixed. The window is fixed. The threshold that separates a pass from a miss is fixed. At the close there is nothing left to choose, only figures to enter, and the verdict follows from the comparison rather than from the writing.
The second benefit is that drafting the report exposes gaps in the plan while they are still cheap. A template with a baseline field forces someone to notice that no baseline was captured. A template with a cost-per-swap field forces someone to notice that the plan never wrote down what cost it expected. Every blank in a pre-written report is a question the plan has to answer before the run rather than after it.
The template, section by section
Eight sections. Four are filled in before the run, four at the close, and the split is not negotiable because it is the mechanism that makes the report worth anything.
| Section | Written | Contains | Fails if |
|---|---|---|---|
| Objective | Before | The one testable sentence, copied verbatim from the plan | It is paraphrased at the close into something the run satisfied |
| Measures and method | Before | Each measure, the surface it is read on, and how it will be computed | The method is left implicit and cannot be reproduced later |
| Baseline | Before | The pre-run figure with its timestamp and computation method | It is reconstructed after the run, when the period can be chosen |
| Verdict rules | Before | The threshold that separates pass from miss, stated numerically | The threshold is set at the close, at whatever the run achieved |
| Observed figures | After | The same measures, computed the same way, for the run window | A different method is used because it produces a better number |
| Gate outcomes | After | What each gate observed, when, and what action followed | Gates that were skipped are recorded as passed |
| Deviations | After | Every difference between the plan and what happened, with times | It is left empty because nothing felt significant enough |
| Verdict and next run | After | Pass or miss against the rules, and the specific change for next time | The verdict is a paragraph of context instead of a decision |
The sections you fill in before the run
The objective is copied verbatim, not summarised. A summary is a rewrite, and a rewrite at the close is the exact failure the template exists to prevent. If the objective is too long to copy, it is too long to be one objective.
The measures and method section is the one that does the most work and receives the least attention. For every measure, write the surface it is read on and the procedure for computing it: which pool, which program, which period boundaries, which transactions are counted and which are excluded. Excluding probe trades from the main-stage figures, for example, is a legitimate choice and an indefensible one if it is decided at the close.
The baseline goes in as a number with a timestamp. The verdict rules go in as thresholds: the objective's threshold, the slack the plan allowed, and what counts as a partial result if the plan admits one. Writing partial-credit rules in advance is worth the two minutes, because a run that lands between pass and miss is the most common outcome and the one most vulnerable to being narrated.
The sections you fill in at the close
Observed figures are computed exactly as the method section said, including the parts that are inconvenient. If the method said period boundaries are on the hour and the run started at seven minutes past, the first period is short and the figure reflects that. Adjusting the boundary at the close to make the comparison cleaner is the same move as rewriting the objective, in a smaller costume.
Gate outcomes are recorded as what was observed and when, including gates that were waved through. A gate that was skipped because the run looked fine is a real event and belongs in the record; writing it as passed removes the one piece of evidence that would explain a later surprise. Individual transactions remain publicly verifiable through the Solana explorer, so a gate observation can be checked afterwards by anyone who cares to.
The verdict is a single line: pass, miss, or partial against the rules written before the run. Everything explanatory goes in deviations. Keeping the verdict short is what makes a series of reports comparable, and a series is where the value compounds.
Recording the method, not just the number
A figure without its method is not a measurement, it is a claim. Two people computing turnover on the same pool over the same window can produce different numbers depending on whether they count both legs of a round trip, how they treat failed transactions, which program versions they include, and whether they use the pool's own accounting or a token-level aggregate.
None of those choices is wrong. All of them have to be stated, because the comparison to the baseline is only valid if both figures were computed the same way. The most common reporting error is not a fabricated number, it is an honest number compared against a baseline computed by a different procedure.
Where the computation depends on how a program accounts for balances and transfers, write the reference down. Token account semantics and decimals are specified in the Solana program documentation, and a method section that names its source can be reproduced by a stranger. Method discipline of this kind is a general problem rather than a campaign-specific one, and the same questions come up whenever anyone asks how volume campaigns are measured rather than merely reported.
A worked close with illustrative arithmetic
The figures below are illustrative arithmetic showing how a close is computed and marked. They describe no real pair and no real run.
Illustrative only
Objective: every hour of the 10-hour window contains at least 6 executed swaps on the named pool.
Verdict rule: pass requires 10 of 10 hours. Partial is 8 or 9 of 10. Below 8 is a miss.
Baseline: prior comparable 10 hours recorded 2 hours containing any swap.
Planned: 9 trades per hour after the probe and close reserve were deducted.
Observed: hours 1 to 8 recorded 8 to 11 swaps. Hour 9 recorded 5. Hour 10 recorded 0.
Hours meeting the threshold: 8 of 10. Verdict: partial.
Cost per executed swap, planned 0.004 SOL, observed 0.0051 SOL, a deviation of about 28 per cent.
Attribution: hour 10 was empty because cumulative spend outran the pacing table under the higher observed cost.
The verdict is partial because the rule said partial, not because eight out of ten feels like a partial. That is the entire benefit of writing the rule first. The attribution line then points at a specific parameter: cost per swap ran ahead of plan, the shortfall policy was not applied, and the final hour paid for it.
Notice what the report did not do. It did not quote the ten-hour total, which was fine. It did not compare against the two-hour baseline in a way that made the run look transformative. It answered the question the plan asked, in the terms the plan set, and produced one concrete change for next time.
Verdict rules written in advance
A verdict rule is a threshold plus a treatment of the boundary. Both parts are needed. A rule that says pass at ten of ten hours and says nothing else forces every non-perfect run into a binary that nobody will honour, which is how thresholds get quietly renegotiated.
Three treatments cover most cases. Strict: anything below the threshold is a miss, used when the objective is genuinely all-or-nothing. Banded: an explicit partial range, used when the objective is a coverage or volume target where near-misses carry information. Weighted: multiple measures each with their own threshold, and a stated rule for combining them, used when a plan genuinely has a primary and a hard constraint alongside it.
Whichever is chosen, the rule is written as arithmetic rather than as a sentiment. "Pass if eight or more of ten hours clear six swaps" is a rule. "Pass if coverage was reasonable" is a negotiation waiting to happen, and the person negotiating will be the person who ran the campaign.
Deviations: the section that earns its keep
The deviations section lists every difference between what the plan said and what happened, each with a time and a cause where one is known. It is the section operators are most tempted to leave empty and the one that carries almost all of the transferable information.
- Parameter changes made mid-run, with the time and the reason recorded at the time.
- Stages that overlapped or started early, and by how much.
- Gates evaluated late, waved through, or skipped entirely.
- Transactions that failed, in what proportion, and whether the failure pattern was clustered.
- Cost per swap running above or below plan, with the observed figure.
- Routing that went to a venue other than the one named in the plan.
- Pauses, restarts and their durations.
- External conditions on the pair that the baseline note had flagged, and whether they changed.
Most of these look trivial in isolation and none of them is trivial across a series of runs. A pattern of routing deviations across three campaigns is a plan-level finding that no single report would ever surface. The deviations section is the only place that pattern can accumulate.
Turning a report into the next plan
The final line of the report is one specific change for the next run, expressed as a parameter and a direction. Not a resolution, not a lesson, a change: reduce the probe to fifteen trades, apply the drop policy rather than catch-up, raise the coverage threshold now that the pair supports it, split the main stage across two venues.
One change per report is a deliberate constraint. Reports that end with five improvements produce a next plan whose differences cannot be attributed, and after two such runs nobody can say which change did what. Changing one parameter at a time is slow and it is the only method that accumulates knowledge rather than opinions.
The change is then carried into the next plan document as a line in the parameter block with the report reference as its reason. That closes the loop: a value in a plan can be traced to an observation in a report, and the reason for every setting is a fact rather than a preference. Whatever executes the run, whether that is a SOL volume bot or a hand-rolled script, the value it receives now has provenance.
The reporting checklist
- The template exists before the first transaction, with its result fields blank.
- The objective is copied verbatim from the plan, not summarised.
- Every measure has a named surface and a written computation method.
- The baseline is recorded with a timestamp and the same method as the closing figure.
- Verdict rules are numeric and include a treatment of the boundary.
- Closing figures were computed by the method as written, including the inconvenient parts.
- Gate outcomes record what was observed, including gates that were skipped.
- The deviations section is filled in even when nothing felt significant.
- The verdict is one line: pass, partial or miss against the rules.
- Exactly one parameter change is carried forward to the next plan.
What a report cannot establish
A report establishes what happened and whether it matched the plan. It does not establish cause. A pair that was busy during the run window may have been busy for reasons entirely unrelated to the campaign, and no closing comparison distinguishes the two. The baseline narrows the gap; it does not close it, and a report that claims causation from a before-and-after pair of numbers is claiming more than the method supports.
It also cannot establish whether the campaign was worth running. That judgement sits outside the record and depends on what the activity was for and what anyone did in response to it. The report can say the objective was met at a stated cost, which is the part that is knowable, and it should stop there rather than editorialising into territory the figures do not reach.
Finally, no report protects against a plan that measured the wrong thing. A perfectly executed report against a trivial objective produces a confident pass that means nothing. The only guard is the question asked before the run: if this comes back a miss, what would we actually do differently? A report is a tool for answering that question honestly, not a substitute for having asked it.
Questions this plan raises
How long should the closing report be?
One page. The value is in the comparison, not the prose, and a long report reliably becomes a report nobody opens before the next run, which is the only moment it could have been useful.
What if the verdict is a clear miss?
Write it as a miss and record which stage and which parameter it points at. A recorded miss is the only input that improves the next plan; a softened one removes the reason the report existed.
Can the measures change between the plan and the close?
Only with the change recorded as a deviation, with a timestamp and a reason. A measure changed silently at the close makes every figure in the report unverifiable.
Who should be able to read the report?
Someone who was not present. If a line only makes sense to the operator, it needs the method attached, because the report exists to be read later by people without the context.
Is a report needed for a failed run?
Especially then. A run that stopped at a gate produces the most transferable information of any run, and it is the one most likely to go unrecorded because nothing happened worth showing.
Where do the figures come from?
From the record, computed the way the method section specified. Any figure that cannot be recomputed by a second reader from public data is an impression and should be labelled as one.
Filed under Planning and written by The Campaign Desk. Parameter ranges on this page are reasoning aids, not settings to copy: the objective decides the value, and every figure inside a worked example is illustrative arithmetic chosen to show the shape of the calculation. What the desk does and does not do is set out on the about page.