The Logic portal (https://logic.ziplineos.com.au) — under /quoting/collections and /quoting/policy-data — lets you teach ZiplineOS what a lender's policy looks like so the platform can match applicants against it.
If the menu items aren't visible, ask an admin to enable Logic → Quoting Collections in Kernel → Feature Grants.
What is a Collection?
A Collection is one folder per lender. It holds: the Provider record, Offerings, Tiers, Policy Sheets, Rule Blocks, Calculation Engines, Applicant Fixtures, and a pinned PolicyData document. Build it in Draft, then Publish — once published it's frozen. To change anything, Archive it and start a new Draft, giving you a clean audit trail.
What is PolicyData?
PolicyData is the lender's policy guide as structured data. Four entry types: Thresholds (single numbers), Matrices (tables), Lists (named string lists), and Dictionaries (name→value lookups). It shares the same Draft → Published → Archived lifecycle, and Publish requires one to be attached to the Collection.
Why do I get a Publish error about an "unresolved key"?
The bundle-key lint checks that every key referenced in your Rule Blocks exists in the output of a Calculation Engine in your pipeline. A typo (serviceability.surpus vs serviceability.surplus) stops Publish with a pointed error. Fix the typo in the engine output or the Rule Block, or add the missing enrichment step to the pipeline.
Why do I see an "Applies when" option on a rule?
It's an optional gate: "only consider this rule if this condition is true." A skipped block contributes nothing to the verdict. If the gate can't be parsed, the block is treated as applicable — the platform prefers over-evaluating to silently dropping a Fail rule.
What's the enrichment pipeline?
The chain of Calculation Engines that runs before Rule Blocks see the applicant. The Plenti pilot wires two stages: Serviceability (income shading, expenses, tier) then Pricing (rate lookup, max loan). Order matters — Pricing reads from Serviceability. The enriched result is what Rule Blocks read.
How do I try it without setting it all up by hand?
Use the one-shot seeder:
POST /api/v1/admin/quoting/seed-plenti
It creates a complete working Collection — Provider, Offerings, PolicyData, pipeline, and 8 Rule Blocks. Re-running is safe; it returns the same entity IDs.
What's "snapshot on publish"?
When a Policy Sheet publishes, the platform freezes the full sheet — including inlined Rule Block bodies — into an immutable snapshot. The matching service evaluates against the snapshot, so later edits to Rule Blocks don't affect past decisions. See Changelog for the Phase 0 → Phase 2D rollout notes.
