Re-version and reconciliation of the Systematic ruleset: weekly Fri→Mon cadence ruling, 96% net target, three-factor composite confirmed, shorts prohibited, empirically-verified window behavior (staged vs 422), journal/ruleVersion requirements, and stated remedies for the KO duplicate-order and MSFT drift breaches. Citation string: systematic-rules-v2.0.
Status: Ruleset of record, effective 2026-08-11 · supersedes Rules v1.0
Citation string:systematic-rules-v2.0 (required in journal.context.ruleVersion on every order)
Author: Tanmay Singh (ADMIN; analyst, DBC Systematic) · Approved: owner ruling, 2026-08-11
Scope: This is a re-version and reconciliation, not a rewrite. Rules v1.0 remains the ruleset the current 21-position book was deployed against; v2.0 resolves the four documented contradictions, codifies observed platform behavior, and states remedies for the two live breaches. Signal construction is unchanged.
1. Reconciliation rulings
Four sources specified the fund four different ways. The following rulings were made by the fund owner on 2026-08-11 and are now binding.
1.1 Rebalance cadence — WEEKLY governs
Source
Said
Disposition
fund.description
weekly
Correct — retained
ips.rebalancingPolicy / ips.timeHorizon
monthly
Erroneous — flagged for seed correction
constraints.rebalanceWindow
Monday 09:30–16:00 ET
Correct — retained (execution window)
Rules v1.0
weekly; Friday signal → Monday execution
Correct — retained
Ruling: Signals are computed after Friday close; orders execute in the Monday 09:30–16:00 ET window. All 22 live orders (source: "scheduled") are consistent with this. The IPS prose ("monthly rebalance") is a seed error and needs a fund-seeds.json correction — it cannot be fixed through the MCP connector (update_fund exposes no ipsJson parameter).
1.2 Net exposure target — 96%
Version history
“Added the simulated button as its AI generated.”
ips.assetAllocation targets 96% US Equity / 4% cash; Rules v1.0 said "~95%". Ruling: 96% target, band 60–100% (per constraints.netExposurePct). The ~95% in v1.0 was an approximation of the same intent, not a different policy.
1.3 Factor count — THREE factors deployed; low-vol is v2.x candidate
The live composite is 12-1 momentum 40% / quality 40% / value 20% (description, Rules v1.0, and the deployed book agree). ips.purpose names a fourth factor (low-vol) that was never implemented. Ruling: v2.0 documents the three-factor composite as the ruleset of record. Adding low-vol is a research item requiring a backtest (deliverable D6) and would ship as Rules v2.1+ with its own citation string — never as a silent change.
1.4 Short selling — PROHIBITED
constraints.shortSelling: true contradicts prohibitedActivities: ["shorts (permitted by policy but disabled in initial deployment)"]. Ruling: no short positions. The machine flag is a seed error; until it is corrected, the prohibition is enforced by this ruleset and by review, not by the engine. Flagged for fund-seeds.json.
2. Universe
US-listed common equity; market cap ≥ $2B (minMarketCapUsd); 30-day ADV ≥ $10M (minAdvUsd); no ADR-specific exclusions; ETFs permitted by mandate but unused by the model. Note: the platform currently defers market-cap and ADV gates when reference data is unavailable (IPS_LIQUIDITY: "deferred" observed on every checked order) — until reference data lands, the universe filter is applied at signal-construction time, not enforcement time.
3. Composite signal
Momentum (40%): 12-1 price momentum — trailing 12-month return excluding the most recent month.
Quality (40%): profitability and balance-sheet composite (ROE, gross margin stability, leverage) as implemented in v1.0.
Value (20%): earnings and cash-flow yield composite as implemented in v1.0.
Sub-scores winsorized at the 5th/95th percentile, z-scored cross-sectionally, combined at the stated weights. No discretionary adjustment of any sub-score.
4. Ranking and construction
Top 25 by composite score. Weights descend by rank from 5.0% to ~2.9% (see strategyTargets), each capped at 5%, renormalized to the 96% net target. Minimum 20 open positions (minPositions).
Current-state note: the book holds 21 of the 25 targets. PG, TXN, QCOM, and BAC were never deployed — the initial build-out stopped at 21 names and no record documents a reason. This satisfies the 20-name floor but is a deployment gap, not a signal decision. Remedy: deploy the four missing names at a forthcoming Monday window subject to all caps, or record a signed exclusion note per name. Until one of those happens, v2.0 marks the book as intentionally 21 names pending reconciliation.
5. Rebalance mechanics
Cadence: weekly. Friday-close signal; Monday 09:30–16:00 ET execution.
Drift band: ±1% absolute around target weight. Names inside the band are not traded (turnover control).
Hard cap: 5% of fund equity per name at all times, evaluated on fund equity (positionLimitBasis: equity).
Order size cap: 5% of equity per order (maxSingleOrderPctOfEquity).
5.1 Window behavior — what the system actually does (verified empirically 2026-08-11)
The constraint name ordersOutsideWindowRejected: true is only accurate for one path. Verified behavior:
An out-of-window submit withoutimmediate is STAGED (scheduled: true, status queued) for the next Monday window and re-runs the full IPS ladder at execution.
An out-of-window submit withimmediate: true is REJECTED 422 ("Order is outside the policy rebalance window"). immediate does not bypass the window; it forfeits staging.
Staged orders whose window closes before execution expire (WINDOW_EXPIRED).
Practical rule: outside the window, always submit without immediate and accept staging.
5.2 Breach remediation exception
A trade that reduces a position breaching the 5% hard cap may be submitted as soon as the breach is identified, without waiting for the weekly signal — but per §5.1 it will still execute at the next Monday window unless submitted during a window. Remediation trades are compliance actions, not signal trades: journal must say so, carry compliance-trim in tags, and cite this ruleset.
6. Exit rules
A name exits when it drops out of the top 25 at a weekly signal date. Exits execute at the same Monday window as the signal. No stop-losses on individual names — risk is managed by breadth, caps, and the −20% fund-level drawdown trigger, which mandates a model review (parameters, universe, data integrity), never a discretionary liquidation.
7. Discretionary overrides — none
Prohibited: manual weight changes, signal overrides, discretionary adds/exits, and use of ipsOverride on any Systematic order. The only permitted non-signal trades are §5.2 breach-remediation reductions. This fund never receives D4-style discretionary IC memos.
8. Journal and citation requirements
Every order carries, at submit: journal.thesis ≥ 280 chars stating rank, factor sub-scores, and target weight; journal.tags ⊇ ["thesis","risk","exit-plan"]; journal.context.ruleVersion = "systematic-rules-v2.0". Gap being cured: all 22 v1.0-era orders had compliant theses but null tags and no structured ruleVersion — v2.0 makes both mandatory. (The structured field exists and works; the 2026-08-11 remediation orders are the first to populate it.)
9. Live breach remedies (as of 2026-08-11)
Name
Breach
Cause
Remedy
Status
KO
790 sh = 6.57% vs 5% cap
Duplicate scheduled order (two 395-sh buys 0.66 s apart, both passed IPS_POSITION_LIMIT against a zero base)
SELL 395 → 395 sh ≈ 3.29% (3.30% target)
Staged for 2026-08-17 window, id cmsojhepl03kmr8t0al3030s3
MSFT
124 sh = 6.01% vs 5% cap
+29.8% drift from $389.30 basis, outside ±1% band
SELL 25 → 99 sh ≈ 4.80%
Staged for 2026-08-17 window, id cmsojhkil03kor8t0o9fs52bm
Root-cause bug (staging-layer dedup absent + IPS basis ignoring pending exposure) filed 2026-08-11 in docs/context/SYSTEM_HEALTH.md (Complaints & Bugs) and Research/bugs/2026-08-11-scheduled-order-dedup-bug.md.
10. Governance and versioning
Rule changes ship as a new version with a new citation string; no in-place edits. Semantic: v2.x for parameter/process changes, v3.0 for signal changes.
Every version records: author, approver, effective date, and the diff against the prior version (§1 here is v1.0→v2.0's diff).
Contradictions between fund-record fields and this document resolve in favor of this document until fund-seeds.json is corrected; the outstanding seed corrections are: ips.rebalancingPolicy (monthly→weekly), ips.purpose (drop low-vol until implemented), constraints.shortSelling (true→false).
Quarterly: factor-exposure and turnover report (D6 owns the first one).
Sources: fund record dbc-systematic (ipsJson, constraints, strategyTargets, description) retrieved 2026-08-11; live positions and fund equity ($1,044,469.44) retrieved 2026-08-11; order-window behavior verified by live submits 2026-08-11; Requirement List Rev 2 §0.1, D5.