MICHAELAnalytical Workstation Request a trial
Available now  /  Purchase orders accepted

A complete analytical workstation.

Spatial, temporal, behavioral, statistical, social network analysis, and AI, all over one dataset. Point it at a spreadsheet or a live feed and every view lights up at once. It answers the administrative questions too: beat and district redistricting, resource allocation built on actual demand rather than officers per thousand, and acquisition analysis you can put in front of a council. No server to stand up, and it runs with the network blocked when that is what your policy requires.

For law enforcement, public safety, defense, academia, and corporate analysis teams

01 Data

Data / GridCOLOR CUEING · LIVE FILTER
One filter, everywhereSet a date range on the grid and it narrows the globe, the charts, the statistics and the network graph. The filter follows you everywhere. And it holds at real size: a million-row, 102 MB Excel export streams in, previewed in about fifteen seconds and imported in six.
Or connect to the system itselfRead-only connections to SQL Server, MySQL and PostgreSQL, or to an API, so the records come straight out of your own system and a Refresh button pulls them again. Built for the security review: the connection is read-only and runs only when someone presses Connect or Refresh, the key is typed once and encrypted by Windows and never shown again, and a request that exceeds a limit or does not add up to the total the server stated is refused rather than truncated. A failed refresh changes nothing and says why.
Saved viewsUsing BAIR's IZE method (Tactical Crime Analysis: Research and Investigation, CRC Press), organize and save the configuration of your columns for pattern matching.
02 Spatial

A globe, not a flat map with pins on it.

Satellite imagery, world terrain, real elevation. Points render clamped to ground, and the camera frames your data for you.

  • 01Time extrusion. Every incident lifts to an altitude matching when it happened, with a thin stalk back to ground. The series becomes a shape you can read.
  • 02Kernel density. A probability surface with a search radius calculated from mean nearest neighbor distance.
  • 033D choropleth. Load beats, districts or council wards as GeoJSON or KML. Each polygon shades by count and extrudes to a prism.
  • 04Hexbin. The map summed into hexagonal cells, each extruded to a prism whose height is the count inside it. And it keeps working at sizes where drawing every point would not, so a real agency's year fits on the globe.
  • 05Proximity search. Click a spot, drag a radius, and everything inside the buffer becomes the working set for every other view.
  • 06Time scrubber. Play the case chronologically. Density layers rebuild live as time advances, and the aggregate layers follow it too.
  • 07Graduated symbols. Point size scales to any numeric column you have: loss value, severity, count. Pick the field, set the range, and the magnitude sits on the globe instead of in a column somebody has to go read.
  • 08The basemap licensing question, answered before you have to ask it. A world basemap ships inside the app, so the globe draws with no network connection at all and an outage never blanks it. For records in the United States it defaults to USGS imagery: public domain, free for commercial use, no key and no royalty. Add your own Cesium Ion token for satellite, terrain and 3D buildings, or point it at your agency's existing ArcGIS license. Nobody shares a quota with anybody else, so no agency's map goes dark because a different agency ran up the bill.
Spatial / 3DKDE + TIME EXTRUSION

Points rise with the clock. Density rebuilds underneath them.

03 Temporal

When the series actually operates.

Day by hour, across the whole week. Turn off weekends and every chart, map layer and statistic recalculates.

Temporal / Activity168 CELLS · DAY × HOUR

Nine ways to count an incident that took eight hours.

Most agency data gives you a window, not a moment. A burglary reported Monday could have happened any time across a weekend. Time Span Analysis handles that honestly instead of pretending the report time is the crime time.

  • WWeighted. Splits 1/N across every hour touched. An eight-hour burglary contributes 0.125 to each hour.
  • EEqual opportunity. Counts a full incident in every hour it touched.
  • AAoristic. Spreads each incident across every hour its window touches, weighted by the minute, over the 168 weekday hours. Records with a date and no time are left out and counted, not quietly placed at midnight.
  • MMidpoint. Reported with mean midpoint time, standard deviation, and 1σ / 2σ confidence bands.
  • +5Exact start time, duration distribution, overlap heatmap, Gantt timeline, and temporal coverage, which finds the genuinely quiet windows rather than the apparently quiet ones.
Radial clock24H POLAR

Day and month order is inferred once per column across the whole dataset, so a DD/MM export from a legacy RMS does not silently land a month off.

04 Behavioral

Where he lives. When he comes back.

Geographic profiling with buffer zone modeling, contour lines at six isoprobability thresholds, and a predicted anchor point that reports its own confidence.

  • 01Jackknife stability test. Leave-one-out across the whole series. If pulling one incident moves the anchor half a mile, you learn that before you brief it.
  • 02Anchor drift. The distance between the profile and the naive mean center, which tells you whether the profile is adding anything over an average.
  • 03Four forecasting models, scored against each other by RMSE, with the winner named. Mean interval, lag variogram, tempo regression, cyclic adjustment.
  • 04Tempo analysis. Intervals between events plotted, so acceleration is visible rather than inferred.
Geographic profileBUFFER ZONE · JACKKNIFE

The crosshair is the predicted anchor. The dashed line is its drift from the naive mean center, which tells you whether the profile beats an average.

Next event prediction4 MODELS · SCORED BY RMSE
Predictability ratingThe lag variogram rates its own rhythm on the original scale, from "Predicts Perfectly" through "Fails to Predict." A model that cannot forecast your series says so instead of guessing.
05 Narrative search

The MO is in the narrative, not the fields.

Nobody codes "kicked the door" into a dropdown. Narrative search reads the free text your structured fields never capture; keyword in context, with real proximity operators. Try it. This one is live.

Click a query to run it, or type your own.

 
More syntaxAlso accepts any valid regular expression, plus AND SEPARATED BY 0 WORDS for tighter control. Test an expression against pasted sample text before you run it, then filter the entire dataset to matches with one click.
06 Statistics

Twenty-two modes, computed right here.

Every calculation uses sample variance with Bessel's correction. Every p-value is computed in the app. No external statistics library, no server call, and no export to SPSS, SAS, Tableau or ArcGIS.

Hover any mode to see how analysts use it.

  • WDDWeighted Displacement Difference. Wheeler and Ratcliffe's test of whether a response area improved more than a control area, including displacement and diffusion of benefit into the surrounding rings. The suitability checks run first and name any test the control area fails.
  • %Percent change by area. Two equal periods per area, shaded red for an increase and blue for a decrease, with a significance measure so a small-count swing is not mistaken for a trend. An area that went from zero is labeled new, never given a percentage.
  • 8080/20 for places. Ranks locations by repeat address, by a column, or by your own boundaries, shows the cumulative share, marks the top 20%, and narrows every view to those locations with one click.
  • NRNear repeat. A Knox test across seven three-day bands, distances in feet, with a separate same-location row so repeat victimization at one address reads apart from a near repeat nearby. It will tell you plainly when there is no pattern, and it never draws a predicted location.

Descriptive

  1. Data summary
  2. Frequency table
  3. Percentiles & box plots
  4. Distribution shape
  5. Outlier detection

Relationships & tests

  1. Chi-square & crosstab
  2. Goodness of fit
  3. Correlation matrix
  4. Regression
  5. ANOVA
  6. Benford's Law
  7. Near-repeat (space × time)

Financial

  1. Pareto (80/20)
  2. Cost curve
  3. Experience curve
  4. High-low-close
  5. CUSUM control chart
  6. Break-even
  7. Waterfall
  8. Comparative period
Distribution
Regression
Pareto
CUSUM
Statistical rigorChi-square cells under 5 are flagged the way a statistics professor would want. Outliers run Z-score and IQR together, ranked by severity, and clicking a row jumps straight to the record.
07 Social network

The network hiding inside a table of incidents.

Check off suspect name, vehicle, phone number, address, gang affiliation. Records sharing a value get connected, and each field draws in its own color.

DegreeDirect connections
ReachUnique nodes within two hops
Reach efficiencySurfaces the efficient connectors, not the loud ones
BetweennessThe bridges whose removal splits the network
ClosenessWho reaches everyone fastest
EigenvectorWho is connected to the well-connected

Betweenness is the expensive one, and it runs about 19 times faster here than the textbook version, so a real case file does not lock up the screen. When a graph is big enough that the calculation gets skipped anyway, the app says so rather than reporting a silent zero.

Network / CommunitiesLABEL PROPAGATION

Community detection by label propagation. Focus mode isolates everything within one to five hops of a selected node.

08 Patrol workload

Officers per thousand residents was discredited decades ago.

That ratio cannot see call volume, service time, or anything your officers actually do with a shift. Most staffing studies still run on it. This one answers the question from your CAD export instead.

  • 01Dispatched and self-initiated work are shown apart, and never added together. Dispatched work arrives whether or not anyone is free. Patrol checks and traffic stops are what officers do with the time that is left over. Add the two and you overstate how busy the agency is while hiding the slack that proves you have room. On the first real extract we ran, patrol checks and traffic stops were 42% of all rows.
  • 02One row per responding officer. A call held by three units for forty minutes is two officer-hours, not forty minutes.
  • 03It adapts to your export, not the other way round. It reads the roles you assign to columns rather than their names, so another agency's export needs a re-designation and not a new version of the software. It uses the call source your CAD recorded; where your CAD recorded none, it guesses from the call type and you correct it in a click. Where the two disagree, the screen says so and names the types.
  • 04Service times as median and 90th percentile, never an average. The distribution is right-skewed and the long tail is what eats a shift.
  • 05Demand by hour and day of week, averaged over each weekday's own occurrences. A date range holding five Fridays and four Mondays would otherwise make Friday look 25% busier.
  • 06Rejected rows counted by reason and shown. Negative durations, zeroes, anything past a ceiling you set. A workload total that quietly drops rows is wrong in the direction nobody checks.
  • 07Capacity read from the same extract, no roster file needed. A unit that appears on a date worked that watch, so scheduled hours come from the export itself and the watch spans are read from your data rather than typed in. Saturation is committed time against net available, and out-of-service hours come off the denominator, where they belong.
Workload / Two kinds of workNEVER SUMMED
Share of officer-hoursSample CAD extract
Dispatched · citizen-generated74%
Self-initiated26%

Two bars, never one. Self-initiated was 42% of all rows on the first real extract, and folding it in would have counted the agency's spare capacity as capacity consumed.

Service timeMedian 21 min · P90 73 min

The skew is why the median is the honest number: a mean gets dragged right by the long calls and reports a shift nobody worked. A sample CAD extract ships with the app, so you can see all of this run before you export anything of your own.

09 Beat design

How many officers, and where the lines go.

The two questions a workload study exists to answer. Both of them get taken to a council most years with nothing underneath them.

  • 01The staffing answer, with its assumptions on screen. How many positions the demand supports, which hours cross the Rule of 60 line, and which beats run hot. Every judgment call behind it (relief factor, threshold, staffing level) sits on the panel as a number you can move, not in a footnote. On the sample it finds one beat at 87% against another at 17% with positions in hand force-wide, and names that a reallocation finding, not a hiring one.
  • 02Beat balancing that moves boundaries, not officers. Reporting districts are the atoms; reassign them between beats and every figure recomputes. It balances on citizen-generated committed hours, never a call count, and there is deliberately no optimizer: you know which streets are barriers and which neighborhoods must not be split. The tool does the arithmetic, which is the part people get wrong by hand.
Beat design / Balancing by boundarySAMPLE EXTRACT
Committed hours per beatAs the beats are drawn today
Beat 387%
Beat 164%
Beat 539%
Beat 217%

A 70-point spread across one force. That is a reallocation finding, not a hiring one, and the difference is the whole argument in a budget meeting.

After the analyst moves reporting districtsSame officers
Beat 358%
Beat 156%
Beat 554%
Beat 252%

The analyst moved the districts. MICHAEL did the arithmetic, which is the part people get wrong by hand. There is deliberately no optimizer.

10 Series Finder

Point it at a year of data. It names the series.

Unsupervised crime series detection. Nobody maps a schema, nobody sets a weight, and every link it draws can be read out loud in a briefing.

  • 01Rarity does the weighting. Every field is weighted by how rare the values being compared actually are in your data, so two burglaries sharing an unusual point of entry count for far more than two sharing a common one. The analyst configures nothing.
  • 02It works on the columns you already have. Categorical, numeric, date and coordinate fields are all weighted the same way. No schema to map, no required fields.
  • 03Every link is explainable. A series opens with the fields its members actually agree on and the share that agree, and continuous fields report the real quantity: 275 meters apart, never a similarity score.
  • 04It prints what an ordinary pair scores in your data. Every dataset has a tightest cluster, so a tool with no baseline will always find one and call it a series. The baseline sits beside the result, and a finding has to clear it.
  • 05It is allowed to have no opinion. Pairs with too little in common score nothing at all rather than zero, because "not enough overlap to judge" and "these are unalike" are different answers, and only one of them is honest.
  • 06Deterministic, and it goes to the globe. Two runs of the same query return the same series in the same order, which matters when the output is read into the record. Open a series as a space-time object and forecast where the next event falls.
Series Finder / One finding, openedILLUSTRATION
Fields the members agree onShare in agreement
Point of entry · rare in this data7 of 7
Narrative keyword6 of 7
Hour-of-day window6 of 7
This seriesclears the baseline
An ordinary pair in the same datathe baseline

The baseline is printed beside every finding. A series only counts if it clears what an ordinary pair scores in the same dataset.

A stylized rendering of one opened finding, not a screenshot, and the shares are illustrative. The rule they illustrate is real: rarity sets the weights, agreement is shown field by field, and the result stands next to its own baseline.

11 Canvass

The video nobody collected.

Offenders stop for fuel before and after. The cameras are already there, the footage ages out in days, and the canvass list gets built from memory at two in the morning.

Gas Station Theory, worked out by an analyst who needed it.

The method is Michele Kennedy's, of the Douglas County Sheriff's Office. MICHAEL does the part a person should not have to: every station within half a mile to four miles of a scene or a series, ranked, with hours and a sketch map.

What comes out is a printable canvass sheet with the review window already on it, so the detective walking in knows which hours of video to ask for, plus a CSV if the list is long.

  • 1A store and its pumps are one stop, never two. Fleet and private pumps the public cannot use are left out, and the list says how many.
  • 23Beyond fuel: transit stops, ATMs, pawn shops, check cashing, liquor stores, pharmacies, schools, parking and surveillance cameras, as map layers. Categories that are thinly mapped say so rather than looking empty.
  • CSVYour agency's own list of stations or cameras loads instead, and that path needs no internet connection at all.
The request never points at the crimeWhen MICHAEL asks OpenStreetMap what is nearby, the area it asks about is widened to a fixed grid square. Anyone watching that traffic learns nothing about where the incident was.
Near this, on every incidentEach incident card ends in a row of buttons, one per place layer you have loaded. One click lists everything within the distance you choose, nearest first, with distance and direction.
Near these, on a seriesSelect several incidents, or open a series Series Finder found, and the same list reranks by how many of those incidents each place is near. The station that sits close to one burglary is noise. The one close to six is a canvass.
Camera and LPR sites tooThe same ranking runs over any loaded list of places, so a camera list can be ordered by how many of the selected incidents fall within reach of each site.
12 Live

A quiet feed and a dead feed look nothing alike.

Point MICHAEL at the agency's own feed and the watch floor shows what has landed in the last hour, against what a normal hour looks like. It is the one view nobody drives. It gets watched.

  • 01The feed's condition sits next to the numbers. Six states, on screen at all times: unconfigured, stopped, starting, quiet, live, failing. Quiet means a poll succeeded and returned nothing, which is most Tuesdays. Failing carries the consecutive-failure count and the reason. Neither one hides in a log.
  • 02When the feed stops, the numbers stop looking normal. A red banner was not enough, and a screenshot settled it: the banner read STOPPED while the tiles underneath still showed LAST HOUR 80, rendered exactly as they look when everything is fine. On a wall, the tiles are what gets read out loud. So the tiles dim and a strip says the figures are not current.
  • 03A simulated feed says so on its face. The label rides along with every one of the six states, because a demo should never be mistaken for the real thing on a screen somebody is making decisions from.
  • 04An oversized poll is refused, not truncated. Quietly keeping the first few hundred records and dropping the rest is how a dashboard reports a calm night during the worst hour of the year.
  • 05The agency hosts the feed. MICHAEL only reads it. An HTTPS endpoint your agency already controls, polled once a minute by default with a ten-second floor. No websocket, no watched folder, and nothing connecting inbound to the analyst's machine.
  • 06A rolling window, kept on the record's own clock. Twenty-four hours by default, measured on when the incident happened rather than when it arrived, so a feed that catches up after an outage does not park yesterday in today's count.
  • 07Twelve sources it already speaks, and two that cover the rest. Police incidents, fire and EMS dispatch, 311, earthquakes, weather alerts, active fire detection, wildland fires, river gauges, critical infrastructure, and aircraft overhead including military traffic. The two that matter most are the generic ones: any Socrata city open-data portal, and any ArcGIS FeatureServer layer, which between them cover most of what an agency already publishes.
Live / Watch floorILLUSTRATION
Live San Francisco police incidents · last arrival 40s ago Simulated feed
Larceny theft From a locked vehicle · Mission 14:22 · 8 minutes ago INC 260908-1147 · OPEN, NO ARREST Assault Aggravated · Tenderloin 14:16 · 14 minutes ago INC 260908-1131 · OPEN Burglary Commercial · South of Market 14:05 · 25 minutes ago INC 260908-1119 · OPEN ARRIVED THIS HOUR EARLIER IN THE WINDOW HEIGHT = HOURS AGO · ROLLING 24H ON THE RECORD'S OWN CLOCK
Calls, last 60 minutes
14
Against a 24-hour average of 9 for this hour
In the last 24 hours
478
1,043 held in the window · 0 rejected
Running hot
Larceny theft31
Assault19
Burglary12
Vehicle theft8
Day by hour, filling in
M
T
W
T
F
S
S
Poll 60s · floor 10s Retention 24h, on the record's timestamp De-duplicated by record id
13 Enhance

Most agency data is not ready for analysis.

Addresses with no coordinates, a date column the software has to be told about, no field anywhere for hour of day. This is the view that fixes all of it before you start.

  • 01Batch geocoding. Addresses in, latitude and longitude out, with a confidence rating on every hit. OpenStreetMap Nominatim is free and needs no key at all, or use Google with your own. Records that already have coordinates are skipped.
  • 02It tells you the cost before it starts, and refuses the jobs it should. Small batches run free on OpenStreetMap Nominatim, quoted in minutes rather than in a usage policy nobody reads. Larger runs need a Google key, and the app says so up front instead of quietly hammering a service run by volunteers. Analysts do not read usage policies. They read time estimates.
  • 03Address columns found for you. One combined column, or street, city, state and ZIP sitting in four separate ones. Either way it works out which is which.
  • 04Nine computed fields, one click each. The ones you would otherwise build by hand every time you start a new case.
  • 05Field roles. Tell it which column is the start date, the end date and the value, and every other view uses them. Detected on load, overridable by hand.
Enhance / Computed fieldsONE CLICK EACH
Batch geocode · 50 addresses · Nominatim~1 min
Day of weekMON … SUN
Hour of day0-23
MonthJAN … DEC
YearYYYY
SequenceCHRONOLOGICAL
T-coordinateHOURS FROM 1ST
Inter-event timeDAYS BETWEEN
Inter-event distanceKM BETWEEN
DurationSTART → END

Sequence, T-coordinate and inter-event time are what the temporal and behavioral views run on. One click here, instead of a morning of spreadsheet formulas.

14 AI

An analyst's assistant with your data in front of it.

Not a chatbot bolted to the side. The model sees a profile of your dataset: every column, its type, its distinct count, its top values, its range, the date span. It answers about your records, not about crime in general.

  • 01It writes and runs the math. When a question needs a computation, the model returns JavaScript that executes in a sandbox against the loaded records, and you get the number.
  • 02It builds charts and filters. Ask to see something and the answer arrives with a filter you can apply to the grid in one click.
  • 03Your key, your account, your model. The key is stored in your browser and used to call the provider directly, with no MICHAEL server in the path. "Refresh list" queries the API so the dropdown only offers models your key can actually call.
  • 04What actually gets sent. Your question, a profile of your columns, and the first five records of your dataset, complete and word for word. MICHAEL says exactly that on the screen where you type the question, before you send anything.
AI analystCTRL + J
You

Your question and the records it references go from your machine to the provider, on your own account. Nothing routes through a MICHAEL server. Neither Anthropic nor OpenAI train on API traffic by default, and retention is governed by your account terms, not by switches we control. Read them and set the account the way your policy requires.

15 Built for the networks you do not control

Police networks block the public servers most software depends on. Most web apps fail silently and open blank.

This is the section to hand your IT director. There is no MICHAEL server. Nothing leaves the machine that imported it unless you switch on a feature that sends it, on your own accounts, and the app names exactly what each feature sends. If your agency blocks outbound traffic, this is the whole ballgame.

Nothing is downloaded from the internet while it runs.

Every library ships inside the install: the globe engine, the grid, the charting, the network graph, the spreadsheet parser, even the fonts.

It runs with the cable pulled.

An automated check cancels every external request and proves the app still boots. It is a build gate, not a good intention: if the app ever reaches for anything but map tiles, the build fails. Map imagery is the only thing that wants the internet, and the analysis does not depend on it.

Your data stays on the machine.

Import is local, analysis is local, storage is local. The only outbound calls are the ones you turn on: imagery, geocoding, AI, each with your own account.

Written for the CJIS conversation, without making a compliance claim.

There is no vendor server holding criminal justice information, no account to provision, and no cloud copy to audit. Records stay on a workstation your agency already controls and already audits. The one feature that transmits records is the AI analyst, on your own API key, and the app names exactly what it sends before it sends it.

offline verification
$ michael --offline-check
  severing all external requests...
  application boot ................... ok
  globe engine (bundled) ............. ok
  data grid (bundled) ................ ok
  spreadsheet parser (bundled) ....... ok
  network graph (bundled) ............ ok
  typefaces (bundled) ................ ok
  import 4,512 records ............... ok
  22 statistical modes ............... ok
  ---
  external requests attempted: 0
  hard-coded keys in build: 0
  status: operational
Install and imageryWindows desktop installer. A world basemap ships inside the app, so the globe draws with no network connection at all. For US records it defaults to public-domain USGS imagery, which needs no key and carries no royalty. Add your own Cesium Ion token, or point it at your agency's existing ArcGIS license, and nobody shares a quota with anybody else.
16 Briefing

What you actually hand someone.

An analyst is judged on the thing that goes in the room. Not the tool, not the query. The page on the table at the CompStat meeting.

Every result ends the same way.

Each analysis finishes with a plain-language verdict and its figures, then four buttons: Copy summary, Copy table, Save CSV and Add to briefing. Alongside them sits "About this analysis", which says what the method needs, what it gives you, and where it comes from.

  • 8The briefing PDF. Up to eight maps, charts and results, with a title and your agency's logo, stamped and numbered on every page.
  • MAPThe globe as a picture. Copy or save it with the map credit line and your license stamp drawn into the image, so a map cannot travel without its attribution.
  • CHTEvery chart. Copy, Save, or Add to briefing, from the chart itself.
  • CNVCanvass sheets. The gas station, camera and general sheets print with the review window already filled in per incident, and come out as CSV when the list is long enough to want sorting.
Why the stamp mattersAn exported map carries its credit line and its license mark into whatever document it lands in. A screenshot pasted into a Word file loses both, and a map with no attribution is the one that ends up in a news story.
Briefing / Page 1STAMPED · NUMBERED
A briefing page: an agency masthead, a density map with the area holding eighty percent of the series, an hour of day chart, a near repeat result reading as a sentence, a table of repeat locations, and an export stamp with a page number.

A stylized rendering of a briefing page, not a screenshot. The structure is real: the stamp and the page number are on every page, and a result reads as a sentence rather than a bare p-value.

17 Against the alternative

If you need a GIS, buy a GIS.

If you are building roads or maintaining geodatabases, use Esri. That is what it is for and it is very good at it. If what you need is a fast, strong analytical tool, that is a different purchase.

The question is not which is better.

It is whether you are paying for a GIS platform in order to do analysis on top of it. Most analysts are.

  • $One seat, $2,500 a year, every feature. No tiers, no extensions to add, nothing held back for a higher edition.
  • 0No platform underneath it. It runs on the analyst's own machine. There is no organizational account to buy and no server to stand up.
  • 14A fourteen day trial with everything switched on, on one machine, and the download link comes from a person.
What MICHAEL does that the Crime Analysis solution does notFind crime series on its own and explain each link. A built in AI analyst. Social network analysis. Patrol workload from actual demand. Canvass lists from a scene. And a near repeat test built in, rather than an export to a separate calculator.
What Esri does that MICHAEL does notEverything a true GIS does. Editing and maintaining authoritative geographic data, serving it across an organization, and the rest of a platform built over thirty years. MICHAEL is not trying to be that, and will not pretend otherwise.
18 Pricing

$2,500 a seat, per year. Everything included.

One price and one build. Nothing held back, no limited tier, no modules, and no paid upgrades. Every seat runs the identical workstation with everything switched on.

  • $2,500Per seat, per year. Police, sheriff, fire, dispatch, and corrections. Retail loss prevention, organized retail crime teams, insurance, private investigations, consultancies. Same build, same license, same everything.
  • SEATSMultiple seats. Volume discounts for units, divisions and force-wide licensing. Inquire for pricing.
  • INEverything, for everyone. Every update and every new version, email support answered in about two business days, the guided tour and ten chapters of training, sample datasets, and classroom course material.
  • INThe desktop workstation. The Windows installer, running on the analyst's own machine against the analyst's own data. The browser build is part of MICHAEL Regional, the multi-agency version, and is quoted separately.
  • ASKAcademia and nonprofits. Programs training the next generation of analysts, and nonprofit organizations doing the work without a budget for it. Email us and we will work something out.
  • LAPSEIf the license is not renewed, the version you have keeps working. New versions and support stop.
  • OUTCustom development, data cleanup and migration, and live training sessions. Ask us if you need them.
How agencies buy itPurchase orders accepted. Most agencies buy this way, and we will not send you to a checkout page to do it. Ask for a quote on letterhead for your requisition, a W-9, or vendor registration paperwork, and it comes back the same day. Multiple seats, agency pricing, academia and nonprofits: same address.

Call (801) 410-0123 or email info@sworn.ai. A person answers both.

Request a trial

Try it on your own data.

Fourteen days, every feature, on one machine. Tell us who you are and we will email you your own download link. Nothing to activate. Your data stays on your machine and stays yours when the trial ends. No newsletter, no drip sequence.

Built for the people who do the work Sworn agencies, crime analysis units, public safety partners, and corporate investigation teams. Seats are $2,500 a year, everything included. Academia and nonprofits: ask about license pricing.