Back to case studies

Flagship Case Study

Archangel – Convertis

Convertis turns property inputs into structured real estate intelligence: validated intake, location enrichment, deterministic scoring, AI-supported interpretation, and live reviewable outputs.

CRE IntelligenceExplainable ScoringStructured OutputsLive Workflow
Deck visual showing the Convertis pipeline from property intake to persistent data layer.

01 / Overview

Property inputs become structured intelligence.

Convertis is built around a clear decision artifact, not a chat response: score, rationale, saved record, and reviewable output.

Commercial real estate screening workflow
Explainable scorecards and saved records
Live delivery for review and iteration

02 / Architecture

A bounded workflow from intake to persistence.

The architecture separates validation, enrichment, scoring, AI interpretation, and delivery so each step can be explained and improved.

Input & Validation

Address, property type, and required fields are normalized before analysis.

Location Intelligence

Nearby amenities, transit, urban context, and geospatial signals enrich the property record.

Persistence

Records are stored for retrieval, comparison, and review instead of disappearing after generation.

03 / Production Logic

AI supports interpretation; scoring stays explainable.

The production flow keeps deterministic scoring separate from AI-generated interpretation, which improves trust and makes outputs easier to audit.

Deterministic Scoring

Weighted criteria produce a transparent score rather than an opaque model judgment.

AI Boundary

The model helps summarize and interpret structured context; it is not the hidden authority behind the score.

Reviewability

Scorecards, logs, and saved outputs support human inspection and operational reuse.

04 / Outputs

The output is a decision artifact.

Convertis packages analysis into formats a business user can inspect, compare, and revisit.

Commercial feasibility score with criteria breakdown
Executive summary generated from structured context
Benchmark comparables and saved property records
Reviewable scorecards for downstream decision support

05 / Engineering Signals

Key AI engineering decisions are visible.

The project demonstrates production-minded AI engineering patterns without exposing private implementation detail.

Typed Input → Structured Output

The workflow preserves data contracts from intake through scorecard delivery.

Graceful AI Use

AI improves readability while deterministic fallbacks keep the workflow resilient.

Production Discipline

Server-only secrets, validation, logging, and deployment checks are part of the system design.

Business Fit

The system focuses on clarity, confidence, and repeatable property review.

Technical Appendix

Key code patterns, shown without private implementation detail.

These excerpts show the core AI engineering ideas behind the workflow: validation, source traceability, and structured outputs.

Input Contract

Bounded property intake

The workflow starts with typed, normalized inputs so downstream scoring and AI interpretation work from a stable contract.

type PropertyScreeningInput = {
  address: string;
  propertyType: "office" | "retail" | "industrial" | "mixed_use";
  buildingSizeSf?: number;
  market?: string;
};

const inputRules = {
  required: ["address", "propertyType"],
  normalize: ["address", "market"],
  confidenceFields: ["geocodeConfidence", "sourceConfidence"],
};

Scoring Logic

Explainable weighted score

A deterministic scoring layer keeps the score reviewable. AI can explain the result, but the numeric outcome comes from visible criteria.

const weights = {
  location: 0.3,
  demand: 0.25,
  buildingQuality: 0.2,
  marketDynamics: 0.15,
  riskProfile: 0.1,
};

function calculateScore(criteria: Record<keyof typeof weights, number>) {
  return Object.entries(weights).reduce((total, [key, weight]) => {
    return total + criteria[key as keyof typeof weights] * weight;
  }, 0);
}

AI Boundary

Structured interpretation request

The AI layer receives structured context and returns a bounded response, preserving the difference between analysis data and narrative synthesis.

{
  "task": "summarize_scorecard",
  "inputs": {
    "score": 86,
    "criteria": ["location", "demand", "riskProfile"],
    "locationSignals": ["walkable", "transit_access", "high_growth"],
    "approvedSourcesOnly": true
  },
  "outputContract": {
    "summary": "string",
    "rationale": "string[]",
    "risks": "string[]",
    "confidence": "number"
  }
}

Example Structured Output

{
  "project": "Archangel – Convertis",
  "workflow": "property_screening",
  "input": {
    "property_type": "mixed_use_retail",
    "market": "South Florida",
    "address_status": "geocoded"
  },
  "signals": {
    "amenity_count": 42,
    "retail_concentration": "high",
    "transit_proximity": "medium",
    "data_confidence": 0.82
  },
  "scorecard": {
    "overall_score": 78,
    "grade": "B+",
    "criteria": [
      {
        "name": "commercial_density",
        "score": 84,
        "explanation": "Nearby-place concentration supports customer access."
      },
      {
        "name": "accessibility",
        "score": 71,
        "explanation": "Transit proximity is acceptable but not dominant."
      }
    ]
  },
  "review": {
    "analyst_review_required": true,
    "approved_sources": 5,
    "benchmark_ready": true
  }
}